[SERVER-42997] Make OplogApplier::enqueue blocking Created: 23/Aug/19  Updated: 29/Oct/23  Resolved: 07/Oct/19

Status: Closed
Project: Core Server
Component/s: Replication
Affects Version/s: None
Fix Version/s: 4.3.1

Type: Improvement Priority: Major - P3
Reporter: A. Jesse Jiryu Davis Assignee: Mihai Andrei
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Backwards Compatibility: Fully Compatible
Sprint: Repl 2019-10-07, Repl 2019-10-21
Participants:

 Description   

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.



 Comments   
Comment by Githook User [ 07/Oct/19 ]

Author:

{'name': 'Mihai Andrei', 'email': 'mihai.andrei@mongodb.com'}

Message: SERVER-42997 Make OplogApplier::enqueue blocking
Branch: master
https://github.com/mongodb/mongo/commit/cff16b6fdb8f5a5d5d62f8eb61dc0b017ace13f2

Generated at Thu Feb 08 05:01:59 UTC 2024 using Jira 9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66.