RDMA Reads

SeaweedFS Enterprise can serve volume reads over one-sided RDMA for high-throughput, low-CPU access on RoCE or InfiniBand fabrics. The volume server exposes each volume’s data as a remote-readable memory region; a client reads directly out of it with an RDMA READ, so the server’s CPU never touches the transfer. Any read that isn’t RDMA-eligible — or any host without an RDMA device — falls back to HTTP/TCP automatically, so an RDMA build is always at least as capable as a plain one.

When to use it

  • Read-heavy, throughput-bound workloads — stream large objects with far less CPU on the storage node, since reads bypass the server’s request handling.
  • You already run an RDMA fabric — RoCE or InfiniBand in the cluster, where one-sided reads cut latency and CPU versus TCP.
  • You want zero-risk rollout — enabling RDMA never breaks reads: ineligible reads and non-RDMA hosts transparently use HTTP.
  • Evaluating on commodity hardware — SoftRoCE lets you validate the full path with no special NIC.

How to use it

  1. Install the RDMA build. RDMA ships as separate -rdma assets (weed-volume-enterprise-rdma, seaweedfs-vfs-rdma) that depend on rdma-core; non-RDMA hosts keep the standard assets.
  2. Enable the listener on the volume server with --rdma.enabled and an --rdma.ip on the RDMA netdev.
  3. Use an RDMA client — install the seaweedfs-vfs-rdma kernel-mount daemon (a drop-in for seaweedfs-vfs); it attempts RDMA per read with no extra configuration.

Benefits

  • Less CPU per read — one-sided RDMA reads skip the server’s per-read path.
  • Fail-safe — no device, RDMA disabled, or an ineligible read all fall back to HTTP; reads never break.
  • Consistent and safe — memory regions are revoked or refreshed when data moves (delete, compaction, EC rebuild, tiering), so a stale read can never return wrong or freed bytes; falls back to HTTP instead.
  • Opt-in and isolated — off by default, gated to a separate build, so standard deployments carry no RDMA dependency.

Want the install steps, config flags, fallback rules, and how to verify reads are flowing over RDMA? See the RDMA reads installation & operation reference.