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*

Reply via email to