summaryrefslogtreecommitdiff
path: root/src/mongo/db/ops
diff options
context:
space:
mode:
authorNick Zolnierz <nicholas.zolnierz@mongodb.com>2018-03-09 18:07:39 -0500
committerNick Zolnierz <nicholas.zolnierz@mongodb.com>2018-03-20 12:17:48 -0400
commitcd950b113ee0d00e88036b2fe6306866c7ba27f9 (patch)
treefc2cb2b8240fdc0f2fd38f47a4240c53e0b02d29 /src/mongo/db/ops
parentfd6f205a3ab17feec0cc9a0ba2a4baba8627f1f2 (diff)
downloadmongo-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.cpp13
-rw-r--r--src/mongo/db/ops/parsed_delete.h7
-rw-r--r--src/mongo/db/ops/parsed_update.cpp13
-rw-r--r--src/mongo/db/ops/parsed_update.h7
-rw-r--r--src/mongo/db/ops/write_ops_exec.cpp20
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());
}