From 559caa1fa162045da1e0abdb50645a9e972ab4a2 Mon Sep 17 00:00:00 2001 From: Trevor Clinkenbeard Date: Sun, 28 Jun 2026 13:01:20 -0700 Subject: [PATCH] Make TCInfo private to datadistributor --- .../DDTeamCollection.actor.cpp | 22 ++++++++++++++--- fdbserver/datadistributor/TCInfo.cpp | 2 +- .../fdbserver/datadistributor => }/TCInfo.h | 0 .../datadistributor/DDTeamCollection.h | 24 ++++--------------- .../datadistributor/DataDistribution.h | 2 +- 5 files changed, 26 insertions(+), 24 deletions(-) rename fdbserver/datadistributor/{include/fdbserver/datadistributor => }/TCInfo.h (100%) diff --git a/fdbserver/datadistributor/DDTeamCollection.actor.cpp b/fdbserver/datadistributor/DDTeamCollection.actor.cpp index 60bfb1e22f6..eb30aa6eb57 100644 --- a/fdbserver/datadistributor/DDTeamCollection.actor.cpp +++ b/fdbserver/datadistributor/DDTeamCollection.actor.cpp @@ -26,6 +26,7 @@ #include "fdbserver/core/Knobs.h" #include "fdbserver/datadistributor/DDTeamCollection.h" #include "fdbserver/datadistributor/DataDistributionTeam.h" +#include "TCInfo.h" #include "ExclusionTracker.h" #include "flow/IRandom.h" #include "flow/Trace.h" @@ -815,7 +816,7 @@ class DDTeamCollectionImpl { serverIds.push_back(*tempMap->getObject(it)); } std::sort(serverIds.begin(), serverIds.end()); - self->addTeam(serverIds.begin(), serverIds.end(), IsInitialTeam::True); + self->addTeam(serverIds, IsInitialTeam::True); } } else { serverIds.clear(); @@ -864,7 +865,7 @@ class DDTeamCollectionImpl { std::set>::iterator teamIterEnd = self->primary ? initTeams->primaryTeams.end() : initTeams->remoteTeams.end(); for (; teamIter != teamIterEnd; ++teamIter) { - self->addTeam(teamIter->begin(), teamIter->end(), IsInitialTeam::True); + self->addTeam(*teamIter, IsInitialTeam::True); co_await yield(); } } @@ -4922,6 +4923,21 @@ Reference DDTeamCollection::buildLargeTeam(int teamSize) { return teamInfo; } +void DDTeamCollection::addTeam(std::vector const& team, IsInitialTeam isInitialTeam) { + std::vector> newTeamServers; + for (auto const& serverID : team) { + if (auto server = server_info.find(serverID); server != server_info.end()) { + newTeamServers.push_back(server->second); + } + } + + addTeam(newTeamServers, isInitialTeam); +} + +void DDTeamCollection::addTeam(std::set const& team, IsInitialTeam isInitialTeam) { + addTeam(std::vector(team.begin(), team.end()), isInitialTeam); +} + void DDTeamCollection::addTeam(const std::vector>& newTeamServers, IsInitialTeam isInitialTeam, IsRedundantTeam redundantTeam) { @@ -5709,7 +5725,7 @@ int DDTeamCollection::addTeamsBestOf(int teamsToBuild, int desiredTeams, int max } // Step 4: Add the server team - addTeam(bestServerTeam.begin(), bestServerTeam.end(), IsInitialTeam::False); + addTeam(bestServerTeam, IsInitialTeam::False); addedTeams++; } diff --git a/fdbserver/datadistributor/TCInfo.cpp b/fdbserver/datadistributor/TCInfo.cpp index fd90b3abb59..7bd4fb83875 100644 --- a/fdbserver/datadistributor/TCInfo.cpp +++ b/fdbserver/datadistributor/TCInfo.cpp @@ -20,7 +20,7 @@ #include "fdbserver/core/Knobs.h" #include "fdbserver/datadistributor/DDTeamCollection.h" -#include "fdbserver/datadistributor/TCInfo.h" +#include "TCInfo.h" #include "flow/CoroUtils.h" class TCServerInfoImpl { diff --git a/fdbserver/datadistributor/include/fdbserver/datadistributor/TCInfo.h b/fdbserver/datadistributor/TCInfo.h similarity index 100% rename from fdbserver/datadistributor/include/fdbserver/datadistributor/TCInfo.h rename to fdbserver/datadistributor/TCInfo.h diff --git a/fdbserver/datadistributor/include/fdbserver/datadistributor/DDTeamCollection.h b/fdbserver/datadistributor/include/fdbserver/datadistributor/DDTeamCollection.h index e4357265ce5..2bbdec0bb07 100644 --- a/fdbserver/datadistributor/include/fdbserver/datadistributor/DDTeamCollection.h +++ b/fdbserver/datadistributor/include/fdbserver/datadistributor/DDTeamCollection.h @@ -36,8 +36,8 @@ #include "fdbserver/core/MoveKeys.h" #include "fdbserver/core/TLogInterface.h" #include "fdbserver/core/WaitFailure.h" -#include "fdbserver/datadistributor/TCInfo.h" #include "fdbserver/datadistributor/DataDistribution.h" +#include "fdbserver/datadistributor/DataDistributionTeam.h" #include "fdbserver/core/QuietDatabase.h" #include "fdbserver/core/ServerDBInfo.h" #include "flow/ActorCollection.h" @@ -46,6 +46,7 @@ #include "flow/Trace.h" #include "flow/UnitTest.h" +class TCServerInfo; class TCTeamInfo; class TCMachineInfo; class TCMachineTeamInfo; @@ -625,33 +626,18 @@ class DDTeamCollection : public ReferenceCounted { void setCheckTeamDelay() { this->checkTeamDelay = Void(); } - // Assume begin to end is sorted by std::sort - // Assume InputIt is iterator to UID + // Assume team is sorted by std::sort // Note: We must allow creating empty teams because empty team is created when a remote DB is initialized. // The empty team is used as the starting point to move data to the remote DB - // begin : the start of the team member ID - // end : end of the team member ID // isIntialTeam : False when the team is added by addTeamsBestOf(); True otherwise, e.g., // when the team added at init() when we recreate teams by looking up DB - template - void addTeam(InputIt begin, InputIt end, IsInitialTeam isInitialTeam) { - std::vector> newTeamServers; - for (auto i = begin; i != end; ++i) { - if (server_info.find(*i) != server_info.end()) { - newTeamServers.push_back(server_info[*i]); - } - } - - addTeam(newTeamServers, isInitialTeam); - } + void addTeam(std::vector const& team, IsInitialTeam isInitialTeam); void addTeam(const std::vector>& newTeamServers, IsInitialTeam, IsRedundantTeam = IsRedundantTeam::False); - void addTeam(std::set const& team, IsInitialTeam isInitialTeam) { - addTeam(team.begin(), team.end(), isInitialTeam); - } + void addTeam(std::set const& team, IsInitialTeam isInitialTeam); // Create server teams based on machine teams // Before the number of machine teams reaches the threshold, build a machine team for each server team diff --git a/fdbserver/datadistributor/include/fdbserver/datadistributor/DataDistribution.h b/fdbserver/datadistributor/include/fdbserver/datadistributor/DataDistribution.h index b0cf5241b6f..fb97aebfcea 100644 --- a/fdbserver/datadistributor/include/fdbserver/datadistributor/DataDistribution.h +++ b/fdbserver/datadistributor/include/fdbserver/datadistributor/DataDistribution.h @@ -33,7 +33,7 @@ #include "fdbclient/RunRYWTransaction.h" #include "fdbserver/datadistributor/DDTxnProcessor.h" #include "fdbserver/datadistributor/ShardsAffectedByTeamFailure.h" -#include "fdbserver/datadistributor/TCInfo.h" +#include "fdbserver/datadistributor/DataDistributionTeam.h" #include "fdbclient/StorageWiggleMetrics.h" #include "fdbclient/DataDistributionConfig.h" #include