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*
>

Reply via email to