diff options
author | Kyle Suarez <kyle.suarez@mongodb.com> | 2018-02-28 09:37:40 -0500 |
---|---|---|
committer | Kyle Suarez <kyle.suarez@mongodb.com> | 2018-02-28 09:37:40 -0500 |
commit | 3ac67d8c605b483398863657abcdffac26aae85e (patch) | |
tree | 3ff9766796fd32e4a7d6f8fe2e39bbc97a6262d8 /src/mongo/db/repl/bgsync.cpp | |
parent | a0173c12306a457d3b653daea77966c6748e202a (diff) | |
download | mongo-3ac67d8c605b483398863657abcdffac26aae85e.tar.gz |
SERVER-32588 create parameter to force rollback via refetch
Set the forceRollbackViaRefetch parameter to always use the rollback via
refetch algorithm during rollback, even if the storage engine supports
rollback via recover to stable timestamp.
Diffstat (limited to 'src/mongo/db/repl/bgsync.cpp')
-rw-r--r-- | src/mongo/db/repl/bgsync.cpp | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/src/mongo/db/repl/bgsync.cpp b/src/mongo/db/repl/bgsync.cpp index 2585c46582d..dd56f8a3856 100644 --- a/src/mongo/db/repl/bgsync.cpp +++ b/src/mongo/db/repl/bgsync.cpp @@ -78,6 +78,11 @@ const auto defaultBatchSize = (16 * 1024 * 1024) / 12 * 10; // The batchSize to use for the find/getMore queries called by the OplogFetcher MONGO_EXPORT_STARTUP_SERVER_PARAMETER(bgSyncOplogFetcherBatchSize, int, defaultBatchSize); +// If 'forceRollbackViaRefetch' is true, always perform rollbacks via the refetch algorithm, even if +// the storage engine supports rollback via recover to timestamp. +constexpr bool forceRollbackViaRefetchByDefault = false; +MONGO_EXPORT_SERVER_PARAMETER(forceRollbackViaRefetch, bool, forceRollbackViaRefetchByDefault); + /** * Extends DataReplicatorExternalStateImpl to be member state aware. */ @@ -646,7 +651,7 @@ void BackgroundSync::_runRollback(OperationContext* opCtx, }; auto storageEngine = opCtx->getServiceContext()->getGlobalStorageEngine(); - if (storageEngine->supportsRecoverToStableTimestamp()) { + if (!forceRollbackViaRefetch.load() && storageEngine->supportsRecoverToStableTimestamp()) { _runRollbackViaRecoverToCheckpoint( opCtx, source, &localOplog, storageInterface, getConnection); } else { |