diff options
author | Eliot Horowitz <eliot@10gen.com> | 2010-07-23 13:41:21 -0400 |
---|---|---|
committer | Eliot Horowitz <eliot@10gen.com> | 2010-07-23 13:41:21 -0400 |
commit | 08b250630b1b97f05b6e2fa2c03440781de89b3b (patch) | |
tree | 048404e076b079212539c2a63dc5646fb21e79ad /s/d_logic.cpp | |
parent | 0d1975d0d446568a756141ca3be96f97f609a998 (diff) | |
download | mongo-08b250630b1b97f05b6e2fa2c03440781de89b3b.tar.gz |
make handlePossibleShardedMEssage finer grained and a bit more optimistic
Diffstat (limited to 's/d_logic.cpp')
-rw-r--r-- | s/d_logic.cpp | 20 |
1 files changed, 6 insertions, 14 deletions
diff --git a/s/d_logic.cpp b/s/d_logic.cpp index 1e373ec0f75..67e06e05c30 100644 --- a/s/d_logic.cpp +++ b/s/d_logic.cpp @@ -42,7 +42,7 @@ using namespace std; namespace mongo { - bool handlePossibleShardedMessage( Client& c, CurOp& curop , OpDebug& debug , Message &m, DbResponse &dbresponse ){ + bool handlePossibleShardedMessage( Message &m, DbResponse* dbresponse ){ if ( ! shardingState.enabled() ) return false; @@ -54,26 +54,18 @@ namespace mongo { return false; DbMessage d(m); - if ( op == dbUpdate ){ - if ( d.getInt(0) & UpdateOption_Broadcast ){ - return false; - } - } - else if ( op == dbDelete ){ - if ( d.getInt(0) & RemoveOption_Broadcast ){ - return false; - } - } - const char *ns = d.getns(); string errmsg; if ( shardVersionOk( ns , errmsg ) ){ return false; } + + dbtempreleasecond unlock; log() << "shardVersionOk failed ns:" << ns << " " << errmsg << endl; if ( doesOpGetAResponse( op ) ){ + assert( dbresponse ); BufBuilder b( 32768 ); b.skip( sizeof( QueryResult ) ); { @@ -93,8 +85,8 @@ namespace mongo { Message * resp = new Message(); resp->setData( qr , true ); - dbresponse.response = resp; - dbresponse.responseTo = m.header()->id; + dbresponse->response = resp; + dbresponse->responseTo = m.header()->id; return true; } |