summaryrefslogtreecommitdiff
path: root/src/mongo/s
diff options
context:
space:
mode:
authorPierlauro Sciarelli <pierlauro.sciarelli@mongodb.com>2023-05-10 13:18:13 +0000
committerEvergreen Agent <no-reply@evergreen.mongodb.com>2023-05-10 14:51:30 +0000
commit310e84afa411117081c8b49ae152673d08ec597d (patch)
treeed45e58841c2e7fc5d991e6cd2cd43a8608e1612 /src/mongo/s
parent48be174f68488b8e0c5695081afe1d41260a259f (diff)
downloadmongo-310e84afa411117081c8b49ae152673d08ec597d.tar.gz
SERVER-75757 Get rid of `autoSplitOnly` balancing mode
Diffstat (limited to 'src/mongo/s')
-rw-r--r--src/mongo/s/balancer_configuration.cpp21
-rw-r--r--src/mongo/s/balancer_configuration.h7
-rw-r--r--src/mongo/s/balancer_configuration_test.cpp14
3 files changed, 28 insertions, 14 deletions
diff --git a/src/mongo/s/balancer_configuration.cpp b/src/mongo/s/balancer_configuration.cpp
index 9375fae3338..bf67de9eca8 100644
--- a/src/mongo/s/balancer_configuration.cpp
+++ b/src/mongo/s/balancer_configuration.cpp
@@ -83,8 +83,7 @@ const char kAttemptToBalanceJumboChunks[] = "attemptToBalanceJumboChunks";
} // namespace
const char BalancerSettingsType::kKey[] = "balancer";
-// TODO SERVER-75757: get rid of legacy `autoSplitOnly` mode
-const char* BalancerSettingsType::kBalancerModes[] = {"full", "autoSplitOnly", "off"};
+const char* BalancerSettingsType::kBalancerModes[] = {"full", "off"};
const char ChunkSizeSettingsType::kKey[] = "chunksize";
const uint64_t ChunkSizeSettingsType::kDefaultMaxChunkSizeBytes{128 * 1024 * 1024};
@@ -306,10 +305,22 @@ StatusWith<BalancerSettingsType> BalancerSettingsType::fromBSON(const BSONObj& o
return status;
auto it = std::find(std::begin(kBalancerModes), std::end(kBalancerModes), modeStr);
if (it == std::end(kBalancerModes)) {
- return Status(ErrorCodes::BadValue, "Invalid balancer mode");
+ std::vector<std::string> supportedModes;
+ std::transform(std::begin(kBalancerModes),
+ std::end(kBalancerModes),
+ std::back_inserter(supportedModes),
+ [](const char* supportedMode) -> std::string {
+ return std::string(supportedMode);
+ });
+ LOGV2_WARNING(
+ 7575700,
+ "Balancer turned off because currently set balancing mode is not valid",
+ "currentMode"_attr = modeStr,
+ "supportedModes"_attr = supportedModes);
+ settings._mode = kOff;
+ } else {
+ settings._mode = static_cast<BalancerMode>(it - std::begin(kBalancerModes));
}
-
- settings._mode = static_cast<BalancerMode>(it - std::begin(kBalancerModes));
}
}
diff --git a/src/mongo/s/balancer_configuration.h b/src/mongo/s/balancer_configuration.h
index 2a46669956d..1b104d52b4d 100644
--- a/src/mongo/s/balancer_configuration.h
+++ b/src/mongo/s/balancer_configuration.h
@@ -51,7 +51,7 @@ class StatusWith;
*
* balancer: {
* stopped: <true|false>,
- * mode: <full|autoSplitOnly|off>, // Only consulted if "stopped" is missing or
+ * mode: <full|off>, // Only consulted if "stopped" is missing or
* false activeWindow: { start: "<HH:MM>", stop: "<HH:MM>" }
* }
*/
@@ -59,9 +59,8 @@ class BalancerSettingsType {
public:
// Supported balancer modes
enum BalancerMode {
- kFull, // Balancer will always try to keep the cluster even
- kAutoSplitOnly, // Only balance on auto splits
- kOff, // Balancer is completely off
+ kFull, // Balancer will always try to keep the cluster even
+ kOff, // Balancer is completely off
};
// The key under which this setting is stored on the config server
diff --git a/src/mongo/s/balancer_configuration_test.cpp b/src/mongo/s/balancer_configuration_test.cpp
index d06d8ba4897..4e97dd3d3ba 100644
--- a/src/mongo/s/balancer_configuration_test.cpp
+++ b/src/mongo/s/balancer_configuration_test.cpp
@@ -184,11 +184,15 @@ TEST(BalancerSettingsType, AllValidBalancerModeOptions) {
}
TEST(BalancerSettingsType, InvalidBalancerModeOption) {
- ASSERT_EQ(ErrorCodes::BadValue,
- BalancerSettingsType::fromBSON(BSON("mode"
- << "BAD"))
- .getStatus()
- .code());
+ startCapturingLogMessages();
+ ASSERT_EQ(BalancerSettingsType::kOff,
+ assertGet(BalancerSettingsType::fromBSON(BSON("mode"
+ << "BAD")))
+ .getMode());
+ stopCapturingLogMessages();
+ ASSERT_EQ(1,
+ countTextFormatLogLinesContaining(
+ "Balancer turned off because currently set balancing mode is not valid"));
}
TEST(BalancerSettingsType, BalancingWindowStartLessThanStop) {