Skip to content

[native] Transfer idle HTTPSession between IO threads in exchange source#22922

Merged
xiaoxmeng merged 1 commit intoprestodb:masterfrom
Yuhta:export-D57842433
Jun 5, 2024
Merged

[native] Transfer idle HTTPSession between IO threads in exchange source#22922
xiaoxmeng merged 1 commit intoprestodb:masterfrom
Yuhta:export-D57842433

Conversation

@Yuhta
Copy link
Contributor

@Yuhta Yuhta commented Jun 4, 2024

Currently each endpoint (server) has only one SessionPool, which can only be attached to one EventBase. If there is some skewness among the distribution (i.e. too many endpoints being attached to one event base), that event base would become bottleneck and cause regression in query wall time.

Fix this by creating one SessionPool for each endpoint and event base pair. Allow transfer of idle session between different event bases by using ServerIdleSessionController. This way we eliminate the bottleneck in event base while still keep the HttpSessions reusable.

After the fix, enabling connection pool should no longer cause any regression to wall time. The SSL handshake cost (EVP_DigestSignFinal) is not visible in shuffle heavy queries when connection pool is enabled.

Reviewed By: xiaoxmeng, arhimondr

Differential Revision: D57842433

… source (prestodb#22903)

Summary:

Currently each endpoint (server) has only one `SessionPool`, which can only be attached to one `EventBase`.  If there is some skewness among the distribution (i.e. too many endpoints being attached to one event base), that event base would become bottleneck and cause regression in query wall time.

Fix this by creating one `SessionPool` for each endpoint and event base pair.  Allow transfer of idle session between different event bases by using `ServerIdleSessionController`.  This way we eliminate the bottleneck in event base while still keep the `HttpSession`s reusable.

After the fix, enabling connection pool should no longer cause any regression to wall time.  The SSL handshake cost (`EVP_DigestSignFinal`) is not visible in shuffle heavy queries when connection pool is enabled.

Reviewed By: xiaoxmeng, arhimondr

Differential Revision: D57842433
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants