Cluster Manager: fix replica assigment anti-affinity (create)

Fix issue #5849
This commit is contained in:
artix 2019-02-20 15:36:12 +01:00
parent 35ffbead5c
commit 0f28754021

View File

@ -4918,6 +4918,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++) {