Hi Quan, I think a quick workaround is to use EVALSHA_RO in replica mode, which is a read-only command. We will investigate it soon : )
Best, Twice On Mon, Mar 31, 2025, 1:22 PM hulk <[email protected]> wrote: > Hi Quan, > > > While Redis replicas allow executing read-only Lua scripts, Kvrocks > replicas appear to be stricter, rejecting the command with the ReadOnly > error. > > Apache Kvrocks did not allow to run EVALSHA in replica node. I will create > an issue to track this issue and hope it can be supported ASAP. > > On Mon, 31 Mar 2025 at 11:58, Hong Quan TRAN <[email protected]> wrote: > > > Hi Apache Kvrocks community, > > > > > > We've been working on integrating Apache Kvrocks with Apache James and > > Rspamd, documenting our Docker Compose setup in this PR. While setting up > > Kvrocks in Sentinel mode, we noticed a lack of documentation and would be > > happy to contribute to improving it. > > > > > > During our Kvrocks Sentinel + Rspamd setup, we observed a difference in > > how the EVALSHA command is handled compared to Redis. Rspamd uses EVALSHA > > to execute a read-only Lua script for retrieving BAYES statistics. While > > Redis replicas allow executing read-only Lua scripts, Kvrocks replicas > > appear to be stricter, rejecting the command with the ReadOnly error. As > a > > workaround, we have configured slave-read-only no to enable Rspamd to > read > > BAYES statistics from Kvrocks replicas while relying on Sentinel to > > correctly detect master and replica endpoints. > > > > > > We would appreciate any feedback on our setup and approach. > > > > > > Best regards, > > > > > > Quan > > > > > > On Mar 3, 2025 3:12 PM, from Benoit Tellier <[email protected]>Hello > > folks, > > > > I'm involved on the Apache James email server, and as part of Apache > James > > we currently have a Redis integration. > > > > Redis is used for: > > > > - 1. Implementing rate limiting in a distributed fashion by using leaky > > bucket algorithm > > - 2. Implementing sid storage as part of our OpenID connect backchannel > > logout (integrated in Apache APISIX - java plugin runner) > > - 3. Use redis streams for backing apache James pub sub (~email > > notifications) > > - 4. Store bayes database for our RSPAMD setup > > > > Our setup needs to be using sentinel (some use case like 4. relies on > > commands not supplied from Redis cluster) > > > > Our biggest pain is that, as we use a per user database for bayes the > > database grows significantly and storing this DB in memory is not > > financially viable. > > > > In order to solve our concerns with 4. (and as we are not performance > > bound for Redis components) we are considering switching our use cases to > > KVrocks, and potentially makes KVrocks the default key value store / > cache > > for Apache James. > > > > I (in the name of the Apache James PMC and LINAGORA contributors) would > > happily report on how this integrations goes on. > > > > -- > > > > Best regards, > > > > Benoit TELLIER > > > > General manager of Linagora VIETNAM . > > Product owner for Team-Mail product. > > Chairman of the Apache James project . > > > > Mail: [email protected] > > Tel: (0033) 6 77 26 04 58 (WhatsApp, Signal) > > > > > > > > -- > Best Regards, > - *Hulk Lin* >
