-
Type: Improvement
-
Resolution: Unresolved
-
Priority: Major - P3
-
None
-
Affects Version/s: None
-
Component/s: None
-
None
-
Server Programmability
-
Service Arch 2024-04-29, SP Prioritized List
Atomic operations such as atomic_load on {{shared_ptr}}s are not lock-free, they need to take a global mutex in order to coordinate the pointer and refcount updates. This might not be obvious when looking at the code, since atomic load/stores of primitive types usually translate to a single CPU instruction and are comparatively cheap.
We should audit these usages to find possible performance problems in hot paths and to explicitly declare whether we want the atomic operation to be lock free or not, e.g. invarianting on atomic_is_lock_free().
- has to be done after
-
SERVER-76355 Refactor ConcurrentSharedValuesMap to use immutable map
- Backlog
-
SERVER-89550 CollectionCatalog::latest uses a global mutex to load the catalog reference
- Closed