Open uriyage opened 4 days ago
Attention: Patch coverage is 7.14286%
with 26 lines
in your changes missing coverage. Please review.
Project coverage is 70.74%. Comparing base (
3d0c834
) to head (dc5aa76
). Report is 14 commits behind head on unstable.
Files with missing lines | Patch % | Lines |
---|---|---|
src/io_threads.c | 0.00% | 25 Missing :warning: |
src/networking.c | 50.00% | 1 Missing :warning: |
🚨 Try these New Features:
This implementation basically breaks the connection abstraction, since it has the TLS implementation calling functions related to IO threading (which is supposed to be agnostic to the connection type). I was sort of expecting we would offload the event handler.
We still don't check in any point for the connection type, since the TLS code calls the IO threads to offload the negotiation with a supplied callback, not the other way around. Maybe we can rename it to 'accept' instead of 'tls_negotiate' to be more abstract.
I was sort of expecting we would offload the event handler.
Not sure I get this, would you please elaborate.
TLS Negotiation Offloading to I/O Threads
Overview
This PR introduces the ability to offload TLS handshake negotiations to I/O threads, significantly improving performance under high TLS connection loads.
Key Changes
Performance Impact
Testing with 650 clients with SET commands and 160 new TLS connections per second in the background:
Throughput Impact of new TLS connections
New Connection Rate
Implementation Details
Main Thread:
I/O Thread:
Related issue:https://github.com/valkey-io/valkey/issues/761