summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--jstests/replsets/config_server_checks.js22
-rw-r--r--src/mongo/db/cloner.h1
-rw-r--r--src/mongo/db/db.cpp2
-rw-r--r--src/mongo/db/dbcommands.cpp2
-rw-r--r--src/mongo/db/mongod_options.cpp37
-rw-r--r--src/mongo/db/repl/replication_info.cpp4
-rw-r--r--src/mongo/db/repl/topology_coordinator_impl.cpp7
-rw-r--r--src/mongo/db/repl/topology_coordinator_impl.h5
-rw-r--r--src/mongo/db/repl/topology_coordinator_impl_test.cpp23
-rw-r--r--src/mongo/db/repl/topology_coordinator_impl_v1_test.cpp28
-rw-r--r--src/mongo/db/s/sharding_state.cpp2
-rw-r--r--src/mongo/db/server_options.h2
-rw-r--r--src/mongo/db/write_concern.cpp13
-rw-r--r--src/mongo/s/catalog/catalog_manager.h6
-rw-r--r--src/mongo/s/sharding_initialization.cpp2
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();
}