diff options
author | Nick Zolnierz <nicholas.zolnierz@mongodb.com> | 2018-03-09 18:07:39 -0500 |
---|---|---|
committer | Nick Zolnierz <nicholas.zolnierz@mongodb.com> | 2018-03-20 12:17:48 -0400 |
commit | cd950b113ee0d00e88036b2fe6306866c7ba27f9 (patch) | |
tree | fc2cb2b8240fdc0f2fd38f47a4240c53e0b02d29 /src/mongo/db/ops | |
parent | fd6f205a3ab17feec0cc9a0ba2a4baba8627f1f2 (diff) | |
download | mongo-cd950b113ee0d00e88036b2fe6306866c7ba27f9.tar.gz |
SERVER-30005: remove $isolated/$atomic option
Diffstat (limited to 'src/mongo/db/ops')
-rw-r--r-- | src/mongo/db/ops/parsed_delete.cpp | 13 | ||||
-rw-r--r-- | src/mongo/db/ops/parsed_delete.h | 7 | ||||
-rw-r--r-- | src/mongo/db/ops/parsed_update.cpp | 13 | ||||
-rw-r--r-- | src/mongo/db/ops/parsed_update.h | 7 | ||||
-rw-r--r-- | src/mongo/db/ops/write_ops_exec.cpp | 20 |
5 files changed, 14 insertions, 46 deletions
diff --git a/src/mongo/db/ops/parsed_delete.cpp b/src/mongo/db/ops/parsed_delete.cpp index a213d038ad9..227e62c098b 100644 --- a/src/mongo/db/ops/parsed_delete.cpp +++ b/src/mongo/db/ops/parsed_delete.cpp @@ -109,18 +109,7 @@ const DeleteRequest* ParsedDelete::getRequest() const { } PlanExecutor::YieldPolicy ParsedDelete::yieldPolicy() const { - if (_request->isGod()) { - return PlanExecutor::NO_YIELD; - } - if (_request->getYieldPolicy() == PlanExecutor::YIELD_AUTO && isIsolated()) { - return PlanExecutor::WRITE_CONFLICT_RETRY_ONLY; // Don't yield locks. - } - return _request->getYieldPolicy(); -} - -bool ParsedDelete::isIsolated() const { - return _canonicalQuery.get() ? _canonicalQuery->isIsolated() - : QueryRequest::isQueryIsolated(_request->getQuery()); + return _request->isGod() ? PlanExecutor::NO_YIELD : _request->getYieldPolicy(); } bool ParsedDelete::hasParsedQuery() const { diff --git a/src/mongo/db/ops/parsed_delete.h b/src/mongo/db/ops/parsed_delete.h index 9cda64718a1..7b4856c91b7 100644 --- a/src/mongo/db/ops/parsed_delete.h +++ b/src/mongo/db/ops/parsed_delete.h @@ -84,16 +84,11 @@ public: const DeleteRequest* getRequest() const; /** - * Get the YieldPolicy, adjusted for $isolated and GodMode. + * Get the YieldPolicy, adjusted for GodMode. */ PlanExecutor::YieldPolicy yieldPolicy() const; /** - * Is this update supposed to be isolated? - */ - bool isIsolated() const; - - /** * As an optimization, we don't create a canonical query for updates with simple _id * queries. Use this method to determine whether or not we actually parsed the query. */ diff --git a/src/mongo/db/ops/parsed_update.cpp b/src/mongo/db/ops/parsed_update.cpp index 4a463731c68..d7a31d0b936 100644 --- a/src/mongo/db/ops/parsed_update.cpp +++ b/src/mongo/db/ops/parsed_update.cpp @@ -186,18 +186,7 @@ Status ParsedUpdate::parseArrayFilters() { } PlanExecutor::YieldPolicy ParsedUpdate::yieldPolicy() const { - if (_request->isGod()) { - return PlanExecutor::NO_YIELD; - } - if (_request->getYieldPolicy() == PlanExecutor::YIELD_AUTO && isIsolated()) { - return PlanExecutor::WRITE_CONFLICT_RETRY_ONLY; // Don't yield locks. - } - return _request->getYieldPolicy(); -} - -bool ParsedUpdate::isIsolated() const { - return _canonicalQuery.get() ? _canonicalQuery->isIsolated() - : QueryRequest::isQueryIsolated(_request->getQuery()); + return _request->isGod() ? PlanExecutor::NO_YIELD : _request->getYieldPolicy(); } bool ParsedUpdate::hasParsedQuery() const { diff --git a/src/mongo/db/ops/parsed_update.h b/src/mongo/db/ops/parsed_update.h index 5510b6e7dde..8e006f461d1 100644 --- a/src/mongo/db/ops/parsed_update.h +++ b/src/mongo/db/ops/parsed_update.h @@ -92,16 +92,11 @@ public: UpdateDriver* getDriver(); /** - * Get the YieldPolicy, adjusted for $isolated and GodMode. + * Get the YieldPolicy, adjusted for GodMode. */ PlanExecutor::YieldPolicy yieldPolicy() const; /** - * Is this update supposed to be isolated? - */ - bool isIsolated() const; - - /** * As an optimization, we don't create a canonical query for updates with simple _id * queries. Use this method to determine whether or not we actually parsed the query. */ diff --git a/src/mongo/db/ops/write_ops_exec.cpp b/src/mongo/db/ops/write_ops_exec.cpp index 0e761e36290..146c5a40cf8 100644 --- a/src/mongo/db/ops/write_ops_exec.cpp +++ b/src/mongo/db/ops/write_ops_exec.cpp @@ -587,10 +587,10 @@ static SingleWriteResult performSingleUpdateOp(OperationContext* opCtx, request.setUpsert(op.getUpsert()); auto readConcernArgs = repl::ReadConcernArgs::get(opCtx); - request.setYieldPolicy( - readConcernArgs.getLevel() == repl::ReadConcernLevel::kSnapshotReadConcern - ? PlanExecutor::INTERRUPT_ONLY - : PlanExecutor::YIELD_AUTO); // ParsedUpdate overrides this for $isolated. + request.setYieldPolicy(readConcernArgs.getLevel() == + repl::ReadConcernLevel::kSnapshotReadConcern + ? PlanExecutor::INTERRUPT_ONLY + : PlanExecutor::YIELD_AUTO); ParsedUpdate parsedUpdate(opCtx, &request); uassertStatusOK(parsedUpdate.parseRequest()); @@ -605,7 +605,7 @@ static SingleWriteResult performSingleUpdateOp(OperationContext* opCtx, collection.emplace(opCtx, ns, MODE_IX, // DB is always IX, even if collection is X. - parsedUpdate.isIsolated() ? MODE_X : MODE_IX); + MODE_IX); if (collection->getCollection() || !op.getUpsert()) break; @@ -742,10 +742,10 @@ static SingleWriteResult performSingleDeleteOp(OperationContext* opCtx, request.setCollation(write_ops::collationOf(op)); request.setMulti(op.getMulti()); auto readConcernArgs = repl::ReadConcernArgs::get(opCtx); - request.setYieldPolicy( - readConcernArgs.getLevel() == repl::ReadConcernLevel::kSnapshotReadConcern - ? PlanExecutor::INTERRUPT_ONLY - : PlanExecutor::YIELD_AUTO); // ParsedDelete overrides this for $isolated. + request.setYieldPolicy(readConcernArgs.getLevel() == + repl::ReadConcernLevel::kSnapshotReadConcern + ? PlanExecutor::INTERRUPT_ONLY + : PlanExecutor::YIELD_AUTO); request.setStmtId(stmtId); ParsedDelete parsedDelete(opCtx, &request); @@ -760,7 +760,7 @@ static SingleWriteResult performSingleDeleteOp(OperationContext* opCtx, AutoGetCollection collection(opCtx, ns, MODE_IX, // DB is always IX, even if collection is X. - parsedDelete.isIsolated() ? MODE_X : MODE_IX); + MODE_IX); if (collection.getDb()) { curOp.raiseDbProfileLevel(collection.getDb()->getProfilingLevel()); } |