-
Type: Improvement
-
Resolution: Fixed
-
Priority: Major - P3
-
Affects Version/s: None
-
Component/s: None
-
None
-
Fully Compatible
-
Service Arch 2019-12-02, Service Arch 2019-12-16
We should annotate the subset of latches in mongo::transport, mongo/executor, and mongo/util/concurrency. This involves the following:
- Modify MONGO_MAKE_LATCH to have a variadic argument list that it passes to the Mutex constructor. This allows the last argument to optionally be a HierachicalAcquisitionLevel.
- Add a HierarchicalAcquisitionSet to the LatchSetState decoration and add/remove using the LockListener from
SERVER-42897 - Change MONGO_MAKE_BASE_LATCH to set HierachicalAcquisitionLevel(0) instead of isBaseLatch=false
- Change a collection of higher-level latches to have HierachicalAcquisitionLevels. These latches will most likely derive their levels from latches of a lower level than them.
- depends on
-
SERVER-42892 Create set and key types for hierarchical locking
- Closed
-
SERVER-42897 Validate base-level latches
- Closed
- is duplicated by
-
SERVER-42898 Implement hierarchical locking for mongo::transport
- Closed
-
SERVER-42899 Implement hierarchical locking for mongo/util/concurrency
- Closed
-
SERVER-42900 Implement hierarchical locking for mongo/executor
- Closed