-
Notifications
You must be signed in to change notification settings - Fork 2
Cache Concurrency Guard (Associations) #128
Copy link
Copy link
Open
Labels
Area: EntityRelates to the core data data structure for modeling topic entities.Relates to the core data data structure for modeling topic entities.Area: RepositoriesRelates to the `ITopicRepository` interface or one of its implementations.Relates to the `ITopicRepository` interface or one of its implementations.Priority: 1Severity 2: MajorStatus 2: ScheduledPlanned for an upcoming release.Planned for an upcoming release.Type: BugBehavior that is inconsistent with documented or expected behavior.Behavior that is inconsistent with documented or expected behavior.Type: ImprovementImproves the functionality or interface of an existing feature.Improves the functionality or interface of an existing feature.
Milestone
Description
Activity
Metadata
Metadata
Assignees
Labels
Area: EntityRelates to the core data data structure for modeling topic entities.Relates to the core data data structure for modeling topic entities.Area: RepositoriesRelates to the `ITopicRepository` interface or one of its implementations.Relates to the `ITopicRepository` interface or one of its implementations.Priority: 1Severity 2: MajorStatus 2: ScheduledPlanned for an upcoming release.Planned for an upcoming release.Type: BugBehavior that is inconsistent with documented or expected behavior.Behavior that is inconsistent with documented or expected behavior.Type: ImprovementImproves the functionality or interface of an existing feature.Improves the functionality or interface of an existing feature.
A follow-up to #117: When two web requests try to resolve the same topic's relationships or references at the same time, both attempt to wire up the results to the same shared in-memory topic, including the other topic's
IncomingRelationshipslist, which can corrupt that shared state or throw an exception. This closes that race with a lock, scoped narrowly enough to avoid deadlocking on the batch-load work (e.g., #127).Tasks
CachedTopicRepositoryunder the existing cache-wide lockTopicRepository,SqlTopicRepository) are unaffected (they shouldn't be)