diff options
30 files changed, 123 insertions, 102 deletions
diff --git a/src/mongo/SConscript b/src/mongo/SConscript index cbdc59643ad..4dc1991daa0 100644 --- a/src/mongo/SConscript +++ b/src/mongo/SConscript @@ -384,7 +384,7 @@ serverOnlyFiles = [ "db/curop.cpp", "db/repl/oplogreader.cpp", "db/repl/replication_server_status.cpp", "db/repl/repl_reads_ok.cpp", - "db/oplog.cpp", + "db/repl/oplog.cpp", "db/prefetch.cpp", "db/repl_block.cpp", "db/btreecursor.cpp", diff --git a/src/mongo/db/cloner.cpp b/src/mongo/db/cloner.cpp index 54ebe774d2a..783d0d7bb69 100644 --- a/src/mongo/db/cloner.cpp +++ b/src/mongo/db/cloner.cpp @@ -25,11 +25,12 @@ #include "mongo/db/commands.h" #include "mongo/db/commands/rename_collection.h" #include "mongo/db/db.h" +#include "mongo/db/dbhelpers.h" #include "mongo/db/instance.h" #include "mongo/db/jsobj.h" #include "mongo/db/kill_current_op.h" #include "mongo/db/namespacestring.h" -#include "mongo/db/oplog.h" +#include "mongo/db/repl/oplog.h" #include "mongo/db/pdfile.h" #include "mongo/db/sort_phase_one.h" diff --git a/src/mongo/db/commands/apply_ops.cpp b/src/mongo/db/commands/apply_ops.cpp index 5ddd63c24d4..6c04cc5f3ec 100644 --- a/src/mongo/db/commands/apply_ops.cpp +++ b/src/mongo/db/commands/apply_ops.cpp @@ -23,7 +23,7 @@ #include "mongo/db/commands.h" #include "mongo/db/instance.h" #include "mongo/db/matcher.h" -#include "mongo/db/oplog.h" +#include "mongo/db/repl/oplog.h" namespace mongo { class ApplyOpsCmd : public Command { diff --git a/src/mongo/db/dbcommands.cpp b/src/mongo/db/dbcommands.cpp index 52c42d289cc..64dc67b83e3 100644 --- a/src/mongo/db/dbcommands.cpp +++ b/src/mongo/db/dbcommands.cpp @@ -51,6 +51,7 @@ #include "mongo/db/queryoptimizer.h" #include "mongo/db/repl_block.h" #include "mongo/db/replutil.h" +#include "mongo/db/repl/oplog.h" #include "mongo/db/stats/timer_stats.h" #include "mongo/s/d_writeback.h" #include "mongo/s/stale_exception.h" // for SendStaleConfigException diff --git a/src/mongo/db/dbhelpers.cpp b/src/mongo/db/dbhelpers.cpp index 95fbb15e0db..e21440f71e1 100644 --- a/src/mongo/db/dbhelpers.cpp +++ b/src/mongo/db/dbhelpers.cpp @@ -16,25 +16,26 @@ * along with this program. If not, see <http://www.gnu.org/licenses/>. */ -#include "pch.h" -#include "db.h" -#include "dbhelpers.h" -#include "json.h" -#include "mongo/db/btreecursor.h" -#include "pdfile.h" -#include "oplog.h" -#include "ops/update.h" -#include "ops/delete.h" -#include "queryoptimizercursor.h" -#include "mongo/client/dbclientinterface.h" -#include "mongo/db/pagefault.h" -#include "mongo/db/repl_block.h" -#include "mongo/s/d_logic.h" +#include "mongo/pch.h" -#include <fstream> +#include "mongo/db/dbhelpers.h" #include <boost/filesystem/convenience.hpp> #include <boost/filesystem/operations.hpp> +#include <fstream> + +#include "mongo/client/dbclientinterface.h" +#include "mongo/db/btreecursor.h" +#include "mongo/db/db.h" +#include "mongo/db/json.h" +#include "mongo/db/ops/delete.h" +#include "mongo/db/ops/update.h" +#include "mongo/db/pagefault.h" +#include "mongo/db/pdfile.h" +#include "mongo/db/queryoptimizercursor.h" +#include "mongo/db/repl/oplog.h" +#include "mongo/db/repl_block.h" +#include "mongo/s/d_logic.h" namespace mongo { diff --git a/src/mongo/db/instance.cpp b/src/mongo/db/instance.cpp index c90a44c7b7b..78e817ea4d4 100644 --- a/src/mongo/db/instance.cpp +++ b/src/mongo/db/instance.cpp @@ -53,6 +53,7 @@ #include "mongo/db/ops/update.h" #include "mongo/db/pagefault.h" #include "mongo/db/replutil.h" +#include "mongo/db/repl/oplog.h" #include "mongo/db/stats/counters.h" #include "mongo/s/d_logic.h" #include "mongo/s/stale_exception.h" // for SendStaleConfigException diff --git a/src/mongo/db/ops/delete.cpp b/src/mongo/db/ops/delete.cpp index 790dd543cd0..8085cdc5ab6 100644 --- a/src/mongo/db/ops/delete.cpp +++ b/src/mongo/db/ops/delete.cpp @@ -16,11 +16,13 @@ * along with this program. If not, see <http://www.gnu.org/licenses/>. */ -#include "pch.h" -#include "delete.h" -#include "../queryutil.h" -#include "../oplog.h" +#include "mongo/pch.h" + +#include "mongo/db/ops/delete.h" + #include "mongo/client/dbclientinterface.h" +#include "mongo/db/queryutil.h" +#include "mongo/db/repl/oplog.h" #include "mongo/util/stacktrace.h" namespace mongo { diff --git a/src/mongo/db/ops/query.cpp b/src/mongo/db/ops/query.cpp index f929afef163..8e8e78cfd95 100644 --- a/src/mongo/db/ops/query.cpp +++ b/src/mongo/db/ops/query.cpp @@ -16,21 +16,21 @@ * along with this program. If not, see <http://www.gnu.org/licenses/>. */ -#include "pch.h" +#include "mongo/pch.h" #include "mongo/db/ops/query.h" #include "mongo/bson/util/builder.h" #include "mongo/db/clientcursor.h" #include "mongo/db/commands.h" -#include "mongo/db/oplog.h" #include "mongo/db/pagefault.h" #include "mongo/db/pdfile.h" #include "mongo/db/queryoptimizer.h" #include "mongo/db/queryoptimizercursor.h" -#include "mongo/db/replutil.h" #include "mongo/db/repl/finding_start_cursor.h" +#include "mongo/db/repl/oplog.h" #include "mongo/db/repl/repl_reads_ok.h" +#include "mongo/db/replutil.h" #include "mongo/db/scanandorder.h" #include "mongo/s/d_logic.h" #include "mongo/s/stale_exception.h" // for SendStaleConfigException diff --git a/src/mongo/db/ops/update.cpp b/src/mongo/db/ops/update.cpp index 034b0849759..ac77173487d 100644 --- a/src/mongo/db/ops/update.cpp +++ b/src/mongo/db/ops/update.cpp @@ -16,15 +16,19 @@ * along with this program. If not, see <http://www.gnu.org/licenses/>. */ -#include "pch.h" +#include "mongo/pch.h" -#include "mongo/db/oplog.h" +#include "mongo/db/ops/update.h" + +#include "mongo/client/dbclientinterface.h" +#include "mongo/db/clientcursor.h" +#include "mongo/db/namespace_details.h" #include "mongo/db/pagefault.h" +#include "mongo/db/pdfile.h" #include "mongo/db/queryutil.h" -#include "mongo/client/dbclientinterface.h" - -#include "update.h" -#include "update_internal.h" +#include "mongo/db/record.h" +#include "mongo/db/repl/oplog.h" +#include "mongo/db/ops/update_internal.h" //#define DEBUGUPDATE(x) cout << x << endl; #define DEBUGUPDATE(x) diff --git a/src/mongo/db/ops/update_internal.cpp b/src/mongo/db/ops/update_internal.cpp index 8046adfd492..bb5856921c4 100644 --- a/src/mongo/db/ops/update_internal.cpp +++ b/src/mongo/db/ops/update_internal.cpp @@ -16,18 +16,18 @@ * along with this program. If not, see <http://www.gnu.org/licenses/>. */ -#include "pch.h" +#include "mongo/pch.h" + +#include "mongo/db/ops/update_internal.h" #include <algorithm> // for max #include "mongo/db/field_ref.h" #include "mongo/db/jsobjmanipulator.h" #include "mongo/db/pdfile.h" -#include "mongo/db/oplog.h" +#include "mongo/db/repl/oplog.h" #include "mongo/util/mongoutils/str.h" -#include "update_internal.h" - //#define DEBUGUPDATE(x) cout << x << endl; #define DEBUGUPDATE(x) diff --git a/src/mongo/db/ops/update_internal.h b/src/mongo/db/ops/update_internal.h index c8397bf9a49..620f5d4889c 100644 --- a/src/mongo/db/ops/update_internal.h +++ b/src/mongo/db/ops/update_internal.h @@ -16,15 +16,16 @@ * along with this program. If not, see <http://www.gnu.org/licenses/>. */ -#include "mongo/pch.h" - -#include "mongo/bson/bson_builder_base.h" +#include "mongo/db/index_set.h" #include "mongo/db/jsobj.h" #include "mongo/db/jsobjmanipulator.h" #include "mongo/db/matcher.h" #include "mongo/util/embedded_builder.h" +#include "mongo/util/mongoutils/str.h" #include "mongo/util/stringutils.h" +using namespace mongoutils; + namespace mongo { class ModState; diff --git a/src/mongo/db/pdfile.cpp b/src/mongo/db/pdfile.cpp index 72472ef5f77..3f9e22c6af3 100644 --- a/src/mongo/db/pdfile.cpp +++ b/src/mongo/db/pdfile.cpp @@ -54,6 +54,7 @@ _ disallow system* manipulations from the database. #include "mongo/db/ops/delete.h" #include "mongo/db/replutil.h" #include "mongo/db/sort_phase_one.h" +#include "mongo/db/repl/oplog.h" #include "mongo/util/file.h" #include "mongo/util/file_allocator.h" #include "mongo/util/hashtab.h" diff --git a/src/mongo/db/repl/bgsync.cpp b/src/mongo/db/repl/bgsync.cpp index 626a575afae..1a27a095d1e 100644 --- a/src/mongo/db/repl/bgsync.cpp +++ b/src/mongo/db/repl/bgsync.cpp @@ -20,6 +20,7 @@ #include "mongo/db/commands/fsync.h" #include "mongo/db/commands/server_status.h" #include "mongo/db/repl/bgsync.h" +#include "mongo/db/repl/oplog.h" #include "mongo/db/repl/rs_sync.h" #include "mongo/util/fail_point_service.h" #include "mongo/base/counter.h" diff --git a/src/mongo/db/repl/connections.h b/src/mongo/db/repl/connections.h index e533767e352..0ebc162eed1 100644 --- a/src/mongo/db/repl/connections.h +++ b/src/mongo/db/repl/connections.h @@ -21,6 +21,7 @@ #include <map> #include "mongo/db/auth/authorization_manager.h" +#include "mongo/db/repl/rs.h" // extern Tee* rslog namespace mongo { diff --git a/src/mongo/db/repl/health.cpp b/src/mongo/db/repl/health.cpp index 7c2f85f6c87..46bc53c3860 100644 --- a/src/mongo/db/repl/health.cpp +++ b/src/mongo/db/repl/health.cpp @@ -23,6 +23,7 @@ #include "mongo/db/dbhelpers.h" #include "mongo/db/repl/bgsync.h" #include "mongo/db/repl/connections.h" +#include "mongo/db/repl/oplog.h" #include "mongo/db/repl/rs.h" #include "mongo/util/background.h" #include "mongo/util/concurrency/task.h" diff --git a/src/mongo/db/repl/master_slave.cpp b/src/mongo/db/repl/master_slave.cpp index 7e0c2f47468..ab31c44228c 100644 --- a/src/mongo/db/repl/master_slave.cpp +++ b/src/mongo/db/repl/master_slave.cpp @@ -31,8 +31,8 @@ #include "mongo/db/cloner.h" #include "mongo/db/commands.h" #include "mongo/db/instance.h" -#include "mongo/db/oplog.h" #include "mongo/db/ops/update.h" +#include "mongo/db/repl/oplog.h" #include "mongo/db/repl/replication_server_status.h" // replSettings #include "mongo/db/repl/rs.h" // replLocalAuth() #include "mongo/db/server_parameters.h" diff --git a/src/mongo/db/oplog.cpp b/src/mongo/db/repl/oplog.cpp index 4d4c8fff80c..dbea2e6097a 100644 --- a/src/mongo/db/oplog.cpp +++ b/src/mongo/db/repl/oplog.cpp @@ -18,7 +18,7 @@ #include "mongo/pch.h" -#include "mongo/db/oplog.h" +#include "mongo/db/repl/oplog.h" #include <vector> @@ -411,19 +411,6 @@ namespace mongo { // ------------------------------------- - struct TestOpTime : public StartupTest { - void run() { - OpTime t; - for ( int i = 0; i < 10; i++ ) { - OpTime s = OpTime::_now(); - verify( s != t ); - t = s; - } - OpTime q = t; - verify( q == t ); - verify( !(q != t) ); - } - } testoptime; /** @param fromRepl false if from ApplyOpsCmd @return true if was and update should have happened and the document DNE. see replset initial sync code. */ diff --git a/src/mongo/db/oplog.h b/src/mongo/db/repl/oplog.h index 21cfc64e0f2..fa0a8709eab 100644 --- a/src/mongo/db/oplog.h +++ b/src/mongo/db/repl/oplog.h @@ -1,5 +1,3 @@ -// oplog.h - writing to and reading from oplog - /** * Copyright (C) 2008 10gen Inc. * @@ -16,22 +14,12 @@ * along with this program. If not, see <http://www.gnu.org/licenses/>. */ -/* - - local.oplog.$main is the default -*/ - #pragma once -#include "pdfile.h" -#include "db.h" -#include "dbhelpers.h" -#include "clientcursor.h" -#include "mongo/db/repl/optime.h" -#include "../util/timer.h" - namespace mongo { + class BSONObj; + class Database; // These functions redefine the function for logOp(), // for either master/slave or replica sets. @@ -39,13 +27,18 @@ namespace mongo { void newRepl(); // replica set starting up void newReplUp();// replica set after startup + // Create a new capped collection for the oplog if it doesn't yet exist. + // This will be either local.oplog.rs (replica sets) or local.oplog.$main (master/slave) + // If the collection already exists, set the 'last' OpTime if master/slave (side effect!) void createOplog(); + // This poorly-named function writes an op into the replica-set oplog; + // used internally by replication secondaries after they have applied an op void _logOpObjRS(const BSONObj& op); const char rsoplog[] = "local.oplog.rs"; - /** Write operation to the log (local.oplog.$main) + /** Log an operation to the local oplog @param opstr "i" insert @@ -57,8 +50,10 @@ namespace mongo { See _logOp() in oplog.cpp for more details. */ - void logOp( const char *opstr, const char *ns, const BSONObj& obj, BSONObj *patt = 0, bool *b = 0, bool fromMigrate = false ); + void logOp( const char *opstr, const char *ns, const BSONObj& obj, + BSONObj *patt = 0, bool *b = 0, bool fromMigrate = false ); + // Log an empty no-op operation to the local oplog void logKeepalive(); /** puts obj in the oplog as a comment (a no-op). Just for diags. @@ -67,13 +62,18 @@ namespace mongo { */ void logOpComment(const BSONObj& obj); + // Flush out the cached pointers to the local database and oplog. + // Used by the closeDatabase command to ensure we don't cache closed things. void oplogCheckCloseDatabase( Database * db ); /** * take an op and apply locally * used for applying from an oplog * @param fromRepl really from replication or for testing/internal/command/etc... + * @param convertUpdateToUpsert convert some updates to upserts for idempotency reasons * Returns if the op was an update that could not be applied (true on failure) */ - bool applyOperation_inlock(const BSONObj& op, bool fromRepl = true, bool convertUpdateToUpsert = false); + bool applyOperation_inlock(const BSONObj& op, + bool fromRepl = true, + bool convertUpdateToUpsert = false); } diff --git a/src/mongo/db/repl/optime.cpp b/src/mongo/db/repl/optime.cpp index 0f31d6c07b4..b993c62da9c 100644 --- a/src/mongo/db/repl/optime.cpp +++ b/src/mongo/db/repl/optime.cpp @@ -21,6 +21,7 @@ #include "mongo/bson/inline_decls.h" #include "mongo/util/debug_util.h" #include "mongo/util/log.h" +#include "mongo/util/startup_test.h" namespace mongo { @@ -80,4 +81,18 @@ namespace mongo { } } + struct TestOpTime : public StartupTest { + void run() { + OpTime t; + for ( int i = 0; i < 10; i++ ) { + OpTime s = OpTime::_now(); + verify( s != t ); + t = s; + } + OpTime q = t; + verify( q == t ); + verify( !(q != t) ); + } + } testoptime; + } diff --git a/src/mongo/db/repl/repl_start.cpp b/src/mongo/db/repl/repl_start.cpp index 7de3a9b1a93..f015d127f46 100644 --- a/src/mongo/db/repl/repl_start.cpp +++ b/src/mongo/db/repl/repl_start.cpp @@ -22,6 +22,7 @@ #include "mongo/db/cmdline.h" #include "mongo/db/repl/master_slave.h" +#include "mongo/db/repl/oplog.h" #include "mongo/db/repl/replication_server_status.h" #include "mongo/db/repl/rs.h" #include "mongo/util/log.h" diff --git a/src/mongo/db/repl/rs.cpp b/src/mongo/db/repl/rs.cpp index 11c51287e1b..e3322b8997a 100644 --- a/src/mongo/db/repl/rs.cpp +++ b/src/mongo/db/repl/rs.cpp @@ -26,6 +26,7 @@ #include "mongo/db/instance.h" #include "mongo/db/repl/bgsync.h" #include "mongo/db/repl/connections.h" +#include "mongo/db/repl/oplog.h" #include "mongo/db/repl/replication_server_status.h" // replSettings #include "mongo/db/repl/rs.h" #include "mongo/db/server_parameters.h" diff --git a/src/mongo/db/repl/rs.h b/src/mongo/db/repl/rs.h index d72e3f50b0b..aea1517eb8c 100644 --- a/src/mongo/db/repl/rs.h +++ b/src/mongo/db/repl/rs.h @@ -20,7 +20,7 @@ #include "mongo/db/commands.h" #include "mongo/db/index.h" -#include "mongo/db/oplog.h" +//#include "mongo/db/oplog.h" #include "mongo/db/repl/oplogreader.h" #include "mongo/db/repl/optime.h" #include "mongo/db/repl/rs_config.h" diff --git a/src/mongo/db/repl/rs_config.cpp b/src/mongo/db/repl/rs_config.cpp index bf383d83082..c6fb5a3c01e 100644 --- a/src/mongo/db/repl/rs_config.cpp +++ b/src/mongo/db/repl/rs_config.cpp @@ -16,17 +16,19 @@ * along with this program. If not, see <http://www.gnu.org/licenses/>. */ -#include "pch.h" -#include "rs.h" -#include "../../client/syncclusterconnection.h" -#include "../../util/net/hostandport.h" -#include "../dbhelpers.h" -#include "connections.h" -#include "../oplog.h" -#include "../instance.h" -#include "../../util/text.h" +#include "mongo/pch.h" + #include <boost/algorithm/string.hpp> +#include "mongo/client/syncclusterconnection.h" +#include "mongo/db/dbhelpers.h" +#include "mongo/db/instance.h" +#include "mongo/db/repl/connections.h" +#include "mongo/db/repl/oplog.h" +#include "mongo/db/repl/rs.h" +#include "mongo/util/net/hostandport.h" +#include "mongo/util/text.h" + using namespace bson; namespace mongo { diff --git a/src/mongo/db/repl/rs_initialsync.cpp b/src/mongo/db/repl/rs_initialsync.cpp index ddeb0ec1036..87f010d5ef3 100644 --- a/src/mongo/db/repl/rs_initialsync.cpp +++ b/src/mongo/db/repl/rs_initialsync.cpp @@ -14,15 +14,15 @@ * along with this program. If not, see <http://www.gnu.org/licenses/>. */ -#include "pch.h" +#include "mongo/pch.h" #include "mongo/db/repl/rs.h" #include "mongo/db/client.h" #include "mongo/db/cloner.h" #include "mongo/db/dbhelpers.h" -#include "mongo/db/oplog.h" #include "mongo/db/repl/bgsync.h" +#include "mongo/db/repl/oplog.h" #include "mongo/db/repl/oplogreader.h" #include "mongo/db/repl/optime.h" #include "mongo/db/repl/replication_server_status.h" // replSettings diff --git a/src/mongo/db/repl/rs_initiate.cpp b/src/mongo/db/repl/rs_initiate.cpp index 42f244fb00f..4e8e00c4119 100644 --- a/src/mongo/db/repl/rs_initiate.cpp +++ b/src/mongo/db/repl/rs_initiate.cpp @@ -17,22 +17,22 @@ * along with this program. If not, see <http://www.gnu.org/licenses/>. */ -#include "pch.h" +#include "mongo/pch.h" #include <vector> #include "mongo/db/auth/action_set.h" #include "mongo/db/auth/action_type.h" #include "mongo/db/auth/privilege.h" -#include "../cmdline.h" -#include "../commands.h" -#include "../../util/mmap.h" -#include "../../util/mongoutils/str.h" -#include "health.h" -#include "rs.h" -#include "rs_config.h" -#include "../dbhelpers.h" -#include "../oplog.h" +#include "mongo/db/cmdline.h" +#include "mongo/db/commands.h" +#include "mongo/db/dbhelpers.h" +#include "mongo/db/repl/health.h" +#include "mongo/db/repl/oplog.h" +#include "mongo/db/repl/rs.h" +#include "mongo/db/repl/rs_config.h" +#include "mongo/util/mmap.h" +#include "mongo/util/mongoutils/str.h" using namespace bson; using namespace mongoutils; diff --git a/src/mongo/db/repl/rs_rollback.cpp b/src/mongo/db/repl/rs_rollback.cpp index 8ac3800794b..b44841d84a1 100644 --- a/src/mongo/db/repl/rs_rollback.cpp +++ b/src/mongo/db/repl/rs_rollback.cpp @@ -21,6 +21,7 @@ #include "mongo/db/cloner.h" #include "mongo/db/ops/update.h" #include "mongo/db/ops/delete.h" +#include "mongo/db/repl/oplog.h" #include "mongo/db/repl/rs.h" /* Scenarios diff --git a/src/mongo/db/repl/rs_sync.cpp b/src/mongo/db/repl/rs_sync.cpp index 2f1081f5dac..47a57d87cee 100644 --- a/src/mongo/db/repl/rs_sync.cpp +++ b/src/mongo/db/repl/rs_sync.cpp @@ -28,6 +28,7 @@ #include "mongo/db/namespacestring.h" #include "mongo/db/prefetch.h" #include "mongo/db/repl/bgsync.h" +#include "mongo/db/repl/oplog.h" #include "mongo/db/repl/rs.h" #include "mongo/db/repl/rs_sync.h" #include "mongo/util/fail_point_service.h" diff --git a/src/mongo/db/repl/rs_sync.h b/src/mongo/db/repl/rs_sync.h index 523f45d1900..d068aa4d2ad 100644 --- a/src/mongo/db/repl/rs_sync.h +++ b/src/mongo/db/repl/rs_sync.h @@ -22,7 +22,6 @@ #include "mongo/db/client.h" #include "mongo/db/dur.h" #include "mongo/db/jsobj.h" -#include "mongo/db/oplog.h" #include "mongo/db/repl/sync.h" #include "mongo/util/concurrency/thread_pool.h" diff --git a/src/mongo/dbtests/replsettests.cpp b/src/mongo/dbtests/replsettests.cpp index 3e95a313bbe..4c679628fb7 100644 --- a/src/mongo/dbtests/replsettests.cpp +++ b/src/mongo/dbtests/replsettests.cpp @@ -17,17 +17,15 @@ * along with this program. If not, see <http://www.gnu.org/licenses/>. */ -#include "pch.h" +#include "mongo/pch.h" -#include "../db/db.h" -#include "../db/instance.h" -#include "../db/json.h" - -#include "dbtests.h" -#include "../db/oplog.h" - -#include "mongo/db/repl/rs.h" +#include "mongo/db/db.h" +#include "mongo/db/instance.h" +#include "mongo/db/json.h" #include "mongo/db/repl/bgsync.h" +#include "mongo/db/repl/oplog.h" +#include "mongo/db/repl/rs.h" +#include "mongo/dbtests/dbtests.h" namespace mongo { void createOplog(); diff --git a/src/mongo/dbtests/repltests.cpp b/src/mongo/dbtests/repltests.cpp index 759356d6d21..aac9044c015 100644 --- a/src/mongo/dbtests/repltests.cpp +++ b/src/mongo/dbtests/repltests.cpp @@ -26,6 +26,7 @@ #include "mongo/db/queryoptimizer.h" #include "mongo/db/repl/finding_start_cursor.h" #include "mongo/db/repl/master_slave.h" +#include "mongo/db/repl/oplog.h" #include "mongo/db/repl/replication_server_status.h" #include "mongo/db/repl/rs.h" |