summaryrefslogtreecommitdiff
path: root/src/mongo/db/catalog
diff options
context:
space:
mode:
authorBenety Goh <benety@mongodb.com>2015-06-07 20:49:34 -0400
committerBenety Goh <benety@mongodb.com>2015-06-09 19:03:03 -0400
commit7a051310660319f3fc33b85722a206a11fa20309 (patch)
treec2ff91734c49ad08fad38ba345f2bb2f0823b2e0 /src/mongo/db/catalog
parent23628bdf724248a28bb73f6a1b647139ca09e465 (diff)
downloadmongo-7a051310660319f3fc33b85722a206a11fa20309.tar.gz
SERVER-18807 modified ReplicationCoordinator::canAcceptWritesForDatabases to accept a namespace instead of a database name
Diffstat (limited to 'src/mongo/db/catalog')
-rw-r--r--src/mongo/db/catalog/capped_utils.cpp6
-rw-r--r--src/mongo/db/catalog/coll_mod.cpp2
-rw-r--r--src/mongo/db/catalog/create_collection.cpp15
-rw-r--r--src/mongo/db/catalog/drop_collection.cpp2
-rw-r--r--src/mongo/db/catalog/drop_indexes.cpp2
-rw-r--r--src/mongo/db/catalog/rename_collection.cpp2
6 files changed, 15 insertions, 14 deletions
diff --git a/src/mongo/db/catalog/capped_utils.cpp b/src/mongo/db/catalog/capped_utils.cpp
index 19455f94e90..2b046a64d39 100644
--- a/src/mongo/db/catalog/capped_utils.cpp
+++ b/src/mongo/db/catalog/capped_utils.cpp
@@ -57,8 +57,8 @@ namespace mongo {
AutoGetDb autoDb(txn, collectionName.db(), MODE_X);
bool userInitiatedWritesAndNotPrimary = txn->writesAreReplicated() &&
- !repl::getGlobalReplicationCoordinator()->canAcceptWritesForDatabase(
- collectionName.db());
+ !repl::getGlobalReplicationCoordinator()->canAcceptWritesFor(
+ collectionName);
if (userInitiatedWritesAndNotPrimary) {
return Status(ErrorCodes::NotMaster,
@@ -226,7 +226,7 @@ namespace mongo {
AutoGetDb autoDb(txn, collectionName.db(), MODE_X);
bool userInitiatedWritesAndNotPrimary = txn->writesAreReplicated() &&
- !repl::getGlobalReplicationCoordinator()->canAcceptWritesForDatabase(dbname);
+ !repl::getGlobalReplicationCoordinator()->canAcceptWritesFor(collectionName);
if (userInitiatedWritesAndNotPrimary) {
return Status(ErrorCodes::NotMaster,
diff --git a/src/mongo/db/catalog/coll_mod.cpp b/src/mongo/db/catalog/coll_mod.cpp
index 264f47cf417..768ee713b0a 100644
--- a/src/mongo/db/catalog/coll_mod.cpp
+++ b/src/mongo/db/catalog/coll_mod.cpp
@@ -58,7 +58,7 @@ namespace mongo {
OldClientContext ctx(txn, ns);
bool userInitiatedWritesAndNotPrimary = txn->writesAreReplicated() &&
- !repl::getGlobalReplicationCoordinator()->canAcceptWritesForDatabase(dbName);
+ !repl::getGlobalReplicationCoordinator()->canAcceptWritesFor(ns);
if (userInitiatedWritesAndNotPrimary) {
return Status(ErrorCodes::NotMaster,
diff --git a/src/mongo/db/catalog/create_collection.cpp b/src/mongo/db/catalog/create_collection.cpp
index 202bde1b52b..aaff88c3121 100644
--- a/src/mongo/db/catalog/create_collection.cpp
+++ b/src/mongo/db/catalog/create_collection.cpp
@@ -34,6 +34,7 @@
#include "mongo/db/concurrency/write_conflict_exception.h"
#include "mongo/db/curop.h"
#include "mongo/db/db_raii.h"
+#include "mongo/db/namespace_string.h"
#include "mongo/db/operation_context.h"
#include "mongo/db/ops/insert.h"
#include "mongo/db/repl/replication_coordinator_global.h"
@@ -55,7 +56,7 @@ namespace mongo {
return status;
}
- const std::string ns = dbName + '.' + firstElt.valuestrsafe();
+ NamespaceString nss(dbName, firstElt.valuestrsafe());
// Build options object from remaining cmdObj elements.
BSONObjBuilder optionsBuilder;
@@ -72,23 +73,23 @@ namespace mongo {
MONGO_WRITE_CONFLICT_RETRY_LOOP_BEGIN {
ScopedTransaction transaction(txn, MODE_IX);
Lock::DBLock dbXLock(txn->lockState(), dbName, MODE_X);
- OldClientContext ctx(txn, ns);
+ OldClientContext ctx(txn, nss.ns());
if (txn->writesAreReplicated() &&
- !repl::getGlobalReplicationCoordinator()->canAcceptWritesForDatabase(dbName)) {
- return Status(ErrorCodes::NotMaster,
- str::stream() << "Not primary while creating collection " << ns);
+ !repl::getGlobalReplicationCoordinator()->canAcceptWritesFor(nss)) {
+ return Status(ErrorCodes::NotMaster, str::stream() <<
+ "Not primary while creating collection " << nss.ns());
}
WriteUnitOfWork wunit(txn);
// Create collection.
- status = userCreateNS(txn, ctx.db(), ns.c_str(), options);
+ status = userCreateNS(txn, ctx.db(), nss.ns(), options);
if (!status.isOK()) {
return status;
}
wunit.commit();
- } MONGO_WRITE_CONFLICT_RETRY_LOOP_END(txn, "create", ns);
+ } MONGO_WRITE_CONFLICT_RETRY_LOOP_END(txn, "create", nss.ns());
return Status::OK();
}
} // namespace mongo
diff --git a/src/mongo/db/catalog/drop_collection.cpp b/src/mongo/db/catalog/drop_collection.cpp
index d1d5fa5c986..cb932432dab 100644
--- a/src/mongo/db/catalog/drop_collection.cpp
+++ b/src/mongo/db/catalog/drop_collection.cpp
@@ -71,7 +71,7 @@ namespace mongo {
OldClientContext context(txn, collectionName);
bool userInitiatedWritesAndNotPrimary = txn->writesAreReplicated() &&
- !repl::getGlobalReplicationCoordinator()->canAcceptWritesForDatabase(dbname);
+ !repl::getGlobalReplicationCoordinator()->canAcceptWritesFor(collectionName);
if (userInitiatedWritesAndNotPrimary) {
return Status(ErrorCodes::NotMaster,
diff --git a/src/mongo/db/catalog/drop_indexes.cpp b/src/mongo/db/catalog/drop_indexes.cpp
index aeedac83c3f..344b247290a 100644
--- a/src/mongo/db/catalog/drop_indexes.cpp
+++ b/src/mongo/db/catalog/drop_indexes.cpp
@@ -140,7 +140,7 @@ namespace {
AutoGetDb autoDb(txn, dbName, MODE_X);
bool userInitiatedWritesAndNotPrimary = txn->writesAreReplicated() &&
- !repl::getGlobalReplicationCoordinator()->canAcceptWritesForDatabase(dbName);
+ !repl::getGlobalReplicationCoordinator()->canAcceptWritesFor(ns);
if (userInitiatedWritesAndNotPrimary) {
return Status(ErrorCodes::NotMaster,
diff --git a/src/mongo/db/catalog/rename_collection.cpp b/src/mongo/db/catalog/rename_collection.cpp
index ebff993ab42..9c73d968e37 100644
--- a/src/mongo/db/catalog/rename_collection.cpp
+++ b/src/mongo/db/catalog/rename_collection.cpp
@@ -73,7 +73,7 @@ namespace {
OldClientContext ctx(txn, source);
bool userInitiatedWritesAndNotPrimary = txn->writesAreReplicated() &&
- !repl::getGlobalReplicationCoordinator()->canAcceptWritesForDatabase(source.db());
+ !repl::getGlobalReplicationCoordinator()->canAcceptWritesFor(source);
if (userInitiatedWritesAndNotPrimary) {
return Status(ErrorCodes::NotMaster, str::stream()