-
Notifications
You must be signed in to change notification settings - Fork 687
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
Increase rioConnsetWrite max chunk size to 16K #817
Increase rioConnsetWrite max chunk size to 16K #817
Conversation
this is in order to fix valkey-io#796 Signed-off-by: Ran Shidlansik <[email protected]>
Codecov ReportAll modified and coverable lines are covered by tests ✅
Additional details and impacted files@@ Coverage Diff @@
## unstable #817 +/- ##
============================================
+ Coverage 70.32% 70.37% +0.04%
============================================
Files 112 112
Lines 61269 61310 +41
============================================
+ Hits 43089 43144 +55
+ Misses 18180 18166 -14
|
Signed-off-by: Ran Shidlansik <[email protected]>
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.
You reference fdset, which is the old version before we added the connection abstraction. I think this change makes sense though.
Co-authored-by: Madelyn Olson <[email protected]> Signed-off-by: ranshid <[email protected]>
Co-authored-by: Madelyn Olson <[email protected]> Signed-off-by: ranshid <[email protected]>
Co-authored-by: Madelyn Olson <[email protected]> Signed-off-by: ranshid <[email protected]>
Signed-off-by: Binbin <[email protected]>
Fixes #796
Currently rioConnWite uses 1024 bytes chunk when feeding the replication sockets on RDB write. This value seems too small and we will end up with high syscall overhead.
This PR sets the max chunk size to 16K.
Using a simple test program we did not observe any significant improvement in read/write times going with chunks bigger than 4K but that might be la bottleneck on network throughput. We did observe sweet point of CPU utilization at 16K when using TLS.
Test
test-program.zip
Include client/server implementations for client sending 100MB data to a server. the tests are both in TLS and TCP.
I run the tests on separate m5.xlarge EC2 instances on AWS.
the executables were compiled and run on ubuntu:
All files were compiled with O3 optimization level.
Results:
<style> </style>