diff options
Diffstat (limited to 'src/mongo/db/index_builds_coordinator.h')
-rw-r--r-- | src/mongo/db/index_builds_coordinator.h | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/src/mongo/db/index_builds_coordinator.h b/src/mongo/db/index_builds_coordinator.h index c665a433659..aecb7de265b 100644 --- a/src/mongo/db/index_builds_coordinator.h +++ b/src/mongo/db/index_builds_coordinator.h @@ -76,12 +76,18 @@ class ServiceContext; class IndexBuildsCoordinator { public: /** + * Represents the set of different application modes used around building indexes that differ + * from the default behaviour. + */ + enum class ApplicationMode { kNormal, kStartupRepair, kInitialSync }; + + /** * Contains additional information required by 'startIndexBuild()'. */ struct IndexBuildOptions { boost::optional<CommitQuorumOptions> commitQuorum; bool replSetAndNotPrimaryAtStart = false; - bool twoPhaseRecovery = false; + ApplicationMode applicationMode = ApplicationMode::kNormal; }; /** @@ -173,7 +179,7 @@ public: * performed the initial ready:false write. Throws if there were any errors building the index. */ void applyStartIndexBuild(OperationContext* opCtx, - bool isInitialSync, + ApplicationMode applicationMode, const IndexBuildOplogEntry& entry); /** @@ -491,7 +497,7 @@ protected: Status _setUpIndexBuild(OperationContext* opCtx, const UUID& buildUUID, Timestamp startTimestamp, - boost::optional<CommitQuorumOptions> commitQuorum); + const IndexBuildOptions& indexBuildOptions); /** * Acquires locks and sets up index build. Throws on error. @@ -502,7 +508,7 @@ protected: PostSetupAction _setUpIndexBuildInner(OperationContext* opCtx, std::shared_ptr<ReplIndexBuildState> replState, Timestamp startTimestamp, - boost::optional<CommitQuorumOptions> commitQuorum); + const IndexBuildOptions& indexBuildOptions); /** * Sets up the in-memory and durable state of the index build for two-phase recovery. |