-
Notifications
You must be signed in to change notification settings - Fork 591
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(streaming): follow server.connection_pool_size
config for exchange service
#17755
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.
LGTM. The reason we introduced a connection pool previously is that a single connection became a bottleneck for batch queries between frontend nodes and compute nodes. If the bottleneck appears in the streaming exchange channel, using a connection pool seems promising to resolve deadlocks.
c6d5b12
to
0b0cb85
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.
Generally LGTM. But I think an improvement would be to use a separate configuration for batch and streaming connection pools.
Currently both use the same connection_pool_size
config, so batch and stream are not isolated for each other's configuration change for this var.
By default our connection pool size for stream is 1. Not sure if the same default can apply to batch.
Agree. Since
After this PR, it will be 16, but I don't think it's harmful. |
a8c91ed
to
0b0cb85
Compare
This stack of pull requests is managed by Graphite. Learn more about stacking. Join @BugenZhao and the rest of your teammates on Graphite |
…ange service Signed-off-by: Bugen Zhao <[email protected]>
Signed-off-by: Bugen Zhao <[email protected]>
Signed-off-by: Bugen Zhao <[email protected]>
0b0cb85
to
eca1565
Compare
…ange service (#17755) Signed-off-by: Bugen Zhao <[email protected]>
…ange service (#17755) (#17798) Signed-off-by: Bugen Zhao <[email protected]> Co-authored-by: Bugen Zhao <[email protected]>
…ange service (#17755) Signed-off-by: Bugen Zhao <[email protected]>
I hereby agree to the terms of the RisingWave Labs, Inc. Contributor License Agreement.
What's changed and what's your intention?
A
connection_pool_size
can be specified to establish multiple connections to the same server. We didn't pass this configuration field to the client pool used by streaming exchange, which is the issue to address in this PR.This can help to mitigate potential streaming stuck due to the deadlock caused by HTTP/2 streaming vs connection-level flow control.
Remove
Default
impl to make specifying theconnection_pool_size
explicit to caller. Useadhoc()
ornew(1)
if the caller doesn't care about the pool size.Checklist
./risedev check
(or alias,./risedev c
)Documentation
Release note
If this PR includes changes that directly affect users or other significant modifications relevant to the community, kindly draft a release note to provide a concise summary of these changes. Please prioritize highlighting the impact these changes will have on users.