diff options
author | Eliot Horowitz <eliot@10gen.com> | 2013-12-02 16:00:51 -0500 |
---|---|---|
committer | Eliot Horowitz <eliot@10gen.com> | 2013-12-03 21:24:55 -0500 |
commit | f2b96d98f8c5be601832d984fe089940a4012624 (patch) | |
tree | d3e6f463520e6a2955b168063c30c0b19d1ecdcd /src/mongo/db/write_concern.cpp | |
parent | 1766b460efaaee908ebe664cb6e5b28c702ab12d (diff) | |
download | mongo-f2b96d98f8c5be601832d984fe089940a4012624.tar.gz |
SERVER-11665: add timing in writeConcern result for sync time
Diffstat (limited to 'src/mongo/db/write_concern.cpp')
-rw-r--r-- | src/mongo/db/write_concern.cpp | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/src/mongo/db/write_concern.cpp b/src/mongo/db/write_concern.cpp index 56b646a70aa..e6605c1d92c 100644 --- a/src/mongo/db/write_concern.cpp +++ b/src/mongo/db/write_concern.cpp @@ -83,6 +83,9 @@ namespace mongo { } void WriteConcernResult::appendTo( BSONObjBuilder* result ) const { + if ( syncMillis >= 0 ) + result->appendNumber( "syncMillis", syncMillis ); + if ( fsyncFiles >= 0 ) result->appendNumber( "fsyncFiles", fsyncFiles ); @@ -112,6 +115,7 @@ namespace mongo { WriteConcernResult* result ) { // first handle blocking on disk + Timer syncTimer; switch( writeConcern.syncMode ) { case WriteConcernOptions::NONE: break; @@ -126,6 +130,7 @@ namespace mongo { result->fsyncFiles = MemoryMappedFile::flushAll( true ); break; } + result->syncMillis = syncTimer.millis(); // now wait for replication @@ -181,7 +186,12 @@ namespace mongo { } if ( !writeConcern.wMode.empty() && !theReplSet ) { - return Status( ErrorCodes::BadValue, "asked for a w mode with master/slave" ); + // TODO: want to return the status, but is backwards breaking + // only for master/slave, which is deprecated + //return Status( ErrorCodes::BadValue, + //str::stream() << "asked for a w mode with master/slave [" + //<< writeConcern.wMode << "]" ); + return Status::OK(); } // now that we've done the prep, now we actually wait |