summaryrefslogtreecommitdiff
path: root/src/mongo/db/range_deleter_db_env.cpp
diff options
context:
space:
mode:
authorBenety Goh <benety@mongodb.com>2015-08-21 20:31:40 -0400
committerBenety Goh <benety@mongodb.com>2015-08-21 20:31:40 -0400
commit045cd1070cae1e7827255850c2fe35194e48b24e (patch)
tree154354109f0039ff21d6e93e0b1687115f184751 /src/mongo/db/range_deleter_db_env.cpp
parent6124799c4e14d1ffc9419e6548ec96626e73dcda (diff)
downloadmongo-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.cpp79
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