-
Notifications
You must be signed in to change notification settings - Fork 663
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
RDMA builtin support #1209
base: unstable
Are you sure you want to change the base?
RDMA builtin support #1209
Conversation
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## unstable #1209 +/- ##
============================================
- Coverage 70.73% 70.71% -0.03%
============================================
Files 116 117 +1
Lines 63271 63341 +70
============================================
+ Hits 44757 44792 +35
- Misses 18514 18549 +35
|
35884e2
to
047c7ec
Compare
@valkey-io/core-team Please approve. This adds It is a step towards official (non-experimantal) RDMA support. I already merged the RDMA fork-safety here: #1244. It makes sure the server doesn't crash if we try to talk to an RDMA client from a forked child process. |
Hi @valkey-io/core-team |
I vote for dropping the module packaging. Modularity is what we need and we have it here for RDMA. |
I believe it's safe to drop the RDMA module because it's experimental, but I'm not sure about the TLS module. Maybe someone is using it? Maybe we should drop it in a major version (9.0?). The potential benefit of module is that you don't need OpenSSL installed to start Valkey, as long as you don't load the module. If we ship binary releases or containers with bundled modules, they can be used also by those who don't have or want TLS. Examples are embedded system, IoT devices, etc. We've already talked about packaging binaries with buldled modules like (bloom, json). |
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.
I didn't review fully. Just the interface changes.
Originally, special config 'bind' is used for socket and TLS, however multiple addresses handling is also workable for RDMA(QUIC in the future). Abstract bind option as helper functions to apply more connection types. rewriteConfigBindOption is a local function, declare it as 'static' function. Signed-off-by: zhenwei pi <pizhenwei@bytedance.com>
Socket family use close() syscall to close listener, however RDMA has another style. Use an abstract function handler instead of hard code syscall style. Signed-off-by: zhenwei pi <pizhenwei@bytedance.com>
047c7ec
to
b8378df
Compare
Move 4 parameters from valkey-rdma.so to valkey-server, keep RDMA listener similar to TCP/TLS. Also prepare to build Valkey Over RDMA into builtin. Signed-off-by: zhenwei pi <pizhenwei@bytedance.com>
Support RDMA builtin and module together. To build a builtin version: $ make BUILD_RDMA=yes Or build it by cmake: $ cmake .. -DBUILD_RDMA=yes Signed-off-by: zhenwei pi <pizhenwei@bytedance.com>
b8378df
to
3bdd658
Compare
Hi @zuiderkwast |
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.
Let's wait for a core team majority decision before merge since it's an interface change.
Next time, can you avoid force-push and instead just push more commits? It's easier to see what's changed since last review. We squash-merge in the end anyway, normally.
OK. |
@valkey-io/core-team This adds The module style configs |
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.
Not a full review, but LGTM.
Co-authored-by: Binbin <binloveplay1314@qq.com> Signed-off-by: zhenwei pi <pizhenwei@bytedance.com>
Apply suggestion from Binbin. Co-authored-by: Binbin <binloveplay1314@qq.com> Signed-off-by: zhenwei pi <pizhenwei@bytedance.com>
Apply suggestion from Binbin. Co-authored-by: Binbin <binloveplay1314@qq.com> Signed-off-by: zhenwei pi <pizhenwei@bytedance.com>
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.
Directionally I'm inclined, I mostly just had some questions about the configs and documentation.
Signed-off-by: zhenwei pi <pizhenwei@bytedance.com>
Signed-off-by: zhenwei pi <pizhenwei@bytedance.com>
Signed-off-by: zhenwei pi <pizhenwei@bytedance.com>
Signed-off-by: zhenwei pi <pizhenwei@bytedance.com>
Hi, @madolson @zuiderkwast |
valkey-server is performance sensitive on RDMA, add man page section for deeply performance tuning. [Link](valkey-io/valkey#1209) for valkey changes. --------- Signed-off-by: zhenwei pi <pizhenwei@bytedance.com>
@pizhenwei The DCO is failing because some commits are written by some email and signed off with another email. Please fix it. Feel free to squash all commits to one if you want. See DCO job Details: https://github.com/valkey-io/valkey/pull/1209/checks?check_run_id=33460190673 @PingXie @soloestoy @hwware Can we have one more ACK to merge this one? (RDMA is still experimental so it's unclear if it even needs to be a major decision, but it's marked as one now.) |
Hi,
There are several patches in this PR:
bind
option is a special config,socket
andtls
are using the same one. However RDMA uses the similar style but different one. Use a bit abstract work to make it flexible for bothsocket
andRDMA
. Even for QUIC in the future.--rdma-bind
and--rdma-port
style instead of module parameters. The module style configrdma.bind
andrdma.port
are removed.make BUILD_RDMA=yes
. module style is still kept for now. Once module style is decided to drop, I volunteer to do it for TLS and RDMA together.Each patch has independent functionality, also been tested by CI and local commands, so request no-squash merge for this PR.