Avoid to re-establish replication if node is already myself primary in CLUSTER REPLICATE (#884)
If n is already myself primary, there is no need to re-establish the replication connection. In the past we allow a replica node to reconnect with its primary via this CLUSTER REPLICATE command, it will use psync. But since #885, we will assume that a full sync is needed in this case, so if we don't do this, the replica will always use full sync. Signed-off-by: Binbin <binloveplay1314@qq.com> Co-authored-by: Ping Xie <pingxie@google.com>
This commit is contained in:
parent
39f8bcb91b
commit
08aaeea4b7
@ -6564,6 +6564,13 @@ int clusterCommandSpecial(client *c) {
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* If `n` is already my primary, there is no need to re-establish the
|
||||
* replication connection. */
|
||||
if (myself->replicaof == n) {
|
||||
addReply(c, shared.ok);
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* Set the primary.
|
||||
* If the instance is a primary, it is an empty primary.
|
||||
* If the instance is a replica, it had a totally different replication history.
|
||||
|
Loading…
x
Reference in New Issue
Block a user