[SERVER-43970] Make steady-state oplog application more like initial sync and recovery Created: 11/Oct/19  Updated: 06/Dec/22  Resolved: 06/Dec/19

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

Type: Improvement Priority: Minor - P4
Reporter: A. Jesse Jiryu Davis Assignee: Backlog - Replication Team
Resolution: Won't Fix Votes: 0
Labels: former-quick-wins
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Assigned Teams:
Replication
Participants:

 Description   

In steady-state replication we call OplogApplier::startup (from ReplicationCoordinatorExternalStateImpl::startSteadyStateReplication) and make the OplogApplier responsible for running the oplog application loop on a thread, until ReplicationCoordinatorExternalStateImpl calls OplogApplier::shutdown.

In initial sync, rollback, and recovery, however, external classes each create an OplogApplier but do not call its startup method. Instead, these external classes drive the oplog application process.

Let's consider ways to make steady-state replication more consistent with other OplogApplier users. Perhaps there is a new class named like "SteadyStateSyncer" that is a peer of InitialSyncer and BackgroundSync. Like those two classes, the SteadyStateSyncer creates an OplogApplier and drives the oplog application process. We'll delete OplogApplier::startup/shutdown, and move the logic from OplogApplierImpl::_run into SteadyStateSyncer.



 Comments   
Comment by Judah Schvimer [ 06/Dec/19 ]

Moving to our pain points spreadsheet, we'll re-open if we choose to do this improvement.

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