diff options
author | Xuerui Fa <xuerui.fa@mongodb.com> | 2019-09-06 00:55:27 +0000 |
---|---|---|
committer | Evergreen Agent <no-reply@evergreen.mongodb.com> | 2020-02-04 14:53:44 +0000 |
commit | 21899f6bd537399e00dd86833d185b1ebd1fffe9 (patch) | |
tree | ce5a2f951dc2fc6470a7bda2c6d071f577bc643e | |
parent | a93cfd354467981c9cf944a4ada748d0226fdfb0 (diff) | |
download | mongo-21899f6bd537399e00dd86833d185b1ebd1fffe9.tar.gz |
SERVER-42573 Only warn about enableReadConcernMajority if PSA architecture
(cherry picked from commit 897ebf0eb55ffc68ef4c09aefc43a48bca82df3d)
-rw-r--r-- | src/mongo/db/repl/repl_set_config.cpp | 6 | ||||
-rw-r--r-- | src/mongo/db/repl/repl_set_config.h | 5 | ||||
-rw-r--r-- | src/mongo/db/repl/replication_coordinator_impl.cpp | 6 |
3 files changed, 15 insertions, 2 deletions
diff --git a/src/mongo/db/repl/repl_set_config.cpp b/src/mongo/db/repl/repl_set_config.cpp index 34fe0a2feff..00a8177cbf1 100644 --- a/src/mongo/db/repl/repl_set_config.cpp +++ b/src/mongo/db/repl/repl_set_config.cpp @@ -730,6 +730,12 @@ Status ReplSetConfig::checkIfWriteConcernCanBeSatisfied( } } +int ReplSetConfig::getNumDataBearingMembers() const { + int numArbiters = + std::count_if(begin(_members), end(_members), [](const auto& x) { return x.isArbiter(); }); + return _members.size() - numArbiters; +} + const MemberConfig& ReplSetConfig::getMemberAt(size_t i) const { invariant(i < _members.size()); return _members[i]; diff --git a/src/mongo/db/repl/repl_set_config.h b/src/mongo/db/repl/repl_set_config.h index 1e451a968ca..54ea0d52454 100644 --- a/src/mongo/db/repl/repl_set_config.h +++ b/src/mongo/db/repl/repl_set_config.h @@ -161,6 +161,11 @@ public: } /** + * Gets the number of data-bearing members in this configuration. + */ + int getNumDataBearingMembers() const; + + /** * Access a MemberConfig element by index. */ const MemberConfig& getMemberAt(size_t i) const; diff --git a/src/mongo/db/repl/replication_coordinator_impl.cpp b/src/mongo/db/repl/replication_coordinator_impl.cpp index f7d410fdfbe..c6fb608d76b 100644 --- a/src/mongo/db/repl/replication_coordinator_impl.cpp +++ b/src/mongo/db/repl/replication_coordinator_impl.cpp @@ -562,9 +562,11 @@ void ReplicationCoordinatorImpl::_finishLoadLocalConfig( myIndex = StatusWith<int>(-1); } - if (serverGlobalParams.enableMajorityReadConcern && localConfig.containsArbiter()) { + if (serverGlobalParams.enableMajorityReadConcern && localConfig.getNumMembers() == 3 && + localConfig.getNumDataBearingMembers() == 2) { log() << startupWarningsLog; - log() << "** WARNING: This replica set uses arbiters, but readConcern:majority is enabled " + log() << "** WARNING: This replica set has a Primary-Secondary-Arbiter architecture, but " + "readConcern:majority is enabled " << startupWarningsLog; log() << "** for this node. This is not a recommended configuration. Please see " << startupWarningsLog; |