- 
    Type:Task 
- 
    Resolution: Fixed
- 
    Priority:Major - P3 
- 
    Affects Version/s: None
- 
    Component/s: Replication
- 
    None
- 
        Fully Compatible
- 
        Repl 2019-09-09, Repl 2019-09-23, Repl 2019-10-07
- 
        None
- 
        None
- 
        None
- 
        None
- 
        None
- 
        None
- 
        None
Also:
- refactor the existing Waiter and WaiterList API and unify ThreadWaiter and CallbackWaiter into a future-based waiter class.
- optimize ReplicationCoordinatorImpl::_wakeReadyWaiters_inlock to minimize unnecessary wake-ups by ordering waiters by OpTime.
- is depended on by
- 
                    SERVER-43139 Investigate _wakeReadyWaiters_inlock() codepaths and remove unnecessary ones -         
- Closed
 
-         
- 
                    SERVER-43307 Avoid checking _checkIfWriteConcernCanBeSatisfied_inlock in ReplicationCoordinatorImpl::_doneWaitingForReplication_inlock -         
- Closed
 
-         
- 
                    SERVER-43417 Signal the flusher thread to flush instead of calling waitUntilDurable when waiting for {j:true} -         
- Closed
 
-         
- is duplicated by
- 
                    SERVER-40250 High contention for ReplicationCoordinatorImpl::_mutex in w:majority workloads -         
- Closed
 
-