diff options
author | Judah Schvimer <judah@mongodb.com> | 2018-05-10 10:24:11 -0400 |
---|---|---|
committer | Judah Schvimer <judah@mongodb.com> | 2018-05-10 10:26:09 -0400 |
commit | 120e53540fb94330b6594399bdff3ccc99625278 (patch) | |
tree | 5d0d074bb1c2417c656c3cd451a9e6a85e8b410d /src | |
parent | 25202711c79bb4da07dd2ec320b8350db2fd2d7d (diff) | |
download | mongo-120e53540fb94330b6594399bdff3ccc99625278.tar.gz |
SERVER-34780 Change --recoverFromOplogAsStandalone to setParameter
Diffstat (limited to 'src')
-rw-r--r-- | src/mongo/db/mongod_options.cpp | 13 | ||||
-rw-r--r-- | src/mongo/db/repl/repl_settings.cpp | 18 | ||||
-rw-r--r-- | src/mongo/db/repl/repl_settings.h | 9 | ||||
-rw-r--r-- | src/mongo/db/repl/replication_coordinator_impl.cpp | 4 | ||||
-rw-r--r-- | src/mongo/db/storage/wiredtiger/wiredtiger_index.cpp | 4 | ||||
-rw-r--r-- | src/mongo/db/storage/wiredtiger/wiredtiger_record_store.cpp | 4 |
6 files changed, 23 insertions, 29 deletions
diff --git a/src/mongo/db/mongod_options.cpp b/src/mongo/db/mongod_options.cpp index 61a1df60860..2b7dbce436d 100644 --- a/src/mongo/db/mongod_options.cpp +++ b/src/mongo/db/mongod_options.cpp @@ -364,15 +364,6 @@ Status addMongodOptions(moe::OptionSection* options) { "size to use (in MB) for replication op log. default is 5% of disk space " "(i.e. large is good)"); - replication_options - .addOptionChaining("replication.recoverFromOplogAsStandalone", - "recoverFromOplogAsStandalone", - moe::Switch, - "specifies that a standalone should execute replication recovery") - .hidden() - .incompatibleWith("replication.replSet") - .incompatibleWith("replication.replSetName"); - rs_options .addOptionChaining("replication.replSet", "replSet", @@ -1071,10 +1062,6 @@ Status storeMongodOptions(const moe::Environment& params) { replSettings.setOplogSizeBytes(x * 1024 * 1024); invariant(replSettings.getOplogSizeBytes() > 0); } - if (params.count("replication.recoverFromOplogAsStandalone")) { - replSettings.setShouldRecoverFromOplogAsStandalone( - params["replication.recoverFromOplogAsStandalone"].as<bool>()); - } if (params.count("cacheSize")) { long x = params["cacheSize"].as<long>(); diff --git a/src/mongo/db/repl/repl_settings.cpp b/src/mongo/db/repl/repl_settings.cpp index bf64b2bf057..6fe0e23c101 100644 --- a/src/mongo/db/repl/repl_settings.cpp +++ b/src/mongo/db/repl/repl_settings.cpp @@ -31,11 +31,21 @@ #include "mongo/platform/basic.h" #include "mongo/db/repl/repl_settings.h" +#include "mongo/db/server_parameters.h" #include "mongo/util/log.h" namespace mongo { namespace repl { +namespace { + +// Tells the server to perform replication recovery as a standalone. +constexpr bool recoverFromOplogAsStandaloneDefault = false; +MONGO_EXPORT_STARTUP_SERVER_PARAMETER(recoverFromOplogAsStandalone, + bool, + recoverFromOplogAsStandaloneDefault); + +} // namespace std::string ReplSettings::ourSetName() const { size_t sl = _replSetString.find('/'); @@ -60,8 +70,8 @@ std::string ReplSettings::getReplSetString() const { return _replSetString; } -bool ReplSettings::getShouldRecoverFromOplogAsStandalone() const { - return _shouldRecoverFromOplogAsStandalone; +bool ReplSettings::shouldRecoverFromOplogAsStandalone() { + return recoverFromOplogAsStandalone; } ReplSettings::IndexPrefetchConfig ReplSettings::getPrefetchIndexMode() const { @@ -84,10 +94,6 @@ void ReplSettings::setReplSetString(std::string replSetString) { _replSetString = replSetString; } -void ReplSettings::setShouldRecoverFromOplogAsStandalone(bool shouldRecover) { - _shouldRecoverFromOplogAsStandalone = shouldRecover; -} - void ReplSettings::setPrefetchIndexMode(std::string prefetchIndexModeString) { if (prefetchIndexModeString.empty()) { _prefetchIndexMode = IndexPrefetchConfig::UNINITIALIZED; diff --git a/src/mongo/db/repl/repl_settings.h b/src/mongo/db/repl/repl_settings.h index 9f75c10d712..12853505a05 100644 --- a/src/mongo/db/repl/repl_settings.h +++ b/src/mongo/db/repl/repl_settings.h @@ -56,7 +56,11 @@ public: */ long long getOplogSizeBytes() const; std::string getReplSetString() const; - bool getShouldRecoverFromOplogAsStandalone() const; + + /** + * Static getter for the 'recoverFromOplogAsStandalone' server parameter. + */ + static bool shouldRecoverFromOplogAsStandalone(); /** * Note: _prefetchIndexMode is initialized to UNINITIALIZED by default. @@ -76,15 +80,12 @@ public: void setOplogSizeBytes(long long oplogSizeBytes); void setReplSetString(std::string replSetString); void setPrefetchIndexMode(std::string prefetchIndexModeString); - void setShouldRecoverFromOplogAsStandalone(bool shouldRecover); private: long long _oplogSizeBytes = 0; // --oplogSize std::string _replSetString; // --replSet[/<seedlist>] - bool _shouldRecoverFromOplogAsStandalone = false; // --shouldRecoverFromOplogAsStandalone - // --indexPrefetch IndexPrefetchConfig _prefetchIndexMode = IndexPrefetchConfig::UNINITIALIZED; }; diff --git a/src/mongo/db/repl/replication_coordinator_impl.cpp b/src/mongo/db/repl/replication_coordinator_impl.cpp index c11f221f245..5ee1c69554c 100644 --- a/src/mongo/db/repl/replication_coordinator_impl.cpp +++ b/src/mongo/db/repl/replication_coordinator_impl.cpp @@ -736,7 +736,7 @@ void ReplicationCoordinatorImpl::_startDataReplication(OperationContext* opCtx, void ReplicationCoordinatorImpl::startup(OperationContext* opCtx) { if (!isReplEnabled()) { - if (_settings.getShouldRecoverFromOplogAsStandalone()) { + if (ReplSettings::shouldRecoverFromOplogAsStandalone()) { if (!_storage->supportsRecoverToStableTimestamp(opCtx->getServiceContext())) { severe() << "Cannot use 'recoverFromOplogAsStandalone' with a storage engine that " "does not support recover to stable timestamp."; @@ -763,7 +763,7 @@ void ReplicationCoordinatorImpl::startup(OperationContext* opCtx) { return; } invariant(_settings.usingReplSets()); - invariant(!_settings.getShouldRecoverFromOplogAsStandalone()); + invariant(!ReplSettings::shouldRecoverFromOplogAsStandalone()); { stdx::lock_guard<stdx::mutex> lk(_mutex); diff --git a/src/mongo/db/storage/wiredtiger/wiredtiger_index.cpp b/src/mongo/db/storage/wiredtiger/wiredtiger_index.cpp index 29010468711..7abac5b1855 100644 --- a/src/mongo/db/storage/wiredtiger/wiredtiger_index.cpp +++ b/src/mongo/db/storage/wiredtiger/wiredtiger_index.cpp @@ -248,7 +248,7 @@ StatusWith<std::string> WiredTigerIndex::generateCreateString(const std::string& ss << generateAppMetadataString(desc); bool replicatedWrites = getGlobalReplSettings().usingReplSets() || - getGlobalReplSettings().getShouldRecoverFromOplogAsStandalone(); + repl::ReplSettings::shouldRecoverFromOplogAsStandalone(); if (WiredTigerUtil::useTableLogging(NamespaceString(desc.parentNS()), replicatedWrites)) { ss << "log=(enabled=true)"; } else { @@ -306,7 +306,7 @@ WiredTigerIndex::WiredTigerIndex(OperationContext* ctx, if (!isReadOnly) { bool replicatedWrites = getGlobalReplSettings().usingReplSets() || - getGlobalReplSettings().getShouldRecoverFromOplogAsStandalone(); + repl::ReplSettings::shouldRecoverFromOplogAsStandalone(); uassertStatusOK(WiredTigerUtil::setTableLogging( ctx, uri, diff --git a/src/mongo/db/storage/wiredtiger/wiredtiger_record_store.cpp b/src/mongo/db/storage/wiredtiger/wiredtiger_record_store.cpp index 78ca842d694..cc6caed4705 100644 --- a/src/mongo/db/storage/wiredtiger/wiredtiger_record_store.cpp +++ b/src/mongo/db/storage/wiredtiger/wiredtiger_record_store.cpp @@ -596,7 +596,7 @@ StatusWith<std::string> WiredTigerRecordStore::generateCreateString( ss << ")"; bool replicatedWrites = getGlobalReplSettings().usingReplSets() || - getGlobalReplSettings().getShouldRecoverFromOplogAsStandalone(); + repl::ReplSettings::shouldRecoverFromOplogAsStandalone(); if (WiredTigerUtil::useTableLogging(NamespaceString(ns), replicatedWrites)) { ss << ",log=(enabled=true)"; } else { @@ -649,7 +649,7 @@ WiredTigerRecordStore::WiredTigerRecordStore(WiredTigerKVEngine* kvEngine, if (!params.isReadOnly) { bool replicatedWrites = getGlobalReplSettings().usingReplSets() || - getGlobalReplSettings().getShouldRecoverFromOplogAsStandalone(); + repl::ReplSettings::shouldRecoverFromOplogAsStandalone(); uassertStatusOK(WiredTigerUtil::setTableLogging( ctx, _uri, WiredTigerUtil::useTableLogging(NamespaceString(ns()), replicatedWrites))); } |