diff options
author | Benety Goh <benety@mongodb.com> | 2015-08-21 20:31:40 -0400 |
---|---|---|
committer | Benety Goh <benety@mongodb.com> | 2015-08-21 20:31:40 -0400 |
commit | 045cd1070cae1e7827255850c2fe35194e48b24e (patch) | |
tree | 154354109f0039ff21d6e93e0b1687115f184751 /src/mongo/db/range_deleter_db_env.cpp | |
parent | 6124799c4e14d1ffc9419e6548ec96626e73dcda (diff) | |
download | mongo-045cd1070cae1e7827255850c2fe35194e48b24e.tar.gz |
Revert "SERVER-19855 Do not perform shard version checking where not necessary"
This reverts commit 31716d2ae526d82d7d36464f6c9fae8b9f38542f.
Diffstat (limited to 'src/mongo/db/range_deleter_db_env.cpp')
-rw-r--r-- | src/mongo/db/range_deleter_db_env.cpp | 79 |
1 files changed, 41 insertions, 38 deletions
diff --git a/src/mongo/db/range_deleter_db_env.cpp b/src/mongo/db/range_deleter_db_env.cpp index 35279d0e58b..b9971f54b03 100644 --- a/src/mongo/db/range_deleter_db_env.cpp +++ b/src/mongo/db/range_deleter_db_env.cpp @@ -46,6 +46,7 @@ namespace mongo { +using std::endl; using std::string; /** @@ -74,43 +75,44 @@ bool RangeDeleterDBEnv::deleteRange(OperationContext* txn, *deletedDocs = 0; ShardForceVersionOkModeBlock forceVersion(txn->getClient()); + { + Helpers::RemoveSaver removeSaver("moveChunk", ns, taskDetails.options.removeSaverReason); + Helpers::RemoveSaver* removeSaverPtr = NULL; + if (serverGlobalParams.moveParanoia && !taskDetails.options.removeSaverReason.empty()) { + removeSaverPtr = &removeSaver; + } - Helpers::RemoveSaver removeSaver("moveChunk", ns, taskDetails.options.removeSaverReason); - Helpers::RemoveSaver* removeSaverPtr = NULL; - if (serverGlobalParams.moveParanoia && !taskDetails.options.removeSaverReason.empty()) { - removeSaverPtr = &removeSaver; - } - - // log the opId so the user can use it to cancel the delete using killOp. - unsigned int opId = txn->getOpID(); - log() << "Deleter starting delete for: " << ns << " from " << inclusiveLower << " -> " - << exclusiveUpper << ", with opId: " << opId; - - try { - *deletedDocs = - Helpers::removeRange(txn, - KeyRange(ns, inclusiveLower, exclusiveUpper, keyPattern), - false, /*maxInclusive*/ - writeConcern, - removeSaverPtr, - fromMigrate, - onlyRemoveOrphans); - - if (*deletedDocs < 0) { - *errMsg = "collection or index dropped before data could be cleaned"; - warning() << *errMsg; + // log the opId so the user can use it to cancel the delete using killOp. + unsigned int opId = txn->getOpID(); + log() << "Deleter starting delete for: " << ns << " from " << inclusiveLower << " -> " + << exclusiveUpper << ", with opId: " << opId << endl; + + try { + *deletedDocs = + Helpers::removeRange(txn, + KeyRange(ns, inclusiveLower, exclusiveUpper, keyPattern), + false, /*maxInclusive*/ + writeConcern, + removeSaverPtr, + fromMigrate, + onlyRemoveOrphans); + + if (*deletedDocs < 0) { + *errMsg = "collection or index dropped before data could be cleaned"; + warning() << *errMsg << endl; + + return false; + } + + log() << "rangeDeleter deleted " << *deletedDocs << " documents for " << ns << " from " + << inclusiveLower << " -> " << exclusiveUpper << endl; + } catch (const DBException& ex) { + *errMsg = str::stream() << "Error encountered while deleting range: " + << "ns" << ns << " from " << inclusiveLower << " -> " + << exclusiveUpper << ", cause by:" << causedBy(ex); return false; } - - log() << "rangeDeleter deleted " << *deletedDocs << " documents for " << ns << " from " - << inclusiveLower << " -> " << exclusiveUpper; - } catch (const DBException& ex) { - *errMsg = str::stream() << "Error encountered while deleting range: " - << "ns" << ns << " from " << inclusiveLower << " -> " - << exclusiveUpper << ", cause by:" << causedBy(ex); - - return false; } return true; @@ -119,11 +121,12 @@ bool RangeDeleterDBEnv::deleteRange(OperationContext* txn, void RangeDeleterDBEnv::getCursorIds(OperationContext* txn, StringData ns, std::set<CursorId>* openCursors) { - AutoGetCollection autoColl(txn, NamespaceString(ns), MODE_IS); - if (!autoColl.getCollection()) + AutoGetCollectionForRead ctx(txn, ns.toString()); + Collection* collection = ctx.getCollection(); + if (!collection) { return; + } - autoColl.getCollection()->getCursorManager()->getCursorIds(openCursors); + collection->getCursorManager()->getCursorIds(openCursors); +} } - -} // namespace mongo |