Details
-
Improvement
-
Resolution: Fixed
-
Major - P3
-
None
-
None
-
None
-
Fully Compatible
-
Execution Team 2023-05-29
Description
We advance the VectorClock twice in the primary write path, which requires taking the hot _newOpMutex and the VectorClock's mutex.
On the primary, we advance the VectorClock initially when we allocate our optimes. We advance the VectorClock again in the onCommit handler that runs after the write commits. This is done through the call to ReplicationCoordinatorExternalState::setGlobalTimestamp and setNewTimestamp.