diff options
author | Pierlauro Sciarelli <pierlauro.sciarelli@mongodb.com> | 2023-05-10 13:18:13 +0000 |
---|---|---|
committer | Evergreen Agent <no-reply@evergreen.mongodb.com> | 2023-05-10 14:51:30 +0000 |
commit | 310e84afa411117081c8b49ae152673d08ec597d (patch) | |
tree | ed45e58841c2e7fc5d991e6cd2cd43a8608e1612 /src/mongo/s | |
parent | 48be174f68488b8e0c5695081afe1d41260a259f (diff) | |
download | mongo-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.cpp | 21 | ||||
-rw-r--r-- | src/mongo/s/balancer_configuration.h | 7 | ||||
-rw-r--r-- | src/mongo/s/balancer_configuration_test.cpp | 14 |
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) { |