Commit d3b46623 authored by antirez's avatar antirez
Browse files

Cluster: don't check keys hash slots when the source is our master.

Usually we redirect clients to the right hash slot, however we don't
want to do that with our master, we want just to mirror it.
parent 31ac3760
...@@ -1663,9 +1663,14 @@ int processCommand(redisClient *c) { ...@@ -1663,9 +1663,14 @@ int processCommand(redisClient *c) {
return REDIS_OK; return REDIS_OK;
} }
/* If cluster is enabled, redirect here */ /* If cluster is enabled perform the cluster redirection here.
* However we don't perform the redirection if:
* 1) The sender of this command is our master.
* 2) The command has no key arguments. */
if (server.cluster_enabled && if (server.cluster_enabled &&
!(c->cmd->getkeys_proc == NULL && c->cmd->firstkey == 0)) { !(c->flags & REDIS_MASTER) &&
!(c->cmd->getkeys_proc == NULL && c->cmd->firstkey == 0))
{
int hashslot; int hashslot;
if (server.cluster->state != REDIS_CLUSTER_OK) { if (server.cluster->state != REDIS_CLUSTER_OK) {
......
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