-
Type: New Feature
-
Resolution: Unresolved
-
Priority: Major - P3
-
None
-
Affects Version/s: None
-
Component/s: Internal Code
-
Server Programmability
This API should be seen as a replacement for (roughly) atomic<shared_ptr<T>>, a mutex+shared_ptr<T> (which is how atomic<shared_ptr> is implemented) or places where we frequently take a mutex just to observe an object AND we release the mutex prior to acting on the observation.
This should support:
- Non-blocking reads: readers never block behind writers or other readers.
- Reading stale values: readers may hold a reference to an earlier version of the object.
- Writers to create a new version without blocking on readers to retire.
- For efficiency, we should avoid having readers write to shared cache lines.
- is depended on by
-
SERVER-86656 Create a reader-optimized reader-writer mutex
- Closed
-
SERVER-86947 Replace Lock::ResourceMutex with reader-optimized synchronization mechanisms in QuerySettingsManager
- Closed