一句话:提出跨 OS 与用户级运行时的 I/O 预取机制,通过职责划分与细粒度索引提升吞吐并降低缓存缺失和锁竞争。
现有 OS 预取接口僵化,不向应用反馈预取有效性,且存在高并发瓶颈与系统内存利用低效问题。CrossPrefetch 是一种跨 OS 与用户级运行时的 I/O 预取机制:它在 OS 与运行时之间划分职责,向用户级运行时导出缓存状态与预取有效性;区分常规 I/O 与预取路径,并为共享文件引入细粒度预取索引;结合低干扰访问模式预测与自适应、激进的预取策略以利用内存容量和存储带宽。在微基准、宏基准和真实工作负载上,I/O 吞吐提升达 1.22x-3.7x,并在多种文件系统及本地/远程存储配置中验证。
We introduce CrossPrefetch, a novel cross-layered I/O prefetching mechanism that operates across the OS and a user-level runtime to achieve optimal performance. Existing OS prefetching mechanisms suffer from rigid interfaces that do not provide information to applications on the prefetch effectiveness, suffer from high concurrency bottlenecks, and are inefficient in utilizing available system memory. CrossPrefetch addresses these limitations by dividing responsibilities between the OS and runtime, minimizing overhead, and achieving low cache misses, lock contentions, and higher I/O performance. CrossPrefetch tackles the limitations of rigid OS prefetching interfaces by maintaining and exporting cache state and prefetch effectiveness to user-level runtimes. It also addresses scalability and concurrency bottlenecks by distinguishing between regular I/O and prefetch operations paths and introduces fine-grained prefetch indexing for shared files. Finally, CrossPrefetch designs low-interference access pattern prediction combined with support for adaptive and aggressive techniques to exploit memory capacity and storage bandwidth. Our evaluation of CrossPrefetch, encompassing microbenchmarks, macrobenchmarks, and real-world workloads, illustrates performance gains of up to 1.22x-3.7x in I/O throughput. We also evaluate CrossPrefetch across different file systems and local and remote storage configurations.
@inproceedings{GargZPPXK24,
title = {CrossPrefetch: Accelerating I/O Prefetching for Modern Storage},
author = {Shaleen Garg and Jian Zhang and Rekha Pitchumani and Manish Parashar and Bing Xie and Sudarsun Kannan},
booktitle = {ASPLOS},
year = {2024},
doi = {10.1145/3617232.3624872}
}