Details
Description
Calling waitUntilDurable has logic for concurrent callers to cooperate. This cooperation happens for concurrent callers to checkpoints as well as log flushes. Unfortunately a slow checkpoint can cause a faster log flush to block on the "cooperation" mutex. This can stall reads and writes, in particular, secondary reads of the oplog in an insert heavy workload.