Work

ChainIO: Bridging Disk and Network Domains with eBPF

Year: 2025
Type: conference-paper
Abstract: Modern data-driven services from analytical databases and key-value stores to stream processors suffer high tail-latencies because each disk read and subsequent packet send/recv incurs a separate user-kernel crossing and redundant buffer copy. While Linux's io_uring now supports both block and socket I/O with asynchronous, batched submissions, it does not provide zero-copy transfers between storage and network domains; AF_XDP delivers high-performance packet I/O but is siloed to the network stack. No existing framework transparently unifies these mechanisms end-to-end. We present ChainIO, an eBPF-based system that intercepts and rewrites I/O syscalls, uses ring buffers to pass data descriptors directly between io_uring and AF_XDP, and orchestrates in-kernel execution to chain disk reads into network sends (and vice versa) with full POSIX semantics, fallback safety for unsupported cases, and zero application changes. Our prototype works with unmodified binaries and improves ClickHouse's TPC-H query throughput by up to 39%. ChainIO thus offers a general, safe, and high-performance path for cross-domain I/O optimization in diverse data-intensive workloads.
Authors: Zheng Cao, Xuhang He, Yanpeng Hu, Yusheng Zheng, Yiwei Yang, Jianchang Su, Wei Zhang, Andi Quinn
Language: English
Open Access status: gold
OpenAlex ID: W4413311608
FWCI:
Cites: 8
Cited by:
Related to: 10