-
Type: New Feature
-
Resolution: Fixed
-
Priority: Major - P3
-
Affects Version/s: None
-
Component/s: None
-
None
-
Fully Compatible
-
Service Arch 2019-10-07, Service Arch 2019-10-21, Service Arch 2019-11-18, Service Arch 2019-12-02
To validate base-level locking, we should do the following:
- Add a Decoration to Client to store a LatchSetState struct
- Make a Listener derived class that implements Mutex::LockListener and mutates the LatchSetState with onQuickLock()/onSlowLock() and onUnlock()
- Modify LockListener function signatures to take a struct Mutex::Identity that holds a name, an optional SourceLocation, and a boolean isBaseLatch. All of the contents of Mutex::Identity should be constant from Mutex construction onward.
- Change MONGO_MAKE_LATCH to construct a Mutex with a SourceLocationHolder via MONGO_SOURCE_LOCATION and isBaseLatch = false.
- Add MONGO_MAKE_BASE_LATCH to construct a similar Mutex but with isBaseLatch = true.
- Change a collection of base-level latches to be defined using MONGO_MAKE_BASE_LATCH. (See comments for potential locations)
- depends on
-
SERVER-42894 Create CodeContext type and related macros
- Closed
- is depended on by
-
SERVER-44155 Validate a subset of latches of all levels
- Closed
- is duplicated by
-
SERVER-42459 Implement a lock acquisition graph type
- Closed
- is related to
-
SERVER-42892 Create set and key types for hierarchical locking
- Closed