Hold GCRA out of the release#15191
Conversation
|
GCRA was against redis' philosophy so I personally endorse the decision, even though all the work put into the previous two PRs. |
|
Should remove the related content about new keyspace notification( |
I think maybe only the docs in redis.conf. I dont want to remove any comments in the code in case we need to revert it and more KSN types were added as it may create conflics. |
Sure, IIUC we should hide all interfaces that are potentially exposed to users. |
|
Not sure about 2. @YaacovHazan any comment ? |
@minchopaskal yes, let's remove/hide... theoretically we might want to use |
085a594 to
2ee60a4
Compare
Just removed it and used |
Should we set ARRAY to 7? If GCRA is never enabled, 7 might not be used at all. |
makes sense. |
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes and found 1 potential issue.
Reviewed by Cursor Bugbot for commit 1bbc939. Configure here.
Because this file was generated using the old array rdb type(29), but now we change it to 29, so we need to update the rdb type in this rdb file
|
https://github.com/redis/redis/actions/runs/25861499349/job/75992299062?pr=15191 is a known issue, we can ignore it. |

After introducing GCRA algorithm into redis #14826 and subsequent introduction of new RATE_LIMIT object type - #14905. It was internally decided not to introduce GCRA into the new release.
As still no decision is made on whether it will be kept or not in the future, this PR only makes the code related to GCRA dead - commands are inaccessible and AOF/RDB load+save is disabled.
Note
Medium Risk
Changes persistence/type IDs and command metadata to compile out GCRA by default, which can break loading/AOF rewrite for existing datasets that contain GCRA keys unless Redis is rebuilt with
-DENABLE_GCRA. The scope touches core object-type plumbing (RDB/AOF, notifications, module API constants), increasing regression risk around type numbering and compatibility.Overview
Disables the GCRA rate-limiting feature by default by wrapping its object type, commands/command docs, ACL category/group, keyspace notification flag (
r), and related code paths in#ifdef ENABLE_GCRA.Persistence and type plumbing are adjusted accordingly: GCRA is removed from default command tables, AOF rewrite, RDB save/load/type IDs, object duplication/free/defrag/digest, module key-type mapping, and several constants/enums are renumbered/conditioned to keep builds consistent when GCRA is omitted. Tests and fuzz traffic generation referencing
GCRAare effectively disabled, and config/redis.conf messaging is updated to only mention thernotification class when GCRA is enabled.Reviewed by Cursor Bugbot for commit 1b24e9b. Bugbot is set up for automated code reviews on this repo. Configure here.