-
Notifications
You must be signed in to change notification settings - Fork 55
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
Explore acquisition scheduler offloading #217
Comments
[resolves #217] Signed-off-by: Mark Paluch <mark.paluch@broadcom.com>
Thanks! Linking the original issue reactor/reactor-pool#247. I'll test this change and follow-up. It would be neat to offer a generic reactor-pool mechanism but this approach is still great if all the r2dbc drivers can take advantage of it as demonstrated in the postgresql case. |
I can confirm this change brings a scalability boost where all event loops are used evenly for the processing that follows an acquisition (either a new connection or re-use from the pool). And it also feels more aligned with the SPI of r2dbc (compared to an implicit contract in reactor-pool). |
@mp911de When i change the r2dbc-pool version 1.0.1.RELEASE to 1.0.2.RELEASE, i got an error like below.
|
@mp911de My guess is that there is a bug in 1.0.2.RELEASE. |
Hi @mp911de,
Downgrading to 1.0.1.RELEASE solved this for now. |
This is indeed a regression that becomes visible with implementations that do not return a scheduler (or when using an older R2DBC Postgres driver version). I fixed it with #220. Care to test against |
Reactor Pool uses a single-threaded acquisition method to dispatch pool allocation requests as the consequence of its non-blocking synchronization means. This can cause congestion on a single thread and negatively impact scalability.
We should explore whether we could obtain a
Scheduler
from aConnection
in case it isWrapped
.The text was updated successfully, but these errors were encountered: