summaryrefslogtreecommitdiff
path: root/src/mongo/db/index_builds_coordinator_mongod.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/mongo/db/index_builds_coordinator_mongod.h')
-rw-r--r--src/mongo/db/index_builds_coordinator_mongod.h23
1 files changed, 23 insertions, 0 deletions
diff --git a/src/mongo/db/index_builds_coordinator_mongod.h b/src/mongo/db/index_builds_coordinator_mongod.h
index c9bf15b6b3a..a16cbb842e1 100644
--- a/src/mongo/db/index_builds_coordinator_mongod.h
+++ b/src/mongo/db/index_builds_coordinator_mongod.h
@@ -78,6 +78,19 @@ public:
IndexBuildProtocol protocol,
IndexBuildOptions indexBuildOptions) override;
+ /**
+ * Reconstructs the in-memory state of the index build, then passes the build off to an
+ * asynchronous thread to run. A Future is returned so that the user can await the asynchronous
+ * build result.
+ */
+ StatusWith<SharedSemiFuture<ReplIndexBuildState::IndexCatalogStats>> resumeIndexBuild(
+ OperationContext* opCtx,
+ std::string dbName,
+ CollectionUUID collectionUUID,
+ const std::vector<BSONObj>& specs,
+ const UUID& buildUUID,
+ const ResumeIndexInfo& resumeInfo) override;
+
Status voteCommitIndexBuild(OperationContext* opCtx,
const UUID& buildUUID,
const HostAndPort& hostAndPort) override;
@@ -159,6 +172,16 @@ private:
std::shared_ptr<ReplIndexBuildState> replState,
const IndexBuildOptions& indexBuildOptions) override;
+ StatusWith<SharedSemiFuture<ReplIndexBuildState::IndexCatalogStats>> _startIndexBuild(
+ OperationContext* opCtx,
+ std::string dbName,
+ CollectionUUID collectionUUID,
+ const std::vector<BSONObj>& specs,
+ const UUID& buildUUID,
+ IndexBuildProtocol protocol,
+ IndexBuildOptions indexBuildOptions,
+ const boost::optional<ResumeIndexInfo>& resumeInfo);
+
// Thread pool on which index builds are run.
ThreadPool _threadPool;