Skip to content

Commit ee450de

Browse files
committed
mmaprototype: clean up diversityScore
Previously, we were inefficiently invoking diversityFunc twice over voters X voters diversity score calculation when refactoring the code. This change reverts it back so diversity score is computed once and reused.
1 parent ad928ed commit ee450de

File tree

1 file changed

+10
-15
lines changed

1 file changed

+10
-15
lines changed

pkg/kv/kvserver/allocator/mmaprototype/constraint.go

Lines changed: 10 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1052,22 +1052,17 @@ func diversityScore(
10521052
return sumScore / float64(numSamples)
10531053
}
10541054

1055-
// Calculate voter diversity (V × V, no self-pairs)
10561055
voterSum, voterSamples := diversityFunc(replicas[voterIndex], replicas[voterIndex], true)
1057-
// Calculate replica diversity over all pairs:
1058-
// (voter, voter), (nonvoter, nonvoter), (voter, nonvoter)
1059-
totalSum, totalSamples := 0.0, 0
1060-
vs, ns := diversityFunc(replicas[voterIndex], replicas[voterIndex], true)
1061-
totalSum += vs
1062-
totalSamples += ns
1063-
1064-
vs, ns = diversityFunc(replicas[nonVoterIndex], replicas[nonVoterIndex], true)
1065-
totalSum += vs
1066-
totalSamples += ns
1067-
1068-
vs, ns = diversityFunc(replicas[voterIndex], replicas[nonVoterIndex], false)
1069-
totalSum += vs
1070-
totalSamples += ns
1056+
totalSum := voterSum
1057+
totalSamples := voterSamples
1058+
1059+
nonVoterSum, nonVoterSamples := diversityFunc(replicas[nonVoterIndex], replicas[nonVoterIndex], true)
1060+
totalSum += nonVoterSum
1061+
totalSamples += nonVoterSamples
1062+
1063+
voterNonVoterSum, voterNonVoterSamples := diversityFunc(replicas[voterIndex], replicas[nonVoterIndex], false)
1064+
totalSum += voterNonVoterSum
1065+
totalSamples += voterNonVoterSamples
10711066
return scoreFromSumAndSamples(voterSum, voterSamples), scoreFromSumAndSamples(totalSum, totalSamples)
10721067
}
10731068

0 commit comments

Comments
 (0)