-
Notifications
You must be signed in to change notification settings - Fork 468
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Hoist key mutexes from every command impls to Connection::ExecuteCommand #2563
Comments
I am trying to move the operation of the lock key to If What I want to confirm is whether the keys obtained in this way do indeed correspond to those that need to be locked, and if there are any redundancies or omissions? Furthermore, after some attempts, I found that the locking for certain methods depends on the method's parameters. Since the locks are now uniformly applied within
This has raised a few questions that need to be considered:
|
For MSet, it's quite easy, the For RangeByRank, you can see that for commands like ZREMRANGEBYRANK, For some more complicated commands which is an "optionally-write" command, e.g. it can be "write" in some cases (when some arguments are provided by users), we should model it via a runtime flag generator mechanism here. |
Search before asking
Motivation
We can remove all key-level mutex locking operations in command implementation and handle them uniformly in
Connection::ExecuteCommand
.In this way, we can handle transaction support of scripts, index, etc. more easily.
Solution
No response
Are you willing to submit a PR?
The text was updated successfully, but these errors were encountered: