mirror of
http://github.com/valkey-io/valkey
synced 2024-11-22 00:52:38 +00:00
Maintain determinstic ordering of replica(s) in CLUSTER SLOTS response (#265)
Sort `clusterNode.slaves` while adding a new replica to the cluster on basis of `name`. This will enable deterministic ordering of replica(s) information in `CLUSTER SLOTS` response. Before this change: ``` 127.0.0.1:6380> CLUSTER SLOTS 1) 1) (integer) 0 2) (integer) 16383 3) 1) "127.0.0.1" 2) (integer) 6379 3) "fc72609a620c62d073a31eed9ddde5104c1fa302" 4) (empty array) 4) 1) "127.0.0.1" 2) (integer) 6381 3) "fac84bbf2ffc5cfcdebc92c06b8ead9c3cba4051" 4) (empty array) 5) 1) "127.0.0.1" 2) (integer) 6380 3) "b1249d394326f1485df0b895f2fd38e141aa5056" 4) (empty array) ``` After this change: ``` 127.0.0.1:6380> CLUSTER SLOTS 1) 1) (integer) 0 2) (integer) 16383 3) 1) "127.0.0.1" 2) (integer) 6379 3) "fc72609a620c62d073a31eed9ddde5104c1fa302" 4) (empty array) 4) 1) "127.0.0.1" 2) (integer) 6380 3) "b1249d394326f1485df0b895f2fd38e141aa5056" 4) (empty array) 5) 1) "127.0.0.1" 2) (integer) 6381 3) "fac84bbf2ffc5cfcdebc92c06b8ead9c3cba4051" 4) (empty array) ``` Signed-off-by: Harkrishn Patro <harkrisp@amazon.com>
This commit is contained in:
parent
c2ebe9ebbd
commit
e59dd41e42
@ -1450,6 +1450,10 @@ int clusterNodeFailureReportsCount(clusterNode *node) {
|
||||
return listLength(node->fail_reports);
|
||||
}
|
||||
|
||||
static int clusterNodeNameComparator(const void *node1, const void *node2) {
|
||||
return strncasecmp((*(clusterNode **)node1)->name, (*(clusterNode **)node2)->name, CLUSTER_NAMELEN);
|
||||
}
|
||||
|
||||
int clusterNodeRemoveSlave(clusterNode *master, clusterNode *slave) {
|
||||
int j;
|
||||
|
||||
@ -1479,6 +1483,7 @@ int clusterNodeAddSlave(clusterNode *master, clusterNode *slave) {
|
||||
sizeof(clusterNode*)*(master->numslaves+1));
|
||||
master->slaves[master->numslaves] = slave;
|
||||
master->numslaves++;
|
||||
qsort(master->slaves, master->numslaves, sizeof(clusterNode *), clusterNodeNameComparator);
|
||||
master->flags |= CLUSTER_NODE_MIGRATE_TO;
|
||||
return C_OK;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user