Skip to content
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

Introduce Valkey Over RDMA protocol #123

Merged
merged 1 commit into from
Oct 20, 2024
Merged

Commits on Aug 27, 2024

  1. Introduce Valkey Over RDMA protocol

    RDMA is the abbreviation of remote direct memory access. It is a
    technology that enables computers in a network to exchange data in
    the main memory without involving the processor, cache, or operating
    system of either computer. This means RDMA has a better performance
    than TCP, the test results show Valkey Over RDMA has a ~2.5X QPS and
    lower latency.
    
    In recent years, RDMA gets popular in the data center, especially
    RoCE(RDMA over Converged Ethernet) architecture has been widely used.
    Cloud Vendors also start to support RDMA instance in order to accelerate
    networking performance. End-user would enjoy the improvement easily.
    
    Introduce Valkey Over RDMA protocol as a new transport for Valkey. For
    now, we defined 4 commands:
    - GetServerFeature & SetClientFeature: the two commands are used to
      negotiate features for further extension. There is no feature
      definition in this version. Flow control and multi-buffer may be
      supported in the future, this needs feature negotiation.
    - Keepalive
    - RegisterXferMemory: the heart to transfer the real payload.
    
    The 'TX buffer' and 'RX buffer' are designed by RDMA remote memory
    with RDMA write/write with imm, it's similar to several mechanisms
    introduced by papers(but not same):
    - Socksdirect: datacenter sockets can be fast and compatible
      <https://dl.acm.org/doi/10.1145/3341302.3342071>
    - LITE Kernel RDMA Support for Datacenter Applications
      <https://dl.acm.org/doi/abs/10.1145/3132747.3132762>
    - FaRM: Fast Remote Memory
      <https://www.usenix.org/system/files/conference/nsdi14/nsdi14-paper-dragojevic.pdf>
    
    Thanks to Daniel House for review suggestions!
    
    Link: valkey-io/valkey#477
    Co-authored-by: Xinhao Kong <xinhao.kong@duke.edu>
    Co-authored-by: Huaping Zhou <zhouhuaping.san@bytedance.com>
    Co-authored-by: zhuo jiang <jiangzhuo.cs@bytedance.com>
    Co-authored-by: Yiming Zhang <zhangyiming1201@bytedance.com>
    Co-authored-by: Jianxi Ye <jianxi.ye@bytedance.com>
    Signed-off-by: zhenwei pi <pizhenwei@bytedance.com>
    6 people committed Aug 27, 2024
    Configuration menu
    Copy the full SHA
    80ffa01 View commit details
    Browse the repository at this point in the history