-
Type:
Improvement
-
Resolution: Fixed
-
Priority:
Major - P3
-
Affects Version/s: None
-
Component/s: Replication
-
None
-
Fully Compatible
-
Repl 2019-10-07, Repl 2019-10-21
-
None
-
None
-
None
-
None
-
None
-
None
-
None
BackgroundSync and InitialSyncer both call OplogBuffer::waitForSpace, then OplogApplier::enqueue, which calls OplogBuffer::pushAllNonBlocking. This is a roundabout way of doing a blocking enqueue, and it requires BackgroundSync and InitialSyncer each to know about both the OplogApplier and its internal OplogBuffer.
We will make OplogApplier::enqueue blocking, and make its callee OplogBuffer::push blocking too. This simplifies BackgroundSync/InitialSyncer and decouples them from OplogBuffer.