Merge pull request #5850 from artix75/dev

Cluster Manager: fix replica assignment anti-affinity (create)
This commit is contained in:
Salvatore Sanfilippo 2019-02-22 10:28:31 +01:00 committed by GitHub
commit 2d3cad684c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -4929,6 +4929,12 @@ static int clusterManagerCommandCreate(int argc, char **argv) {
cursor += slots_per_node;
}
/* Rotating the list sometimes helps to get better initial
* anti-affinity before the optimizer runs. */
clusterManagerNode *first_node = interleaved[0];
for (i = 0; i < (interleaved_len - 1); i++)
interleaved[i] = interleaved[i + 1];
interleaved[interleaved_len - 1] = first_node;
int assign_unused = 0, available_count = interleaved_len;
assign_replicas:
for (i = 0; i < masters_count; i++) {