summaryrefslogtreecommitdiff
path: root/src/mongo/db/repl/oplog_fetcher.cpp
diff options
context:
space:
mode:
authorMatthew Russotto <matthew.russotto@mongodb.com>2020-01-07 20:13:36 +0000
committerevergreen <evergreen@mongodb.com>2020-01-07 20:13:36 +0000
commit16d688dc7c1ba4746f66442806d061e4039ad500 (patch)
tree5cd86af904ecc1aad911a0beb6b8b5823459a41f /src/mongo/db/repl/oplog_fetcher.cpp
parent16207c4fa75a8045f24126d768b0ba2e1ce32b1f (diff)
downloadmongo-16d688dc7c1ba4746f66442806d061e4039ad500.tar.gz
SERVER-43279 Make OplogFetcher called from initial sync use the initial sync restart strategy.
Diffstat (limited to 'src/mongo/db/repl/oplog_fetcher.cpp')
-rw-r--r--src/mongo/db/repl/oplog_fetcher.cpp34
1 files changed, 34 insertions, 0 deletions
diff --git a/src/mongo/db/repl/oplog_fetcher.cpp b/src/mongo/db/repl/oplog_fetcher.cpp
index 514de02e8c8..47b7a8a84d7 100644
--- a/src/mongo/db/repl/oplog_fetcher.cpp
+++ b/src/mongo/db/repl/oplog_fetcher.cpp
@@ -326,6 +326,40 @@ OplogFetcher::OplogFetcher(executor::TaskExecutor* executor,
invariant(enqueueDocumentsFn);
}
+OplogFetcher::OplogFetcher(executor::TaskExecutor* executor,
+ OpTime lastFetched,
+ HostAndPort source,
+ NamespaceString nss,
+ ReplSetConfig config,
+ std::unique_ptr<OplogFetcherRestartDecision> oplogFetcherRestartDecision,
+ int requiredRBID,
+ bool requireFresherSyncSource,
+ DataReplicatorExternalState* dataReplicatorExternalState,
+ EnqueueDocumentsFn enqueueDocumentsFn,
+ OnShutdownCallbackFn onShutdownCallbackFn,
+ const int batchSize,
+ StartingPoint startingPoint)
+ : AbstractOplogFetcher(executor,
+ lastFetched,
+ source,
+ nss,
+ std::move(oplogFetcherRestartDecision),
+ onShutdownCallbackFn,
+ "oplog fetcher"),
+ _metadataObject(makeMetadataObject()),
+ _requiredRBID(requiredRBID),
+ _requireFresherSyncSource(requireFresherSyncSource),
+ _dataReplicatorExternalState(dataReplicatorExternalState),
+ _enqueueDocumentsFn(enqueueDocumentsFn),
+ _awaitDataTimeout(calculateAwaitDataTimeout(config)),
+ _batchSize(batchSize),
+ _startingPoint(startingPoint) {
+
+ invariant(config.isInitialized());
+ invariant(enqueueDocumentsFn);
+}
+
+
OplogFetcher::~OplogFetcher() {
shutdown();
join();