ChainIO: Bridging Disk and Network Domains with eBPF
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
- Jianchang Su (ORCID: https://orcid.org/0000-0002-4089-8316)
- Andrew Quinn (ORCID: https://orcid.org/0000-0002-0785-4119)
- Wei Zhang (ORCID: https://orcid.org/0000-0001-6382-3184)
- Yanpeng Hu (ORCID: https://orcid.org/0000-0002-1003-6475)
- Yiwei Yang (ORCID: https://orcid.org/0000-0001-8011-5868)
- Zheng Cao (ORCID: https://orcid.org/0000-0002-8664-934X)
- Yusheng Zheng
- Xiao Long He
Institutions
- University of California, Merced (US)
- University of California, Santa Cruz (US)
- ShanghaiTech University (CN)
Publication Details
- Published
- 2025-08-19
- DOI
- https://doi.org/10.1145/3748355.3748371
- Primary Topic
- Advanced Data Storage Technologies
- Type
- article
- Field-Weighted Citation Impact
- 0.00