-
Notifications
You must be signed in to change notification settings - Fork 94
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
feat(redis): Implement parallel cmd execution of Redis calls #4118
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Requesting changes because of the "join".
3dda741
to
22f294e
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
As discussed, we can merge this as an experiment, but we should keep a close eye on number of threads created vs OS thread limits wherever we deploy this. If spawning a thread for every call is not feasible, we'll have to move to a thread pool.
Joining on the secondaries should be fine as long as we assume them to be at least as fast as the primary.
* master: ref(server): Move project source into the source module (#4154) instr(buffer): Measure envelope size (#4153) ref(redis): Cleanup code around Redis (#4151) lint: Rust 1.82 (#4150) chore(server): Remove native placeholders from transaction processing (#4148) feat(eap): Extract user IP (#4144) Revert "ref(buffer): remove peek" (#4146) ref(buffer): remove peek (#4136) release: 24.10.0 build(deps): bump tonic from 0.12.2 to 0.12.3 (#4143) instr(projects): Log fetch failure (#4142) ref(otel): Disable default features for otel schema (#4141) ref(server): Organize project services in nested modules (#4139) ref(redis): Update to redis client version 0.27.4 (#4132) feat(redis): Implement parallel cmd execution of Redis calls (#4118) feat(spooler): Add metric to track serialization performance (#4135)
This PR implements the parallelization of Redis calls via scoped threads. The goal is to avoid blocking calls when dealing with the
MultiWrite
Redis client.Closes: #4100