Commit 0f287540 authored by artix's avatar artix
Browse files

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

Fix issue #5849
parent 35ffbead
...@@ -4918,6 +4918,12 @@ static int clusterManagerCommandCreate(int argc, char **argv) { ...@@ -4918,6 +4918,12 @@ static int clusterManagerCommandCreate(int argc, char **argv) {
cursor += slots_per_node; 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; int assign_unused = 0, available_count = interleaved_len;
assign_replicas: assign_replicas:
for (i = 0; i < masters_count; i++) { for (i = 0; i < masters_count; i++) {
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment