diff options
author | Siyuan Zhou <siyuan.zhou@mongodb.com> | 2016-11-30 00:14:28 -0500 |
---|---|---|
committer | Siyuan Zhou <siyuan.zhou@mongodb.com> | 2017-02-27 19:28:13 -0500 |
commit | 1da3111dc238698e4e70672b7ba260a368121e50 (patch) | |
tree | 40907eb4d351ac451b03fe00bdba72ece5fe6f17 /src/mongo/db/repl/replication_coordinator_external_state_impl.cpp | |
parent | d124f6c14f51440fff9734578166a6a49e3b463b (diff) | |
download | mongo-1da3111dc238698e4e70672b7ba260a368121e50.tar.gz |
SERVER-27120 Increase synchronization between producer/applier threads and stepdown/stepup
SERVER-27913 Make sure the last applied hash is corresponding to the last applied optime in bgsync start()
Diffstat (limited to 'src/mongo/db/repl/replication_coordinator_external_state_impl.cpp')
-rw-r--r-- | src/mongo/db/repl/replication_coordinator_external_state_impl.cpp | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/src/mongo/db/repl/replication_coordinator_external_state_impl.cpp b/src/mongo/db/repl/replication_coordinator_external_state_impl.cpp index d7f08443d45..f5a96ed3123 100644 --- a/src/mongo/db/repl/replication_coordinator_external_state_impl.cpp +++ b/src/mongo/db/repl/replication_coordinator_external_state_impl.cpp @@ -808,12 +808,18 @@ void ReplicationCoordinatorExternalStateImpl::signalApplierToChooseNewSyncSource } } -void ReplicationCoordinatorExternalStateImpl::signalApplierToCancelFetcher() { +void ReplicationCoordinatorExternalStateImpl::stopProducer() { LockGuard lk(_threadMutex); - if (!_bgSync) { - return; + if (_bgSync) { + _bgSync->stop(false); + } +} + +void ReplicationCoordinatorExternalStateImpl::startProducerIfStopped() { + LockGuard lk(_threadMutex); + if (_bgSync) { + _bgSync->startProducerIfStopped(); } - _bgSync->cancelFetcher(); } void ReplicationCoordinatorExternalStateImpl::_dropAllTempCollections(OperationContext* txn) { |