diff options
author | Benety Goh <benety@mongodb.com> | 2018-03-13 17:31:39 -0400 |
---|---|---|
committer | Benety Goh <benety@mongodb.com> | 2018-03-13 17:45:00 -0400 |
commit | d988a58bcb09d45a841570e26e7d50a4e9c23de8 (patch) | |
tree | 71ce8d6f762cab4b870c7d6cc953f66aa69a9f88 /src/mongo/db/repl/rs_sync.h | |
parent | a3909e15cf23edff53fdeb2ac3203e05d5ed9737 (diff) | |
download | mongo-d988a58bcb09d45a841570e26e7d50a4e9c23de8.tar.gz |
SERVER-32332 decouple BackgroundSync from SyncTail
Explicit shutdown() functions for SyncTail and RSDataSync.
BackgroundSync implements OplogApplier::Observer.
OplogBuffer for steady state replication is now cleared in
ReplicationCoordinatorExternalStateImpl::shutdown() between shutting down
and joining BackgroundSync/SyncTail.
Diffstat (limited to 'src/mongo/db/repl/rs_sync.h')
-rw-r--r-- | src/mongo/db/repl/rs_sync.h | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/src/mongo/db/repl/rs_sync.h b/src/mongo/db/repl/rs_sync.h index c9f3f17fa0d..424d7091060 100644 --- a/src/mongo/db/repl/rs_sync.h +++ b/src/mongo/db/repl/rs_sync.h @@ -28,11 +28,13 @@ #pragma once +#include "mongo/db/repl/oplog_applier.h" +#include "mongo/db/repl/oplog_buffer.h" +#include "mongo/db/repl/sync_tail.h" #include "mongo/stdx/thread.h" namespace mongo { namespace repl { -class BackgroundSync; class ReplicationCoordinator; /** @@ -41,9 +43,12 @@ class ReplicationCoordinator; */ class RSDataSync { public: - RSDataSync(BackgroundSync* bgsync, ReplicationCoordinator* replCoord); + RSDataSync(OplogApplier::Observer* observer, + OplogBuffer* oplogBuffer, + ReplicationCoordinator* replCoord); ~RSDataSync(); void startup(); + void shutdown(); void join(); private: @@ -51,8 +56,10 @@ private: void _run(); stdx::thread _runThread; - BackgroundSync* _bgsync; + OplogBuffer* _oplogBuffer; ReplicationCoordinator* _replCoord; + std::unique_ptr<ThreadPool> _writerPool; + SyncTail _syncTail; }; } // namespace repl |