Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
ruanhaishen
redis
Commits
92974f9a
Commit
92974f9a
authored
Apr 21, 2020
by
yanhui13
Browse files
optimize the output of cluster slots
parent
c49fb47f
Changes
1
Show whitespace changes
Inline
Side-by-side
src/cluster.c
View file @
92974f9a
...
@@ -4191,11 +4191,17 @@ void clusterReplyMultiBulkSlots(client *c) {
...
@@ -4191,11 +4191,17 @@ void clusterReplyMultiBulkSlots(client *c) {
while((de = dictNext(di)) != NULL) {
while((de = dictNext(di)) != NULL) {
clusterNode *node = dictGetVal(de);
clusterNode *node = dictGetVal(de);
int j = 0, start = -1;
int j = 0, start = -1;
int i, nested_elements = 0;
/* Skip slaves (that are iterated when producing the output of their
/* Skip slaves (that are iterated when producing the output of their
* master) and masters not serving any slot. */
* master) and masters not serving any slot. */
if (!nodeIsMaster(node) || node->numslots == 0) continue;
if (!nodeIsMaster(node) || node->numslots == 0) continue;
for(i = 0; i < node->numslaves; i++) {
if (nodeFailed(node->slaves[i])) continue;
nested_elements++;
}
for (j = 0; j < CLUSTER_SLOTS; j++) {
for (j = 0; j < CLUSTER_SLOTS; j++) {
int bit, i;
int bit, i;
...
@@ -4203,8 +4209,7 @@ void clusterReplyMultiBulkSlots(client *c) {
...
@@ -4203,8 +4209,7 @@ void clusterReplyMultiBulkSlots(client *c) {
if (start == -1) start = j;
if (start == -1) start = j;
}
}
if (start != -1 && (!bit || j == CLUSTER_SLOTS-1)) {
if (start != -1 && (!bit || j == CLUSTER_SLOTS-1)) {
int nested_elements = 3; /* slots (2) + master addr (1). */
addReplyArrayLen(c, nested_elements + 3); /* slots (2) + master addr (1). */
void *nested_replylen = addReplyDeferredLen(c);
if (bit && j == CLUSTER_SLOTS-1) j++;
if (bit && j == CLUSTER_SLOTS-1) j++;
...
@@ -4234,9 +4239,7 @@ void clusterReplyMultiBulkSlots(client *c) {
...
@@ -4234,9 +4239,7 @@ void clusterReplyMultiBulkSlots(client *c) {
addReplyBulkCString(c, node->slaves[i]->ip);
addReplyBulkCString(c, node->slaves[i]->ip);
addReplyLongLong(c, node->slaves[i]->port);
addReplyLongLong(c, node->slaves[i]->port);
addReplyBulkCBuffer(c, node->slaves[i]->name, CLUSTER_NAMELEN);
addReplyBulkCBuffer(c, node->slaves[i]->name, CLUSTER_NAMELEN);
nested_elements++;
}
}
setDeferredArrayLen(c, nested_replylen, nested_elements);
num_masters++;
num_masters++;
}
}
}
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment