paperbot · PL 论文追踪

全部论文 待读 收藏

P2 Hitchhike: Efficient Request Submission via Deferred Enforcement of Address Contiguity

Hitchhike:通过延迟地址连续性校验实现高效请求提交
ASPLOS Proceedings of the 31st ACM International Conference on Architectural Support for Programming Languages and Operating Systems, Volume 22026匹配度 1/10 · 该论文研究存储 I/O 提交路径与地址连续性校验的延迟执行,属于操作系统与体系结构方向,与用户关注的静态分析、LLM/Agent、浮点程序分析和贝叶斯程序分析均无直接关系。引用 0 inbox
Xuda Zheng, Jian Zhou, Shuhan Bai, Runjin Wu, Xianlin Tang, Zhiyuan Li, Hong Jiang, Fei Wu
crossref: 2026-09-12dblp: 2026-09-12

AI 速览

一句话:提出 Hitchhike,将地址连续性校验推迟到设备驱动,让单个请求封装多个非连续地址段,从而降低 I/O 栈开销。

现代存储系统高并发下产生大量未完成 I/O,但现有提交逻辑要求同一 CPU 核上的请求串行处理,严格的端到端地址连续性校验(文件偏移、扇区、LBA 等)使软件栈成为瓶颈。作者通过系统级分析发现,地址连续性在 NVMe 设备层确有必要,却无需在整个 I/O 栈中强制实施。Hitchhike 将连续性校验推迟到设备驱动,允许单个请求封装多个非连续地址范围,从而减少穿越栈的请求数并摊销内核每请求开销;它无需 kernel-bypass 或激进轮询,可在标准 OS 栈内实现。在图引擎、B-tree 存储和 FIO 上的实验表明,Hitchhike 能提升吞吐量、降低 CPU 开销,并保持与现有内核语义和硬件接口兼容。

问题
高并发存储场景中大量未完成 I/O 使 I/O 提交路径成为瓶颈,原因在于严格的端到端地址连续性校验要求同一 CPU 核上的请求串行处理。
方法
通过系统级分析定位地址连续性约束的过度执行,提出 Hitchhike,将校验推迟到设备驱动,让单个请求封装多个非连续地址段,在标准 OS 栈内摊销每请求开销。
评估
在图引擎、B-tree 存储和 FIO 上实验,测量吞吐量和 CPU 开销,并验证与现有内核语义及硬件接口的兼容性。
原文摘要(Abstract)

Modern storage systems operate under high concurrency, making large volumes of outstanding I/Os the norm. However, current I/O submission logic requires requests assigned to the same CPU core to be processed in a serialized manner, turning the software stack into a bottleneck due to high per-request overhead. We argue that the primary cause of this inefficiency lies in the end-to-end enforcement of the strict address contiguity validation -- the constraint that each I/O request must access a contiguous range of addresses (e.g., file offsets, sectors, and logical block addresses). Through system-level analysis, we find that while the address contiguity requirement is crucial at the device level as defined by the NVMe protocol, it is unnecessarily enforced throughout the entire I/O stack. Based on this insight, we propose Hitchhike, an efficient request submission logic that defers address contiguity validation to the device driver. Unlike solutions that resort to kernel-bypass or aggressive polling for performance, Hitchhike achieves high efficiency within the standard OS stack by allowing a single request to encapsulate multiple non-contiguous address ranges. This mechanism drastically reduces the number of individual requests traversing the stack, thereby amortizing the kernel's per-request overhead. We apply Hitchhike to a graph engine, a B-tree store, and FIO. Experimental results show that Hitchhike effectively improves throughput and reduces CPU overhead, while preserving compatibility with existing kernel semantics and hardware interfaces.

链接与引用

DOI 原文 · PDF(开放获取) · DBLP

BibTeX
@inproceedings{Zheng0BWTLJ026,
  title = {Hitchhike: Efficient Request Submission via Deferred Enforcement of Address Contiguity},
  author = {Xuda Zheng and Jian Zhou and Shuhan Bai and Runjin Wu and Xianlin Tang and Zhiyuan Li and Hong Jiang and Fei Wu},
  booktitle = {ASPLOS},
  year = {2026},
  doi = {10.1145/3779212.3790173}
}