Skip to content
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

[NEW] Enable using a connection while waiting for a blocking command #54

Open
nihohit opened this issue Mar 27, 2024 · 3 comments
Open
Labels
major-decision-pending Major decision pending by TSC team

Comments

@nihohit
Copy link

nihohit commented Mar 27, 2024

Blocking commands complicate multiplexing several logical connections over the same physical connection, and in general are a perf hassle. There are 2 existing suggestions for ways to overcome this issue -

redis/redis#12873
redis/redis#12716

either one could allow client writers to safely multiplex several client objects over the same physical connection, and help users get the most out of their machines.

@zuiderkwast
Copy link
Contributor

I like the opt-in for a possible +ASYNC reply to async commands, with the actual reply delivered later using Push. It solves the problem for clients. They can hide this handling from the end user. I have thought about this and I can't find any real problem with it. I would accept a PR.

Multiplexing. It solves more problems than just blocking commands. I don't like the suggested solution in that issue though. Instead we can support RESP over QUIC, with optional linking with a QUIC library, such as MsQuic. QUIC is unusual now, but it will be more common in the future.

@madolson madolson added the major-decision-pending Major decision pending by TSC team label Mar 27, 2024
@nihohit nihohit changed the title Enable using a connection while waiting for a blocking command [NEW] Enable using a connection while waiting for a blocking command Mar 28, 2024
@mattsta mattsta mentioned this issue Mar 28, 2024
10 tasks
@mzimbres
Copy link

Can't you avoid blocking commands by using some form of the client-side-caching or key-space notifications?

@nihohit
Copy link
Author

nihohit commented Mar 31, 2024

@mzimbres can you? for every blocking command?

@zuiderkwast zuiderkwast changed the title [NEW] Enable using a connection while waiting for a blocking command [NEW] Use a connection while waiting for a blocking command (async block) Apr 29, 2024
@zuiderkwast zuiderkwast changed the title [NEW] Use a connection while waiting for a blocking command (async block) [NEW] Enable using a connection while waiting for a blocking command Apr 29, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
major-decision-pending Major decision pending by TSC team
Projects
None yet
Development

No branches or pull requests

4 participants