diff options
author | Misha Tyulenev <misha@mongodb.com> | 2016-04-21 18:17:53 -0400 |
---|---|---|
committer | Misha Tyulenev <misha@mongodb.com> | 2016-04-21 21:18:21 -0400 |
commit | cb6298ef61165e06474995b1a22eb18850246271 (patch) | |
tree | d40af36116bf04c159b16dc255a8dd0e3abc06ef | |
parent | 9d120df9c8a8ecc6a530cc08b3c0e34a9ca4dc75 (diff) | |
download | mongo-cb6298ef61165e06474995b1a22eb18850246271.tar.gz |
SERVER-23268 remove CatalogManager::ConfigServerMode::SCCC
-rw-r--r-- | jstests/replsets/config_server_checks.js | 22 | ||||
-rw-r--r-- | src/mongo/db/cloner.h | 1 | ||||
-rw-r--r-- | src/mongo/db/db.cpp | 2 | ||||
-rw-r--r-- | src/mongo/db/dbcommands.cpp | 2 | ||||
-rw-r--r-- | src/mongo/db/mongod_options.cpp | 37 | ||||
-rw-r--r-- | src/mongo/db/repl/replication_info.cpp | 4 | ||||
-rw-r--r-- | src/mongo/db/repl/topology_coordinator_impl.cpp | 7 | ||||
-rw-r--r-- | src/mongo/db/repl/topology_coordinator_impl.h | 5 | ||||
-rw-r--r-- | src/mongo/db/repl/topology_coordinator_impl_test.cpp | 23 | ||||
-rw-r--r-- | src/mongo/db/repl/topology_coordinator_impl_v1_test.cpp | 28 | ||||
-rw-r--r-- | src/mongo/db/s/sharding_state.cpp | 2 | ||||
-rw-r--r-- | src/mongo/db/server_options.h | 2 | ||||
-rw-r--r-- | src/mongo/db/write_concern.cpp | 13 | ||||
-rw-r--r-- | src/mongo/s/catalog/catalog_manager.h | 6 | ||||
-rw-r--r-- | src/mongo/s/sharding_initialization.cpp | 2 |
15 files changed, 16 insertions, 140 deletions
diff --git a/jstests/replsets/config_server_checks.js b/jstests/replsets/config_server_checks.js index c88ccf6815b..8fb6b813667 100644 --- a/jstests/replsets/config_server_checks.js +++ b/jstests/replsets/config_server_checks.js @@ -42,28 +42,6 @@ function expectState(rst, state) { })(); (function() { - // Test that node with --configsvr cmd line and configsvr in replset config does NOT go - // into REMOVED state if storage engine is not WiredTiger but we're running in SCCC mode - jsTestLog( - "configsvr in rs config and --configsvr cmd line, but mmapv1 with configSvrMode=sccc"); - var rst = new ReplSetTest({ - name: "configrs4", - nodes: 1, - nodeOptions: - {configsvr: "", journal: "", storageEngine: "mmapv1", configsvrMode: "sccc"} - }); - - rst.startSet(); - var conf = rst.getReplSetConfig(); - conf.configsvr = true; - assert.commandWorked(rst.nodes[0].adminCommand({replSetInitiate: conf})); - - rst.getPrimary(); - expectState(rst, ReplSetTest.State.PRIMARY); - rst.stopSet(); - })(); - - (function() { // Test that node with --configsvr cmd line and configsvr in replset config and using // wiredTiger // does NOT go into REMOVED state. diff --git a/src/mongo/db/cloner.h b/src/mongo/db/cloner.h index e0e9ba306c4..8a5cb691375 100644 --- a/src/mongo/db/cloner.h +++ b/src/mongo/db/cloner.h @@ -111,7 +111,6 @@ struct CloneOptions { bool syncData = true; bool syncIndexes = true; bool checkForCatalogChange = false; - CatalogManager::ConfigServerMode initialCatalogMode = CatalogManager::ConfigServerMode::NONE; }; } // namespace mongo diff --git a/src/mongo/db/db.cpp b/src/mongo/db/db.cpp index 84e696aabfd..a29a65f66c4 100644 --- a/src/mongo/db/db.cpp +++ b/src/mongo/db/db.cpp @@ -901,7 +901,7 @@ MONGO_INITIALIZER_WITH_PREREQUISITES(CreateReplicationManager, (InitializerContext* context) { repl::TopologyCoordinatorImpl::Options topoCoordOptions; topoCoordOptions.maxSyncSourceLagSecs = Seconds(repl::maxSyncSourceLagSecs); - topoCoordOptions.configServerMode = serverGlobalParams.configsvrMode; + topoCoordOptions.clusterRole = serverGlobalParams.clusterRole; auto replCoord = stdx::make_unique<repl::ReplicationCoordinatorImpl>( getGlobalReplSettings(), diff --git a/src/mongo/db/dbcommands.cpp b/src/mongo/db/dbcommands.cpp index 00f456eb91e..a23025034f0 100644 --- a/src/mongo/db/dbcommands.cpp +++ b/src/mongo/db/dbcommands.cpp @@ -1292,7 +1292,7 @@ void Command::execCommand(OperationContext* txn, CurOp::get(txn)->ensureStarted(); // We disable last-error for help requests due to SERVER-11492, because config servers // use help requests to determine which commands are database writes, and so must be - // forwarded to all mirrored (SCCC) config servers. + // forwarded to all config servers. LastError::get(txn->getClient()).disable(); generateHelpResponse(txn, request, replyBuilder, *command); return; diff --git a/src/mongo/db/mongod_options.cpp b/src/mongo/db/mongod_options.cpp index 32280af350a..a31e165af34 100644 --- a/src/mongo/db/mongod_options.cpp +++ b/src/mongo/db/mongod_options.cpp @@ -440,14 +440,6 @@ Status addMongodOptions(moe::OptionSection* options) { .incompatibleWith("shardsvr") .incompatibleWith("nojournal"); - sharding_options.addOptionChaining("sharding.configsvrMode", - "configsvrMode", - moe::String, - "Controls what config server protocol is in use. When set to" - " \"sccc\" keeps server in legacy SyncClusterConnection mode" - " even when the service is running as a replSet") - .setSources(moe::SourceAll); - sharding_options.addOptionChaining( "shardsvr", "shardsvr", @@ -1227,10 +1219,7 @@ Status storeMongodOptions(const moe::Environment& params, const std::vector<std: auto clusterRoleParam = params["sharding.clusterRole"].as<std::string>(); if (clusterRoleParam == "configsvr") { serverGlobalParams.clusterRole = ClusterRole::ConfigServer; - serverGlobalParams.configsvrMode = replSettings.getReplSetString().empty() - ? CatalogManager::ConfigServerMode::SCCC - : CatalogManager::ConfigServerMode::CSRS; - mmapv1GlobalOptions.smallfiles = true; // config server implies small files + replSettings.setMajorityReadConcernEnabled(true); // If we haven't explicitly specified a journal option, default journaling to true for // the config server role @@ -1241,35 +1230,11 @@ Status storeMongodOptions(const moe::Environment& params, const std::vector<std: if (!params.count("storage.dbPath")) { storageGlobalParams.dbpath = storageGlobalParams.kDefaultConfigDbPath; } - if (serverGlobalParams.configsvrMode == CatalogManager::ConfigServerMode::SCCC) { - // Set to true to force SCCC config servers to have an oplog for backup. - replSettings.setMaster(true); - if (!params.count("replication.oplogSizeMB")) - replSettings.setOplogSizeBytes(5 * 1024 * 1024); - } } else if (clusterRoleParam == "shardsvr") { serverGlobalParams.clusterRole = ClusterRole::ShardServer; } } - if (params.count("sharding.configsvrMode")) { - if (serverGlobalParams.clusterRole != ClusterRole::ConfigServer) { - return Status(ErrorCodes::BadValue, - "Cannot set \"sharding.configsvrMode\" without " - "setting \"sharding.clusterRole\" to \"configsvr\""); - } - if (params["sharding.configsvrMode"].as<std::string>() != "sccc") { - return Status(ErrorCodes::BadValue, - "Bad value for sharding.configsvrMode. " - " Only supported value is \"sccc\""); - } - serverGlobalParams.configsvrMode = CatalogManager::ConfigServerMode::SCCC; - } - - if (serverGlobalParams.configsvrMode == CatalogManager::ConfigServerMode::CSRS) { - replSettings.setMajorityReadConcernEnabled(true); - } - if (params.count("sharding.archiveMovedChunks")) { serverGlobalParams.moveParanoia = params["sharding.archiveMovedChunks"].as<bool>(); } diff --git a/src/mongo/db/repl/replication_info.cpp b/src/mongo/db/repl/replication_info.cpp index 6c450ce34ba..b11c2624694 100644 --- a/src/mongo/db/repl/replication_info.cpp +++ b/src/mongo/db/repl/replication_info.cpp @@ -231,10 +231,8 @@ public: appendReplicationInfo(txn, result, 0); - if (serverGlobalParams.configsvrMode == CatalogManager::ConfigServerMode::CSRS) { + if (serverGlobalParams.clusterRole == ClusterRole::ConfigServer) { result.append("configsvr", 1); - } else if (serverGlobalParams.configsvrMode == CatalogManager::ConfigServerMode::SCCC) { - result.append("configsvr", 0); } result.appendNumber("maxBsonObjectSize", BSONObjMaxUserSize); diff --git a/src/mongo/db/repl/topology_coordinator_impl.cpp b/src/mongo/db/repl/topology_coordinator_impl.cpp index 41258f45062..e2cf990a13f 100644 --- a/src/mongo/db/repl/topology_coordinator_impl.cpp +++ b/src/mongo/db/repl/topology_coordinator_impl.cpp @@ -2115,17 +2115,16 @@ MemberState TopologyCoordinatorImpl::getMemberState() const { } if (_rsConfig.isConfigServer()) { - if (_options.configServerMode == CatalogManager::ConfigServerMode::NONE) { + if (_options.clusterRole != ClusterRole::ConfigServer) { return MemberState::RS_REMOVED; - } - if (_options.configServerMode == CatalogManager::ConfigServerMode::CSRS) { + } else { invariant(_storageEngineSupportsReadCommitted != ReadCommittedSupport::kUnknown); if (_storageEngineSupportsReadCommitted == ReadCommittedSupport::kNo) { return MemberState::RS_REMOVED; } } } else { - if (_options.configServerMode != CatalogManager::ConfigServerMode::NONE) { + if (_options.clusterRole == ClusterRole::ConfigServer) { return MemberState::RS_REMOVED; } } diff --git a/src/mongo/db/repl/topology_coordinator_impl.h b/src/mongo/db/repl/topology_coordinator_impl.h index f7f4bc6e613..74d7368d552 100644 --- a/src/mongo/db/repl/topology_coordinator_impl.h +++ b/src/mongo/db/repl/topology_coordinator_impl.h @@ -127,9 +127,8 @@ public: // A sync source is re-evaluated after it lags behind further than this amount. Seconds maxSyncSourceLagSecs{0}; - // Whether or not this node is running as a config server, and if so whether it was started - // with --configsvrMode=SCCC. - CatalogManager::ConfigServerMode configServerMode{CatalogManager::ConfigServerMode::NONE}; + // Whether or not this node is running as a config server. + ClusterRole clusterRole{ClusterRole::None}; }; /** diff --git a/src/mongo/db/repl/topology_coordinator_impl_test.cpp b/src/mongo/db/repl/topology_coordinator_impl_test.cpp index 56c40c3bdea..b1ff5db42cf 100644 --- a/src/mongo/db/repl/topology_coordinator_impl_test.cpp +++ b/src/mongo/db/repl/topology_coordinator_impl_test.cpp @@ -5801,28 +5801,7 @@ TEST_F(TopoCoordTest, CSRSConfigServerRejectsPV0Config) { ON_BLOCK_EXIT([]() { serverGlobalParams.clusterRole = ClusterRole::None; }); serverGlobalParams.clusterRole = ClusterRole::ConfigServer; TopologyCoordinatorImpl::Options options; - options.configServerMode = CatalogManager::ConfigServerMode::CSRS; - setOptions(options); - getTopoCoord().setStorageEngineSupportsReadCommitted(false); - - auto configObj = BSON("_id" - << "rs0" - << "version" << 1 << "configsvr" << true << "members" - << BSON_ARRAY(BSON("_id" << 10 << "host" - << "hself") - << BSON("_id" << 20 << "host" - << "h2") << BSON("_id" << 30 << "host" - << "h3"))); - ReplicaSetConfig config; - ASSERT_OK(config.initialize(configObj, false)); - ASSERT_EQ(ErrorCodes::BadValue, config.validate()); -} - -TEST_F(TopoCoordTest, SCCCConfigServerRejectsPV0Config) { - ON_BLOCK_EXIT([]() { serverGlobalParams.clusterRole = ClusterRole::None; }); - serverGlobalParams.clusterRole = ClusterRole::ConfigServer; - TopologyCoordinatorImpl::Options options; - options.configServerMode = CatalogManager::ConfigServerMode::SCCC; + options.clusterRole = ClusterRole::ConfigServer; setOptions(options); getTopoCoord().setStorageEngineSupportsReadCommitted(false); diff --git a/src/mongo/db/repl/topology_coordinator_impl_v1_test.cpp b/src/mongo/db/repl/topology_coordinator_impl_v1_test.cpp index bab5d0522c1..e68d84e9d6d 100644 --- a/src/mongo/db/repl/topology_coordinator_impl_v1_test.cpp +++ b/src/mongo/db/repl/topology_coordinator_impl_v1_test.cpp @@ -2596,7 +2596,7 @@ TEST_F(TopoCoordTest, NodeTransitionsToRemovedIfCSRSButHaveNoReadCommittedSuppor ON_BLOCK_EXIT([]() { serverGlobalParams.clusterRole = ClusterRole::None; }); serverGlobalParams.clusterRole = ClusterRole::ConfigServer; TopologyCoordinatorImpl::Options options; - options.configServerMode = CatalogManager::ConfigServerMode::CSRS; + options.clusterRole = ClusterRole::ConfigServer; setOptions(options); getTopoCoord().setStorageEngineSupportsReadCommitted(false); @@ -2613,35 +2613,11 @@ TEST_F(TopoCoordTest, NodeTransitionsToRemovedIfCSRSButHaveNoReadCommittedSuppor ASSERT_EQUALS(MemberState::RS_REMOVED, getTopoCoord().getMemberState().s); } -TEST_F(TopoCoordTest, NoReadCommittedSupportShouldNotTriggerRemovedStateInSCCC) { - ON_BLOCK_EXIT([]() { serverGlobalParams.clusterRole = ClusterRole::None; }); - serverGlobalParams.clusterRole = ClusterRole::ConfigServer; - TopologyCoordinatorImpl::Options options; - options.configServerMode = CatalogManager::ConfigServerMode::SCCC; - setOptions(options); - getTopoCoord().setStorageEngineSupportsReadCommitted(false); - - updateConfig(BSON("_id" - << "rs0" - << "protocolVersion" << 1 << "version" << 1 << "configsvr" << true - << "members" - << BSON_ARRAY(BSON("_id" << 10 << "host" - << "hself") - << BSON("_id" << 20 << "host" - << "h2") << BSON("_id" << 30 << "host" - << "h3"))), - 0); - - ASSERT_EQUALS(MemberState::RS_STARTUP2, getTopoCoord().getMemberState().s); - getTopoCoord().setFollowerMode(MemberState::RS_SECONDARY); - ASSERT_EQUALS(MemberState::RS_SECONDARY, getTopoCoord().getMemberState().s); -} - TEST_F(TopoCoordTest, NodeBecomesSecondaryAsNormalWhenReadCommittedSupportedAndCSRS) { ON_BLOCK_EXIT([]() { serverGlobalParams.clusterRole = ClusterRole::None; }); serverGlobalParams.clusterRole = ClusterRole::ConfigServer; TopologyCoordinatorImpl::Options options; - options.configServerMode = CatalogManager::ConfigServerMode::CSRS; + options.clusterRole = ClusterRole::ConfigServer; setOptions(options); getTopoCoord().setStorageEngineSupportsReadCommitted(true); diff --git a/src/mongo/db/s/sharding_state.cpp b/src/mongo/db/s/sharding_state.cpp index e7a75d4122b..4b6e04e4843 100644 --- a/src/mongo/db/s/sharding_state.cpp +++ b/src/mongo/db/s/sharding_state.cpp @@ -202,7 +202,7 @@ void ShardingState::shutDown(OperationContext* txn) { void ShardingState::updateConfigServerOpTimeFromMetadata(OperationContext* txn) { stdx::lock_guard<stdx::mutex> lk(_mutex); - if (serverGlobalParams.configsvrMode != CatalogManager::ConfigServerMode::NONE) { + if (serverGlobalParams.clusterRole == ClusterRole::ConfigServer) { // Nothing to do if we're a config server ourselves. return; } diff --git a/src/mongo/db/server_options.h b/src/mongo/db/server_options.h index 0cbfba5e53a..8191bbda1f6 100644 --- a/src/mongo/db/server_options.h +++ b/src/mongo/db/server_options.h @@ -57,8 +57,6 @@ struct ServerGlobalParams { std::atomic<bool> quiet{false}; // --quiet NOLINT ClusterRole clusterRole = ClusterRole::None; // --configsvr/--shardsvr - CatalogManager::ConfigServerMode configsvrMode = - CatalogManager::ConfigServerMode::NONE; // -- configsvrMode bool cpu = false; // --cpu show cpu time periodically diff --git a/src/mongo/db/write_concern.cpp b/src/mongo/db/write_concern.cpp index b6d23b63aa2..dfd8540fea6 100644 --- a/src/mongo/db/write_concern.cpp +++ b/src/mongo/db/write_concern.cpp @@ -122,15 +122,6 @@ Status validateWriteConcern(OperationContext* txn, repl::getGlobalReplicationCoordinator()->getReplicationMode(); if (isConfigServer) { - auto protocol = rpc::getOperationProtocol(txn); - // This here only for v3.0 backwards compatibility. - if (serverGlobalParams.configsvrMode != CatalogManager::ConfigServerMode::CSRS && - replMode != repl::ReplicationCoordinator::modeReplSet && - protocol == rpc::Protocol::kOpQuery && writeConcern.wNumNodes == 0 && - writeConcern.wMode.empty()) { - return Status::OK(); - } - if (!writeConcern.validForConfigServers()) { return Status( ErrorCodes::BadValue, @@ -138,8 +129,8 @@ Status validateWriteConcern(OperationContext* txn, << "w:1 and w:'majority' are the only valid write concerns when writing to " "config servers, got: " << writeConcern.toBSON().toString()); } - if (serverGlobalParams.configsvrMode == CatalogManager::ConfigServerMode::CSRS && - replMode == repl::ReplicationCoordinator::modeReplSet && !isLocalDb && + + if (replMode == repl::ReplicationCoordinator::modeReplSet && !isLocalDb && writeConcern.wMode.empty()) { invariant(writeConcern.wNumNodes == 1); return Status( diff --git a/src/mongo/s/catalog/catalog_manager.h b/src/mongo/s/catalog/catalog_manager.h index f4b3c9fcb5f..f3fe5ca2f21 100644 --- a/src/mongo/s/catalog/catalog_manager.h +++ b/src/mongo/s/catalog/catalog_manager.h @@ -87,12 +87,6 @@ class CatalogManager { MONGO_DISALLOW_COPYING(CatalogManager); public: - enum class ConfigServerMode { - NONE, - SCCC, - CSRS, - }; - virtual ~CatalogManager() = default; /** diff --git a/src/mongo/s/sharding_initialization.cpp b/src/mongo/s/sharding_initialization.cpp index 83340441816..f5bc995e079 100644 --- a/src/mongo/s/sharding_initialization.cpp +++ b/src/mongo/s/sharding_initialization.cpp @@ -194,7 +194,7 @@ Status initializeGlobalShardingStateForMongod(const ConnectionString& configCS) } Status reloadShardRegistryUntilSuccess(OperationContext* txn) { - if (serverGlobalParams.configsvrMode != CatalogManager::ConfigServerMode::NONE) { + if (serverGlobalParams.clusterRole == ClusterRole::ConfigServer) { return Status::OK(); } |