PredictIO: Decoupling Workload Prediction from OS-Controlled Storage Prefetching
Jun Lu, Yancan Mao, Zhenya Ma, Sheng Yue, Yongjian Fu, Ju Ren
Abstract
Storage stalls remain a significant source of application latency even on fast storage devices. Prefetching can hide part of this latency by fetching data before it is demanded, but general-purpose operating-system mechanisms typically infer future accesses from recent file offsets. This approach is ineffective when accesses are determined by workload structure, such as recurring sparse accesses during application launch, logical traversal in database scans, or model-layout metadata in LLM runtimes. Existing workload-aware prefetchers usually embed prediction logic inside individual applications and couple execution to application-level I/O paths, making policies difficult to reuse across workloads and systems. We present PredictIO, a programmable interface that separates workload prediction from prefetch execution. PredictIO delivers kernel-observed accesses and application hints to user-space policies, which express predictions as uniform page-range requests. A kernel-space executor validates, bounds, and filters these requests against cached and in-flight pages before issuing asynchronous prefetch I/O. We implement PredictIO for application launch, SQLite range scans, and LLM model loading. Across these workloads, PredictIO reduces latency by 5.3-26.3%, achieves up to 2.99x speedup for SQLite scans, and reduces LLM loading latency by 8.8-47.9%. We further show that a common prediction policy can be reused across SQLite and LMDB through lightweight adapters, that an application-integrated RocksDB readahead policy can be migrated while preserving its workload selectivity, and that the execution backend determines how much benefit migration provides for different access patterns and storage devices.
Create a lesson
Related papers
Ember: Making Unified Virtual Memory Practical for Discrete-Memory GPUs
Senad-Leandro Lemes Galera, Michail Georgoulakis Misegiannis, Ferdinand Gruber et al.
Characterizing CPU-GPU Memory Sharing over Unified Memory Architecture
Jinrong Yang, Zimeng Wang, Rong Chen et al.
Mole: Tier-Specific Hotness Profiling Driven Memory Tiering for Multi-Tiered Memory Systems
Mingyang Liu, Congming Gao, Xufeng Yang et al.
Behind a Simple Read: Understanding Work and Waiting in the Linux I/O Stack
Yang Shen, Kai Lu, Min Xie et al.
No More Translation at Runtime: LLM-Empowered Static Binary Translation
Zhibo Liu, Huaijin Wang, Wai Kin Wong et al.
RetainZ: Reclaim-Time-Aware Placement for AI Checkpoints on Zoned SSDs
Minxing Chu, Ruoxi Yang