summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBenety Goh <benety@mongodb.com>2019-10-23 00:13:21 +0000
committerevergreen <evergreen@mongodb.com>2019-10-23 00:13:21 +0000
commite06784e4e65a1e11b10adc3741f1136c2b002c8b (patch)
tree502c14caea730aa24289bf38d8c5dc3a2f143583
parent06536b49a98e2e4fe35d023a561e7c1c47994e3a (diff)
downloadmongo-e06784e4e65a1e11b10adc3741f1136c2b002c8b.tar.gz
SERVER-44121 IndexBuildInterceptor::drainWritesIntoIndex() accepts drain yield policy
-rw-r--r--src/mongo/db/catalog/multi_index_block.cpp3
-rw-r--r--src/mongo/db/index/index_build_interceptor.cpp3
-rw-r--r--src/mongo/db/index/index_build_interceptor.h3
3 files changed, 6 insertions, 3 deletions
diff --git a/src/mongo/db/catalog/multi_index_block.cpp b/src/mongo/db/catalog/multi_index_block.cpp
index d021b9bad74..0b1cdb0976b 100644
--- a/src/mongo/db/catalog/multi_index_block.cpp
+++ b/src/mongo/db/catalog/multi_index_block.cpp
@@ -699,7 +699,8 @@ Status MultiIndexBlock::drainBackgroundWrites(
if (!interceptor)
continue;
- auto status = interceptor->drainWritesIntoIndex(opCtx, _indexes[i].options, readSource);
+ auto status = interceptor->drainWritesIntoIndex(
+ opCtx, _indexes[i].options, readSource, drainYieldPolicy);
if (!status.isOK()) {
return status;
}
diff --git a/src/mongo/db/index/index_build_interceptor.cpp b/src/mongo/db/index/index_build_interceptor.cpp
index 00d7b9e444e..fecbc5974ca 100644
--- a/src/mongo/db/index/index_build_interceptor.cpp
+++ b/src/mongo/db/index/index_build_interceptor.cpp
@@ -125,7 +125,8 @@ const std::string& IndexBuildInterceptor::getConstraintViolationsTableIdent() co
Status IndexBuildInterceptor::drainWritesIntoIndex(OperationContext* opCtx,
const InsertDeleteOptions& options,
- RecoveryUnit::ReadSource readSource) {
+ RecoveryUnit::ReadSource readSource,
+ DrainYieldPolicy drainYieldPolicy) {
invariant(!opCtx->lockState()->inAWriteUnitOfWork());
// Reading at a timestamp during hybrid index builds is not supported.
invariant(readSource == RecoveryUnit::ReadSource::kUnset);
diff --git a/src/mongo/db/index/index_build_interceptor.h b/src/mongo/db/index/index_build_interceptor.h
index c900a02ba34..c41e7267580 100644
--- a/src/mongo/db/index/index_build_interceptor.h
+++ b/src/mongo/db/index/index_build_interceptor.h
@@ -117,7 +117,8 @@ public:
*/
Status drainWritesIntoIndex(OperationContext* opCtx,
const InsertDeleteOptions& options,
- RecoveryUnit::ReadSource readSource);
+ RecoveryUnit::ReadSource readSource,
+ DrainYieldPolicy drainYieldPolicy);
/**
* Returns 'true' if there are no visible records remaining to be applied from the side writes