diff --git a/fdbserver/DDTeamCollection.actor.cpp b/fdbserver/DDTeamCollection.actor.cpp index 75747c9c65..58507ffdf6 100644 --- a/fdbserver/DDTeamCollection.actor.cpp +++ b/fdbserver/DDTeamCollection.actor.cpp @@ -5316,10 +5316,10 @@ public: collection->disableBuildingTeams(); collection->setCheckTeamDelay(); - collection->server_info[UID(1, 0)]->setServerMetrics(mid_avail); - collection->server_info[UID(2, 0)]->setServerMetrics(high_avail); - collection->server_info[UID(3, 0)]->setServerMetrics(high_avail); - collection->server_info[UID(4, 0)]->setServerMetrics(high_avail); + collection->server_info[UID(1, 0)]->setMetrics(mid_avail); + collection->server_info[UID(2, 0)]->setMetrics(high_avail); + collection->server_info[UID(3, 0)]->setMetrics(high_avail); + collection->server_info[UID(4, 0)]->setMetrics(high_avail); /* * Suppose 1, 2 and 3 are complete sources, i.e., they have all shards in @@ -5372,10 +5372,10 @@ public: collection->disableBuildingTeams(); collection->setCheckTeamDelay(); - collection->server_info[UID(1, 0)]->setServerMetrics(mid_avail); - collection->server_info[UID(2, 0)]->setServerMetrics(high_avail); - collection->server_info[UID(3, 0)]->setServerMetrics(high_avail); - collection->server_info[UID(4, 0)]->setServerMetrics(high_avail); + collection->server_info[UID(1, 0)]->setMetrics(mid_avail); + collection->server_info[UID(2, 0)]->setMetrics(high_avail); + collection->server_info[UID(3, 0)]->setMetrics(high_avail); + collection->server_info[UID(4, 0)]->setMetrics(high_avail); collection->server_info[UID(1, 0)]->markTeamUnhealthy(0); /* @@ -5435,10 +5435,10 @@ public: * least utilized, if the caller says they preferLowerUtilization. */ - collection->server_info[UID(1, 0)]->setServerMetrics(mid_avail); - collection->server_info[UID(2, 0)]->setServerMetrics(high_avail); - collection->server_info[UID(3, 0)]->setServerMetrics(high_avail); - collection->server_info[UID(4, 0)]->setServerMetrics(high_avail); + collection->server_info[UID(1, 0)]->setMetrics(mid_avail); + collection->server_info[UID(2, 0)]->setMetrics(high_avail); + collection->server_info[UID(3, 0)]->setMetrics(high_avail); + collection->server_info[UID(4, 0)]->setMetrics(high_avail); bool wantsNewServers = true; bool wantsTrueBest = true; @@ -5485,10 +5485,10 @@ public: collection->disableBuildingTeams(); collection->setCheckTeamDelay(); - collection->server_info[UID(1, 0)]->setServerMetrics(mid_avail); - collection->server_info[UID(2, 0)]->setServerMetrics(high_avail); - collection->server_info[UID(3, 0)]->setServerMetrics(high_avail); - collection->server_info[UID(4, 0)]->setServerMetrics(high_avail); + collection->server_info[UID(1, 0)]->setMetrics(mid_avail); + collection->server_info[UID(2, 0)]->setMetrics(high_avail); + collection->server_info[UID(3, 0)]->setMetrics(high_avail); + collection->server_info[UID(4, 0)]->setMetrics(high_avail); /* * Among server teams that have healthy space available, pick the team that is @@ -5539,10 +5539,10 @@ public: collection->disableBuildingTeams(); collection->setCheckTeamDelay(); - collection->server_info[UID(1, 0)]->setServerMetrics(high_avail); - collection->server_info[UID(2, 0)]->setServerMetrics(low_avail); - collection->server_info[UID(3, 0)]->setServerMetrics(high_avail); - collection->server_info[UID(4, 0)]->setServerMetrics(low_avail); + collection->server_info[UID(1, 0)]->setMetrics(high_avail); + collection->server_info[UID(2, 0)]->setMetrics(low_avail); + collection->server_info[UID(3, 0)]->setMetrics(high_avail); + collection->server_info[UID(4, 0)]->setMetrics(low_avail); collection->server_info[UID(1, 0)]->markTeamUnhealthy(0); /* @@ -5599,11 +5599,11 @@ public: collection->disableBuildingTeams(); collection->setCheckTeamDelay(); - collection->server_info[UID(1, 0)]->setServerMetrics(high_avail); - collection->server_info[UID(2, 0)]->setServerMetrics(low_avail); - collection->server_info[UID(3, 0)]->setServerMetrics(high_avail); - collection->server_info[UID(4, 0)]->setServerMetrics(low_avail); - collection->server_info[UID(5, 0)]->setServerMetrics(high_avail); + collection->server_info[UID(1, 0)]->setMetrics(high_avail); + collection->server_info[UID(2, 0)]->setMetrics(low_avail); + collection->server_info[UID(3, 0)]->setMetrics(high_avail); + collection->server_info[UID(4, 0)]->setMetrics(low_avail); + collection->server_info[UID(5, 0)]->setMetrics(high_avail); collection->server_info[UID(1, 0)]->markTeamUnhealthy(0); /* diff --git a/fdbserver/TCInfo.actor.cpp b/fdbserver/TCInfo.actor.cpp index cf9d3e7004..439a71255e 100644 --- a/fdbserver/TCInfo.actor.cpp +++ b/fdbserver/TCInfo.actor.cpp @@ -37,7 +37,7 @@ public: choose { when(ErrorOr rep = wait(metricsRequest)) { if (rep.present()) { - server->serverMetrics = rep; + server->metrics = rep; if (server->updated.canBeSet()) { server->updated.send(Void()); } @@ -65,27 +65,27 @@ public: } } - if (server->serverMetrics.get().lastUpdate < now() - SERVER_KNOBS->DD_SS_STUCK_TIME_LIMIT) { + if (server->metrics.get().lastUpdate < now() - SERVER_KNOBS->DD_SS_STUCK_TIME_LIMIT) { if (server->ssVersionTooFarBehind.get() == false) { TraceEvent("StorageServerStuck", server->collection->getDistributorId()) .detail("ServerId", server->id.toString()) - .detail("LastUpdate", server->serverMetrics.get().lastUpdate); + .detail("LastUpdate", server->metrics.get().lastUpdate); server->ssVersionTooFarBehind.set(true); server->collection->addLaggingStorageServer(server->lastKnownInterface.locality.zoneId().get()); } - } else if (server->serverMetrics.get().versionLag > SERVER_KNOBS->DD_SS_FAILURE_VERSIONLAG) { + } else if (server->metrics.get().versionLag > SERVER_KNOBS->DD_SS_FAILURE_VERSIONLAG) { if (server->ssVersionTooFarBehind.get() == false) { TraceEvent(SevWarn, "SSVersionDiffLarge", server->collection->getDistributorId()) .detail("ServerId", server->id.toString()) - .detail("VersionLag", server->serverMetrics.get().versionLag); + .detail("VersionLag", server->metrics.get().versionLag); server->ssVersionTooFarBehind.set(true); server->collection->addLaggingStorageServer(server->lastKnownInterface.locality.zoneId().get()); } - } else if (server->serverMetrics.get().versionLag < SERVER_KNOBS->DD_SS_ALLOWED_VERSIONLAG) { + } else if (server->metrics.get().versionLag < SERVER_KNOBS->DD_SS_ALLOWED_VERSIONLAG) { if (server->ssVersionTooFarBehind.get() == true) { TraceEvent("SSVersionDiffNormal", server->collection->getDistributorId()) .detail("ServerId", server->id.toString()) - .detail("VersionLag", server->serverMetrics.get().versionLag); + .detail("VersionLag", server->metrics.get().versionLag); server->ssVersionTooFarBehind.set(false); server->collection->removeLaggingStorageServer(server->lastKnownInterface.locality.zoneId().get()); } @@ -138,9 +138,9 @@ TCServerInfo::TCServerInfo(StorageServerInterface ssi, } bool TCServerInfo::hasHealthyAvailableSpace(double minAvailableSpaceRatio) const { - ASSERT(serverMetricsPresent()); + ASSERT(metricsPresent()); - auto& metrics = getServerMetrics(); + auto& metrics = getMetrics(); ASSERT(metrics.available.bytes >= 0); ASSERT(metrics.capacity.bytes >= 0); @@ -199,7 +199,7 @@ void TCServerInfo::removeTeamsContainingServer(UID removedServer) { } std::pair TCServerInfo::spaceBytes(bool includeInFlight) const { - auto& metrics = getServerMetrics(); + auto& metrics = getMetrics(); ASSERT(metrics.capacity.bytes >= 0); ASSERT(metrics.available.bytes >= 0); @@ -212,7 +212,7 @@ std::pair TCServerInfo::spaceBytes(bool includeInFlight) const } int64_t TCServerInfo::loadBytes() const { - return getServerMetrics().load.bytes; + return getMetrics().load.bytes; } void TCServerInfo::removeTeam(Reference team) { @@ -373,7 +373,7 @@ int64_t TCTeamInfo::getLoadBytes(bool includeInFlight, double inflightPenalty) c int64_t TCTeamInfo::getMinAvailableSpace(bool includeInFlight) const { int64_t minAvailableSpace = std::numeric_limits::max(); for (const auto& server : servers) { - if (server->serverMetricsPresent()) { + if (server->metricsPresent()) { const auto [bytesAvailable, bytesCapacity] = server->spaceBytes(includeInFlight); minAvailableSpace = std::min(bytesAvailable, minAvailableSpace); } @@ -385,7 +385,7 @@ int64_t TCTeamInfo::getMinAvailableSpace(bool includeInFlight) const { double TCTeamInfo::getMinAvailableSpaceRatio(bool includeInFlight) const { double minRatio = 1.0; for (const auto& server : servers) { - if (server->serverMetricsPresent()) { + if (server->metricsPresent()) { auto [bytesAvailable, bytesCapacity] = server->spaceBytes(includeInFlight); bytesAvailable = std::max((int64_t)0, bytesAvailable); @@ -404,7 +404,7 @@ bool TCTeamInfo::allServersHaveHealthyAvailableSpace() const { double minAvailableSpaceRatio = SERVER_KNOBS->MIN_AVAILABLE_SPACE_RATIO + SERVER_KNOBS->MIN_AVAILABLE_SPACE_RATIO_SAFETY_BUFFER; for (const auto& server : servers) { - if (!server->serverMetricsPresent() || !server->hasHealthyAvailableSpace(minAvailableSpaceRatio)) { + if (!server->metricsPresent() || !server->hasHealthyAvailableSpace(minAvailableSpaceRatio)) { result = false; break; } @@ -442,7 +442,7 @@ int64_t TCTeamInfo::getLoadAverage() const { int64_t bytesSum = 0; int added = 0; for (const auto& server : servers) { - if (server->serverMetricsPresent()) { + if (server->metricsPresent()) { added++; bytesSum += server->loadBytes(); } diff --git a/fdbserver/TCInfo.h b/fdbserver/TCInfo.h index e5f9a86929..da18d345e7 100644 --- a/fdbserver/TCInfo.h +++ b/fdbserver/TCInfo.h @@ -46,9 +46,11 @@ class TCServerInfo : public ReferenceCounted { int64_t dataInFlightToServer; std::vector> teams; - ErrorOr serverMetrics; + ErrorOr metrics; - void setServerMetrics(GetStorageMetricsReply serverMetrics) { this->serverMetrics = serverMetrics; } + GetStorageMetricsReply const& getMetrics() const { return metrics.get(); } + + void setMetrics(GetStorageMetricsReply serverMetrics) { this->metrics = serverMetrics; } void markTeamUnhealthy(int teamIndex); public: @@ -88,8 +90,7 @@ public: void addTeam(Reference team) { teams.push_back(team); } void removeTeamsContainingServer(UID removedServer); void removeTeam(Reference); - GetStorageMetricsReply const& getServerMetrics() const { return serverMetrics.get(); } - bool serverMetricsPresent() const { return serverMetrics.present(); } + bool metricsPresent() const { return metrics.present(); } bool isCorrectStoreType(KeyValueStoreType configStoreType) const { // A new storage server's store type may not be set immediately.