summaryrefslogtreecommitdiff
path: root/src/tracking.c
diff options
context:
space:
mode:
authorHarkrishn Patro <30795839+hpatro@users.noreply.github.com>2022-01-03 01:54:47 +0100
committerGitHub <noreply@github.com>2022-01-02 16:54:47 -0800
commit9f8885760b53e6d3952b9c9b41f9e6c48dfa6cec (patch)
tree770dfdbff19a1a2a1c71a642ebd844d592ef3d26 /src/tracking.c
parentb8ba942ac2aabf51fd96134d9fa21b47d3baff4a (diff)
downloadredis-9f8885760b53e6d3952b9c9b41f9e6c48dfa6cec.tar.gz
Sharded pubsub implementation (#8621)
This commit implements a sharded pubsub implementation based off of shard channels. Co-authored-by: Harkrishn Patro <harkrisp@amazon.com> Co-authored-by: Madelyn Olson <madelyneolson@gmail.com>
Diffstat (limited to 'src/tracking.c')
-rw-r--r--src/tracking.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/tracking.c b/src/tracking.c
index 11e2587e2..bb36f742d 100644
--- a/src/tracking.c
+++ b/src/tracking.c
@@ -228,6 +228,12 @@ void trackingRememberKeys(client *c) {
getKeysFreeResult(&result);
return;
}
+ /* Shard channels are treated as special keys for client
+ * library to rely on `COMMAND` command to discover the node
+ * to connect to. These channels doesn't need to be tracked. */
+ if (c->cmd->flags & CMD_PUBSUB) {
+ return;
+ }
int *keys = result.keys;