summaryrefslogtreecommitdiff
path: root/src/mongo/db/repl/rs_sync.h
diff options
context:
space:
mode:
authorBenety Goh <benety@mongodb.com>2018-03-13 17:31:39 -0400
committerBenety Goh <benety@mongodb.com>2018-03-13 17:45:00 -0400
commitd988a58bcb09d45a841570e26e7d50a4e9c23de8 (patch)
tree71ce8d6f762cab4b870c7d6cc953f66aa69a9f88 /src/mongo/db/repl/rs_sync.h
parenta3909e15cf23edff53fdeb2ac3203e05d5ed9737 (diff)
downloadmongo-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.h13
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