change TeamSelect variables names, and update comment

This commit is contained in:
zhongxing.zhang 2023-03-29 13:46:04 -07:00
parent 4f4f201138
commit 72ff00a5ce
3 changed files with 31 additions and 24 deletions

View File

@ -1297,9 +1297,9 @@ ACTOR Future<Void> dataDistributionRelocator(DDQueue* self,
TeamSelect destTeamSelect;
if (!rd.wantsNewServers) {
destTeamSelect = TeamSelect::WANT_SRCSERVERS;
destTeamSelect = TeamSelect::WANT_COMPLETE_SRCS;
} else if (wantTrueBest) {
destTeamSelect = TeamSelect::WANT_TRUEBEST;
destTeamSelect = TeamSelect::WANT_TRUE_BEST;
} else {
destTeamSelect = TeamSelect::ANY;
}
@ -2148,12 +2148,12 @@ ACTOR Future<Void> BgDDLoadRebalance(DDQueue* self, int teamCollectionIndex, Dat
if (self->priority_relocations[ddPriority] < SERVER_KNOBS->DD_REBALANCE_PARALLELISM) {
bool mcMove = isDataMovementForMountainChopper(reason);
GetTeamRequest srcReq = GetTeamRequest(mcMove ? TeamSelect::WANT_TRUEBEST : TeamSelect::ANY,
GetTeamRequest srcReq = GetTeamRequest(mcMove ? TeamSelect::WANT_TRUE_BEST : TeamSelect::ANY,
PreferLowerDiskUtil::False,
TeamMustHaveShards::True,
ForReadBalance(readRebalance),
PreferLowerReadUtil::False);
GetTeamRequest destReq = GetTeamRequest(!mcMove ? TeamSelect::WANT_TRUEBEST : TeamSelect::ANY,
GetTeamRequest destReq = GetTeamRequest(!mcMove ? TeamSelect::WANT_TRUE_BEST : TeamSelect::ANY,
PreferLowerDiskUtil::True,
TeamMustHaveShards::False,
ForReadBalance(readRebalance),

View File

@ -295,7 +295,7 @@ public:
}
// Note: this block does not apply any filters from the request
if (req.teamSelect == TeamSelect::WANT_SRCSERVERS) {
if (req.teamSelect == TeamSelect::WANT_COMPLETE_SRCS) {
auto healthyTeam = self->findTeamFromServers(req.completeSources, /* wantHealthy=*/true);
if (healthyTeam.present()) {
req.reply.send(std::make_pair(healthyTeam, foundSrc));
@ -303,7 +303,7 @@ public:
}
}
if (req.teamSelect == TeamSelect::WANT_TRUEBEST) {
if (req.teamSelect == TeamSelect::WANT_TRUE_BEST) {
ASSERT(!bestOption.present());
auto& startIndex = req.preferLowerDiskUtil ? self->lowestUtilizationTeam : self->highestUtilizationTeam;
if (startIndex >= self->teams.size()) {
@ -5726,7 +5726,7 @@ public:
*/
std::vector<UID> completeSources{ UID(1, 0), UID(2, 0), UID(3, 0) };
state GetTeamRequest req(TeamSelect::WANT_SRCSERVERS, PreferLowerDiskUtil::True, TeamMustHaveShards::False);
state GetTeamRequest req(TeamSelect::WANT_COMPLETE_SRCS, PreferLowerDiskUtil::True, TeamMustHaveShards::False);
req.completeSources = completeSources;
wait(collection->getTeam(req));
@ -5777,7 +5777,7 @@ public:
*/
std::vector<UID> completeSources{ UID(1, 0), UID(2, 0), UID(3, 0), UID(4, 0) };
state GetTeamRequest req(TeamSelect::WANT_SRCSERVERS, PreferLowerDiskUtil::True, TeamMustHaveShards::False);
state GetTeamRequest req(TeamSelect::WANT_COMPLETE_SRCS, PreferLowerDiskUtil::True, TeamMustHaveShards::False);
req.completeSources = completeSources;
wait(collection->getTeam(req));
@ -5826,7 +5826,7 @@ public:
std::vector<UID> completeSources{ UID(1, 0), UID(2, 0), UID(3, 0) };
state GetTeamRequest req(TeamSelect::WANT_TRUEBEST, PreferLowerDiskUtil::True, TeamMustHaveShards::False);
state GetTeamRequest req(TeamSelect::WANT_TRUE_BEST, PreferLowerDiskUtil::True, TeamMustHaveShards::False);
req.completeSources = completeSources;
wait(collection->getTeam(req));
@ -5874,7 +5874,7 @@ public:
*/
std::vector<UID> completeSources{ UID(1, 0), UID(2, 0), UID(3, 0) };
state GetTeamRequest req(TeamSelect::WANT_TRUEBEST, PreferLowerDiskUtil::False, TeamMustHaveShards::False);
state GetTeamRequest req(TeamSelect::WANT_TRUE_BEST, PreferLowerDiskUtil::False, TeamMustHaveShards::False);
req.completeSources = completeSources;
wait(collection->getTeam(req));
@ -5924,7 +5924,7 @@ public:
*/
std::vector<UID> completeSources{ UID(1, 0), UID(2, 0), UID(3, 0) };
state GetTeamRequest req(TeamSelect::WANT_TRUEBEST, PreferLowerDiskUtil::True, TeamMustHaveShards::False);
state GetTeamRequest req(TeamSelect::WANT_TRUE_BEST, PreferLowerDiskUtil::True, TeamMustHaveShards::False);
req.completeSources = completeSources;
wait(collection->getTeam(req));
@ -5979,7 +5979,7 @@ public:
*/
std::vector<UID> completeSources{ UID(1, 0), UID(2, 0), UID(3, 0) };
state GetTeamRequest req(TeamSelect::WANT_TRUEBEST, PreferLowerDiskUtil::True, TeamMustHaveShards::False);
state GetTeamRequest req(TeamSelect::WANT_TRUE_BEST, PreferLowerDiskUtil::True, TeamMustHaveShards::False);
req.completeSources = completeSources;
wait(collection->getTeam(req));
@ -6022,14 +6022,14 @@ public:
auto forReadBalance = ForReadBalance::True;
std::vector<UID> completeSources{ UID(1, 0), UID(2, 0), UID(3, 0) };
state GetTeamRequest req(TeamSelect::WANT_TRUEBEST,
state GetTeamRequest req(TeamSelect::WANT_TRUE_BEST,
preferLowerDiskUtil,
teamMustHaveShards,
forReadBalance,
PreferLowerReadUtil::True);
req.completeSources = completeSources;
state GetTeamRequest reqHigh(TeamSelect::WANT_TRUEBEST,
state GetTeamRequest reqHigh(TeamSelect::WANT_TRUE_BEST,
PreferLowerDiskUtil::False,
teamMustHaveShards,
forReadBalance,
@ -6092,7 +6092,7 @@ public:
std::vector<UID> completeSources{ UID(1, 0), UID(2, 0), UID(3, 0) };
state GetTeamRequest req(TeamSelect::WANT_TRUEBEST, PreferLowerDiskUtil::True, TeamMustHaveShards::False);
state GetTeamRequest req(TeamSelect::WANT_TRUE_BEST, PreferLowerDiskUtil::True, TeamMustHaveShards::False);
req.completeSources = completeSources;
wait(collection->getTeam(req));

View File

@ -72,24 +72,24 @@ FDB_DECLARE_BOOLEAN_PARAM(FindTeamByServers);
class TeamSelect {
public:
enum Value : int8_t {
ANY = 0, // Any other situations
WANT_SRCSERVERS, // Ask for srcTeam
WANT_TRUEBEST, // Ask for the most or least utilized team
ANY = 0, // Any other situations except for the next two
WANT_COMPLETE_SRCS, // Try best to select a healthy team consists of servers in completeSources
WANT_TRUE_BEST, // Ask for the most or least utilized team in the cluster
};
TeamSelect() : value(ANY) {}
TeamSelect(Value v) : value(v) {}
std::string toString() const {
switch (value) {
case WANT_SRCSERVERS:
return "Want_SrcServers";
case WANT_TRUEBEST:
return "Want_TrueBest";
case WANT_COMPLETE_SRCS:
return "Want_Complete_Srcs";
case WANT_TRUE_BEST:
return "Want_True_Best";
case ANY:
return "Any";
}
}
bool operator==(const TeamSelect& tmpTeamSelect) { return (int)value == (int)tmpTeamSelect.value; }
bool operator==(const TeamSelect& tmpTeamSelect) { return value == tmpTeamSelect.value; }
private:
Value value;
@ -104,8 +104,15 @@ struct GetTeamRequest {
double inflightPenalty;
bool findTeamByServers;
Optional<KeyRange> keys;
// completeSources have all shards in the key range being considered for movement, src have at least 1 shard in the
// key range for movement. From the point of set, completeSources is the Intersection set of several <server_lists>,
// while src is the Union set of them. E.g. keyRange = [Shard_1, Shard_2), and Shard_1 is located at {Server_1,
// Server_2, Server_3}, Shard_2 is located at {Server_2, Server_3, Server_4}. completeSources = {Server_2,
// Server_3}, src = {Server_1, Server_2, Server_3, Server_4}
std::vector<UID> completeSources;
std::vector<UID> src;
Promise<std::pair<Optional<Reference<IDataDistributionTeam>>, bool>> reply;
typedef Reference<IDataDistributionTeam> TeamRef;
@ -122,7 +129,7 @@ struct GetTeamRequest {
forReadBalance(forReadBalance), preferLowerReadUtil(preferLowerReadUtil), inflightPenalty(inflightPenalty),
findTeamByServers(FindTeamByServers::False), keys(keys) {}
GetTeamRequest(std::vector<UID> servers)
: teamSelect(TeamSelect::WANT_SRCSERVERS), preferLowerDiskUtil(PreferLowerDiskUtil::False),
: teamSelect(TeamSelect::WANT_COMPLETE_SRCS), preferLowerDiskUtil(PreferLowerDiskUtil::False),
teamMustHaveShards(TeamMustHaveShards::False), forReadBalance(ForReadBalance::False),
preferLowerReadUtil(PreferLowerReadUtil::False), inflightPenalty(1.0),
findTeamByServers(FindTeamByServers::True), src(std::move(servers)) {}