I'm testing Redis Cluster Mode and everything works fine until I create a sink. When I attempt to create the sink, I encounter an error related to crossed slots in the pipeline. Here's the error message I'm seeing:
2024-04-19T05:55:21.124908545Z ERROR risingwave_stream::task::stream_manager: actor exit with error actor_id=72 error=Executor error: Sink error: Redis error: Received crossed slots in pipeline- CrossSlot
Additionally, I'm observing that out of 10 order_status
values (ranging from 0 to 9), the sink only shows 2-3 order statuses, with the rest returning nil. Below is the sink creation statement I'm using:
CREATE SINK redis_sink_traders_count FROM trader WITH (primary_key = 'order_status', connector = 'redis', redis.url = '["<redis://endpoint:6379>","<redis://endpoint:6379>","<redis://endpoint:6379>","<redis://endpoint:6379>"]') FORMAT UPSERT ENCODE TEMPLATE (force_append_only = 'false', key_format = 'order_count_{order_status}', value_format = '{count}');
I'm using AWS Elasticache Cluster with different endpoints but the same port (6379).
Sumit Singh
Asked on Apr 19, 2024
It appears that the issue you're encountering is a known bug related to the Redis sink in RisingWave. The error message indicates that there are crossed slots in the pipeline, which is not allowed in Redis Cluster Mode. The team is aware of this issue and is addressing it through a pull request on GitHub. You can track the progress and eventual resolution of this bug by following the provided link to the pull request: https://github.com/risingwavelabs/risingwave/pull/16405.