add status

This commit is contained in:
Xiaoxi Wang 2022-03-01 15:27:27 -08:00
parent eb557d59e1
commit f48ba989c3
3 changed files with 9 additions and 1 deletions

View File

@ -699,6 +699,7 @@ const KeyRef JSONSchemas::statusSchema = LiteralStringRef(R"statusSchema(
"maintenance_seconds_remaining":1.0, "maintenance_seconds_remaining":1.0,
"data_distribution_disabled_for_ss_failures":true, "data_distribution_disabled_for_ss_failures":true,
"data_distribution_disabled_for_rebalance":true, "data_distribution_disabled_for_rebalance":true,
"data_distribution_disabled_hex": "1",
"data_distribution_disabled":true, "data_distribution_disabled":true,
"active_primary_dc":"pv", "active_primary_dc":"pv",
"bounce_impact":{ "bounce_impact":{

View File

@ -1577,7 +1577,8 @@ ACTOR Future<Void> BgDDValleyFiller(DDQueueData* self, int teamCollectionIndex)
// reset loop interval // reset loop interval
rebalancePollingInterval = SERVER_KNOBS->BG_REBALANCE_POLLING_INTERVAL; rebalancePollingInterval = SERVER_KNOBS->BG_REBALANCE_POLLING_INTERVAL;
} else if (val.present()) { } else if (val.present()) {
if (val.get().size() > 0) { // FIXME: better way for upgrade? for example, using a new key to record mode
if (val.get().size() > sizeof(int)) {
int ddIgnore = BinaryReader::fromStringRef<int>(val.get(), Unversioned()); int ddIgnore = BinaryReader::fromStringRef<int>(val.get(), Unversioned());
if (ddIgnore & DDIgnore::REBALANCE_DISK) { if (ddIgnore & DDIgnore::REBALANCE_DISK) {
disableReadBalance = true; disableReadBalance = true;

View File

@ -1535,6 +1535,8 @@ struct LoadConfigurationResult {
Optional<Key> healthyZone; Optional<Key> healthyZone;
double healthyZoneSeconds; double healthyZoneSeconds;
bool rebalanceDDIgnored; bool rebalanceDDIgnored;
// FIXME: possible convert it to int if upgrade value can be resolved?
std::string rebalanceDDIgnoreHex; // any or combination of 0, 1, 2, see enum DDIgnore;
bool dataDistributionDisabled; bool dataDistributionDisabled;
LoadConfigurationResult() LoadConfigurationResult()
@ -1609,6 +1611,9 @@ loadConfiguration(Database cx, JsonBuilderArray* messages, std::set<std::string>
} }
} }
res.rebalanceDDIgnored = rebalanceDDIgnored.get().present(); res.rebalanceDDIgnored = rebalanceDDIgnored.get().present();
if (res.rebalanceDDIgnored) {
res.rebalanceDDIgnoreHex = rebalanceDDIgnored.get().get().toHexString();
}
if (ddModeKey.get().present()) { if (ddModeKey.get().present()) {
BinaryReader rd(ddModeKey.get().get(), Unversioned()); BinaryReader rd(ddModeKey.get().get(), Unversioned());
int currentMode; int currentMode;
@ -2955,6 +2960,7 @@ ACTOR Future<StatusReply> clusterGetStatus(
} }
if (loadResult.get().rebalanceDDIgnored) { if (loadResult.get().rebalanceDDIgnored) {
statusObj["data_distribution_disabled_for_rebalance"] = true; statusObj["data_distribution_disabled_for_rebalance"] = true;
statusObj["data_distribution_disabled_hex"] = loadResult.get().rebalanceDDIgnoreHex;
} }
if (loadResult.get().dataDistributionDisabled) { if (loadResult.get().dataDistributionDisabled) {
statusObj["data_distribution_disabled"] = true; statusObj["data_distribution_disabled"] = true;