summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorCheahuychou Mao <mao.cheahuychou@gmail.com>2021-05-21 04:59:02 +0000
committerEvergreen Agent <no-reply@evergreen.mongodb.com>2021-05-24 18:36:21 +0000
commit13ce090d81c8ad14fd9bf9792ed081f55034192e (patch)
tree682d1d032ed38c4fc643f78573233e16efdd7c56 /src
parentfd52ab20494c1e767c3f2e824bba80f69fb4a566 (diff)
downloadmongo-13ce090d81c8ad14fd9bf9792ed081f55034192e.tar.gz
SERVER-57132 Remove OperationType in TenantMigrationAccessBlocker
(cherry picked from commit 90827ec44f3787be928b6ec0849160ab48f1fbfe)
Diffstat (limited to 'src')
-rw-r--r--src/mongo/db/commands/write_commands.cpp3
-rw-r--r--src/mongo/db/repl/tenant_migration_access_blocker.h9
-rw-r--r--src/mongo/db/repl/tenant_migration_access_blocker_util.cpp3
-rw-r--r--src/mongo/db/repl/tenant_migration_conflict_info.h11
-rw-r--r--src/mongo/db/repl/tenant_migration_donor_access_blocker.cpp5
-rw-r--r--src/mongo/db/repl/tenant_migration_donor_access_blocker.h2
-rw-r--r--src/mongo/db/repl/tenant_migration_recipient_access_blocker.cpp3
-rw-r--r--src/mongo/db/repl/tenant_migration_recipient_access_blocker.h2
8 files changed, 11 insertions, 27 deletions
diff --git a/src/mongo/db/commands/write_commands.cpp b/src/mongo/db/commands/write_commands.cpp
index 2e3caeb78dd..e44b8d4b85c 100644
--- a/src/mongo/db/commands/write_commands.cpp
+++ b/src/mongo/db/commands/write_commands.cpp
@@ -318,8 +318,7 @@ boost::optional<BSONObj> generateError(OperationContext* opCtx,
auto mtab = migrationConflictInfo->getTenantMigrationAccessBlocker();
- auto migrationStatus =
- mtab->waitUntilCommittedOrAborted(opCtx, migrationConflictInfo->getOperationType());
+ auto migrationStatus = mtab->waitUntilCommittedOrAborted(opCtx);
mtab->recordTenantMigrationError(migrationStatus);
error.append("code", static_cast<int>(migrationStatus.code()));
diff --git a/src/mongo/db/repl/tenant_migration_access_blocker.h b/src/mongo/db/repl/tenant_migration_access_blocker.h
index 0740d1561af..06a78bb3584 100644
--- a/src/mongo/db/repl/tenant_migration_access_blocker.h
+++ b/src/mongo/db/repl/tenant_migration_access_blocker.h
@@ -52,18 +52,13 @@ public:
TenantMigrationAccessBlocker(BlockerType type) : _type(type) {}
virtual ~TenantMigrationAccessBlocker() = default;
- /**
- * The operation type determines the states during which we need to block.
- */
- enum OperationType { kWrite, kIndexBuild };
-
//
// Called by all writes and reads against the database.
//
virtual Status checkIfCanWrite() = 0;
- virtual Status waitUntilCommittedOrAborted(OperationContext* opCtx,
- OperationType operationType) = 0;
+ virtual Status waitUntilCommittedOrAborted(OperationContext* opCtx) = 0;
+
virtual Status checkIfLinearizableReadWasAllowed(OperationContext* opCtx) = 0;
virtual SharedSemiFuture<void> getCanReadFuture(OperationContext* opCtx,
diff --git a/src/mongo/db/repl/tenant_migration_access_blocker_util.cpp b/src/mongo/db/repl/tenant_migration_access_blocker_util.cpp
index 7184c018a6a..54985fb0afc 100644
--- a/src/mongo/db/repl/tenant_migration_access_blocker_util.cpp
+++ b/src/mongo/db/repl/tenant_migration_access_blocker_util.cpp
@@ -374,8 +374,7 @@ void handleTenantMigrationConflict(OperationContext* opCtx, Status status) {
invariant(migrationConflictInfo);
auto mtab = migrationConflictInfo->getTenantMigrationAccessBlocker();
invariant(mtab);
- auto migrationStatus =
- mtab->waitUntilCommittedOrAborted(opCtx, migrationConflictInfo->getOperationType());
+ auto migrationStatus = mtab->waitUntilCommittedOrAborted(opCtx);
mtab->recordTenantMigrationError(migrationStatus);
uassertStatusOK(migrationStatus);
}
diff --git a/src/mongo/db/repl/tenant_migration_conflict_info.h b/src/mongo/db/repl/tenant_migration_conflict_info.h
index aa7ab16fa5e..4f9c9c087e1 100644
--- a/src/mongo/db/repl/tenant_migration_conflict_info.h
+++ b/src/mongo/db/repl/tenant_migration_conflict_info.h
@@ -41,10 +41,8 @@ public:
static constexpr auto code = ErrorCodes::TenantMigrationConflict;
TenantMigrationConflictInfo(const std::string tenantId,
- std::shared_ptr<TenantMigrationAccessBlocker> mtab = nullptr,
- TenantMigrationAccessBlocker::OperationType operationType =
- TenantMigrationAccessBlocker::kWrite)
- : _tenantId(std::move(tenantId)), _mtab(std::move(mtab)), _operationType(operationType){};
+ std::shared_ptr<TenantMigrationAccessBlocker> mtab = nullptr)
+ : _tenantId(std::move(tenantId)), _mtab(std::move(mtab)){};
const auto& getTenantId() const {
return _tenantId;
@@ -54,17 +52,12 @@ public:
return _mtab;
}
- TenantMigrationAccessBlocker::OperationType getOperationType() const {
- return _operationType;
- }
-
void serialize(BSONObjBuilder* bob) const override;
static std::shared_ptr<const ErrorExtraInfo> parse(const BSONObj&);
private:
std::string _tenantId;
std::shared_ptr<TenantMigrationAccessBlocker> _mtab;
- TenantMigrationAccessBlocker::OperationType _operationType;
};
using TenantMigrationConflictException = ExceptionFor<ErrorCodes::TenantMigrationConflict>;
using TenantMigrationCommittedException = ExceptionFor<ErrorCodes::TenantMigrationCommitted>;
diff --git a/src/mongo/db/repl/tenant_migration_donor_access_blocker.cpp b/src/mongo/db/repl/tenant_migration_donor_access_blocker.cpp
index 248fab51faa..33ad03a196c 100644
--- a/src/mongo/db/repl/tenant_migration_donor_access_blocker.cpp
+++ b/src/mongo/db/repl/tenant_migration_donor_access_blocker.cpp
@@ -99,8 +99,7 @@ Status TenantMigrationDonorAccessBlocker::checkIfCanWrite() {
}
}
-Status TenantMigrationDonorAccessBlocker::waitUntilCommittedOrAborted(OperationContext* opCtx,
- OperationType operationType) {
+Status TenantMigrationDonorAccessBlocker::waitUntilCommittedOrAborted(OperationContext* opCtx) {
// Source to cancel the timeout if the operation completed in time.
CancellationSource cancelTimeoutSource;
auto executor = getAsyncBlockingOperationsExecutor();
@@ -200,7 +199,7 @@ Status TenantMigrationDonorAccessBlocker::checkIfCanBuildIndex() {
case BlockerState::State::kAllow:
case BlockerState::State::kBlockWrites:
case BlockerState::State::kBlockWritesAndReads:
- return {TenantMigrationConflictInfo(_tenantId, shared_from_this(), kIndexBuild),
+ return {TenantMigrationConflictInfo(_tenantId, shared_from_this()),
"Index build must block until tenant migration is committed or aborted."};
case BlockerState::State::kReject:
return {ErrorCodes::TenantMigrationCommitted,
diff --git a/src/mongo/db/repl/tenant_migration_donor_access_blocker.h b/src/mongo/db/repl/tenant_migration_donor_access_blocker.h
index 7cc22eca265..6c04bc2308a 100644
--- a/src/mongo/db/repl/tenant_migration_donor_access_blocker.h
+++ b/src/mongo/db/repl/tenant_migration_donor_access_blocker.h
@@ -188,7 +188,7 @@ public:
//
Status checkIfCanWrite() final;
- Status waitUntilCommittedOrAborted(OperationContext* opCtx, OperationType operationType) final;
+ Status waitUntilCommittedOrAborted(OperationContext* opCtx) final;
Status checkIfLinearizableReadWasAllowed(OperationContext* opCtx) final;
SharedSemiFuture<void> getCanReadFuture(OperationContext* opCtx, StringData command) final;
diff --git a/src/mongo/db/repl/tenant_migration_recipient_access_blocker.cpp b/src/mongo/db/repl/tenant_migration_recipient_access_blocker.cpp
index 5c698e21154..3bd49d79934 100644
--- a/src/mongo/db/repl/tenant_migration_recipient_access_blocker.cpp
+++ b/src/mongo/db/repl/tenant_migration_recipient_access_blocker.cpp
@@ -71,8 +71,7 @@ Status TenantMigrationRecipientAccessBlocker::checkIfCanWrite() {
return Status::OK();
}
-Status TenantMigrationRecipientAccessBlocker::waitUntilCommittedOrAborted(
- OperationContext* opCtx, OperationType operationType) {
+Status TenantMigrationRecipientAccessBlocker::waitUntilCommittedOrAborted(OperationContext* opCtx) {
// Recipient nodes will not throw TenantMigrationConflict errors and so we should never need
// to wait for a migration to commit/abort on the recipient set.
MONGO_UNREACHABLE;
diff --git a/src/mongo/db/repl/tenant_migration_recipient_access_blocker.h b/src/mongo/db/repl/tenant_migration_recipient_access_blocker.h
index 7decbe897b9..4b17dfdac88 100644
--- a/src/mongo/db/repl/tenant_migration_recipient_access_blocker.h
+++ b/src/mongo/db/repl/tenant_migration_recipient_access_blocker.h
@@ -82,7 +82,7 @@ public:
//
Status checkIfCanWrite() final;
- Status waitUntilCommittedOrAborted(OperationContext* opCtx, OperationType operationType) final;
+ Status waitUntilCommittedOrAborted(OperationContext* opCtx) final;
Status checkIfLinearizableReadWasAllowed(OperationContext* opCtx) final;
SharedSemiFuture<void> getCanReadFuture(OperationContext* opCtx, StringData command) final;