-
Notifications
You must be signed in to change notification settings - Fork 24.5k
Open
Milestone
Description
@antirez there are a few things that came up and we'd like to run by you.
Maybe we'll open separate PRs or issues for them once you give some initial feedback.
There are no module APIs for RESP3, e.g. addReplyArrayLen vs addReplyMapLenThere seem to be nowhere that documents the meaning of each ACL category (in the code), this means that we might one day interpret@adminas having one purpose, and the next day as something else. for instance, does@readmeans anything that's not@writewhat about commands that don't read from the keyspace, should they have@reador not?i'm not sure that TIME, LASTSAVE, ECHO, ROLE, should have the read-only flag (they don't access the keyspace)I think you should go over the module APIs that are marked as experimental, and move many of them outside of that block (no longer experimental).srandmemberWithCountCommand sometimes calls the old dictGetRandomKey (not the fair one), is that on purpose, or was overlooked?- when config.c enables AOF, it immediately starts an AOFRW. maybe we want to have a similar thing when the
saveconfig is changed? i.e when it changes from nothing to something, trigger a bgsave implicitly? don't GEORADIUS and GEORADIUSBYMEMBER need use-memory flag? (like SORT does)recently in DISCARD should not fail during OOM #6401 we fixed a bug with WATCH and -OOM, i now realize that the same bug will happen with other errors that return from processCommand, such as -MISCONFWe noticed that expire.c calls trackingInvalidateKey, why doesn't evict.c do the same? also don't both of these need to call signalModifiedKey? (to invalidate watch too)- An idea came up to consider changing addReplyDouble (or add addReplyLongDouble) to use "%La" format, so that it doesn't lose precision (like we did for RM_SaveLongDouble).
In the past we discussed a module API named RM_KeyExist, if we want to add one, should it be based on lookupKey (which does implicit expiry attempt) or dbExists (which doesn't, in which case a follow up attempt to open the key may fail)I think we may want to add module hooks for fork. i.e. likeatfork, one before the fork in the parent process, and two after the fork in each process. i suppose that these should be called with the GIL unlocked, so that modules with threads doing jobs can drain their job queue before the split happens.similarly I think we may want a module hook before redis iterates on the keyspace (e.g. foreground save, debug digest, etc), so that modules with threads can drain their job queue.
If you can please provide a short response for each telling me how you'd like to proceed with it, fixing yourself, rejecting the topic, or asking that we'll open a PR or a separate issue.
Thanks.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels