diff options
author | Greg Studer <greg@10gen.com> | 2013-01-09 16:58:25 -0500 |
---|---|---|
committer | Greg Studer <greg@10gen.com> | 2013-01-09 16:58:25 -0500 |
commit | baaa9118f92d31e6ad400acd0a1e7d9b37ea5d93 (patch) | |
tree | 87532a9e951164726b9d41c587e621066a960fb5 | |
parent | 0a6bac4569c92c7ef92cb4b66f5ec0797b1334af (diff) | |
download | mongo-baaa9118f92d31e6ad400acd0a1e7d9b37ea5d93.tar.gz |
SERVER-8128 require a database be specified for ShardConnection::sync()
-rw-r--r-- | src/mongo/s/chunk.cpp | 3 | ||||
-rw-r--r-- | src/mongo/s/commands_admin.cpp | 12 | ||||
-rw-r--r-- | src/mongo/s/shard.h | 2 | ||||
-rw-r--r-- | src/mongo/s/shardconnection.cpp | 8 |
4 files changed, 14 insertions, 11 deletions
diff --git a/src/mongo/s/chunk.cpp b/src/mongo/s/chunk.cpp index 773978014dc..69a49031f82 100644 --- a/src/mongo/s/chunk.cpp +++ b/src/mongo/s/chunk.cpp @@ -23,6 +23,7 @@ #include "../util/startup_test.h" #include "../util/timer.h" #include "mongo/client/dbclientcursor.h" +#include "mongo/db/namespacestring.h" #include "chunk.h" #include "chunk_diff.h" @@ -364,7 +365,7 @@ namespace mongo { // this does mean mongos has more back pressure than mongod alone // since it nots 100% tcp queue bound // this was implicit before since we did a splitVector on the same socket - ShardConnection::sync(); + ShardConnection::sync( NamespaceString(getManager()->getns()).db ); LOG(1) << "about to initiate autosplit: " << *this << " dataWritten: " << _dataWritten << " splitThreshold: " << splitThreshold << endl; diff --git a/src/mongo/s/commands_admin.cpp b/src/mongo/s/commands_admin.cpp index c155e25066d..cd5aaaa69a2 100644 --- a/src/mongo/s/commands_admin.cpp +++ b/src/mongo/s/commands_admin.cpp @@ -35,6 +35,7 @@ #include "../client/connpool.h" #include "mongo/client/dbclientcursor.h" +#include "mongo/db/namespacestring.h" #include "../db/dbmessage.h" #include "../db/commands.h" @@ -712,14 +713,14 @@ namespace mongo { if ( ! okForConfigChanges( errmsg ) ) return false; - ShardConnection::sync(); - string ns = cmdObj.firstElement().valuestrsafe(); if ( ns.size() == 0 ) { errmsg = "no ns"; return false; } + ShardConnection::sync( NamespaceString(ns).db ); + DBConfigPtr config = grid.getDBConfig( ns ); if ( ! config->isSharded( ns ) ) { config->reload(); @@ -794,15 +795,16 @@ namespace mongo { if ( ! okForConfigChanges( errmsg ) ) return false; - ShardConnection::sync(); - - Timer t; string ns = cmdObj.firstElement().valuestrsafe(); if ( ns.size() == 0 ) { errmsg = "no ns"; return false; } + ShardConnection::sync( NamespaceString(ns).db ); + + Timer t; + DBConfigPtr config = grid.getDBConfig( ns ); if ( ! config->isSharded( ns ) ) { config->reload(); diff --git a/src/mongo/s/shard.h b/src/mongo/s/shard.h index 7a7e0d8fbda..ccb76a923a0 100644 --- a/src/mongo/s/shard.h +++ b/src/mongo/s/shard.h @@ -267,7 +267,7 @@ namespace mongo { return _setVersion; } - static void sync(); + static void sync( const string& db ); void donotCheckVersion() { _setVersion = false; diff --git a/src/mongo/s/shardconnection.cpp b/src/mongo/s/shardconnection.cpp index 0c9019bb7bc..a3afaf64dbd 100644 --- a/src/mongo/s/shardconnection.cpp +++ b/src/mongo/s/shardconnection.cpp @@ -98,12 +98,12 @@ namespace mongo { s->avail = conn; } - void sync() { + void sync( const string& db ) { for ( HostMap::iterator i=_hosts.begin(); i!=_hosts.end(); ++i ) { string addr = i->first; Status* ss = i->second; if ( ss->avail ) - ss->avail->getLastError(); + ss->avail->getLastError(db); } } @@ -221,8 +221,8 @@ namespace mongo { } } - void ShardConnection::sync() { - ClientConnections::threadInstance()->sync(); + void ShardConnection::sync( const string& db ) { + ClientConnections::threadInstance()->sync(db); } bool ShardConnection::runCommand( const string& db , const BSONObj& cmd , BSONObj& res ) { |