-
Type: Task
-
Resolution: Fixed
-
Priority: Major - P3
-
Affects Version/s: None
-
Component/s: manual
-
Labels:None
Description
This commit introduced an off-by-default section to serverStatus "latchAnalysis". This section tracks internal resource acquisition history with simple counters. See comments and https://github.com/mongodb/mongo/commit/86efdd6b047927d3a37577a6033bacc709c7ae89#diff-d22a4335737abd53429d1093cd829697R264-R298 for the data schema.
Description of Linked Ticket
Ideally, we would like to serialize Hierarchical Acquisition violations in a way that allows us to investigate and reproduce the violation. To that end, we want to know the Latch name and the ordering of violations. I propose the following opt-in section in serverStatus:
{ ..., "latchAnalysis": { "hierarchicalAcquitionViolations": { "<latchNameHere>": { "onAcquire": 2, "onRelease": 1 } } } }
The top level "latchAnalysis" allows us to expand this segment with future statistics. The separation of "onAcquire" and "onRelease" into separate monotonically increasing counters will allow us to consider them as a pair to determine the period in which a potential deadlock happened as well as the total violations. This scheme deliberately leaves out the client name.
Scope of changes
Impact to Other Docs
MVP (Work and Date)
Resources (Scope or Design Docs, Invision, etc.)
- documents
-
SERVER-43945 Expose out of order latch acquisitions in serverStatus
- Closed