-
Type:
Task
-
Resolution: Unresolved
-
Priority:
Major - P3
-
None
-
Affects Version/s: None
-
Component/s: None
-
Replication
-
None
-
None
-
None
-
None
-
None
-
None
-
None
Today in DSC, the primary sends heartbeat requests to standbys. This heartbeat request requires attaching relevant optimes, many of which are obtained under the _oplogManagementMutex.
We should consider not grabbing this mutex to reduce the possibility that heartbeat sending becomes delayed due to not being able to obtain this mutex. For instance, this may happen if another thread is stuck in WT under this mutex, which we saw in HELP-100780. As a result of this change, heartbeats will be able to continue being sent on the primary, which may prevent standbys from running for election unnecessarily.
We could avoid grabbing this mutex by creating shadow values for the relevant fields. We already do this today for our _lastApplied, so we may want to consider a similar strategy for other fields.
Acceptance Criteria
Primary sending heartbeat requests does not obtain the _oplogManagementMutex.