change TeamSelect variables names, and update comment
This commit is contained in:
parent
4f4f201138
commit
72ff00a5ce
|
|
@ -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),
|
||||
|
|
|
|||
|
|
@ -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));
|
||||
|
|
|
|||
|
|
@ -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)) {}
|
||||
|
|
|
|||
Loading…
Reference in New Issue