Building Stream-based Page Cache to Accelerate File Scanning on Fast Storage Devices
Buffered I/O via page cache is used for file scanning in many cases as page cache can provide buffering, data aggregation, I/O alignment, and prefetching transparently. However, our study indicates that employing page cache for file scanning on fast storage devices presents two performance issues: it offers limited I/O bandwidth that does not align with the performance of fast storage devices, and the intensive background writeback onto fast storage devices can significantly interfere with foreground I/O requests. In this paper, we propose StreamCache, a new page cache management system for file scanning on fast storage devices. StreamCache exploits three techniques to achieve high I/O performance. First, it uses a two-layer memory management method to accelerate page allocation by leveraging CPU cache locality. Second, it uses a stream-based page reclaiming method to lower the interference to foreground I/O requests. Third, it uses a lightweight stream tracking method to record the states of cached pages at the granularity of sequential streams to support stream-based page reclaiming. We implement StreamCache in XFS. Experimental results show that compared with existing methods, StreamCache can increase the I/O bandwidth of scientific applications by 44%, and reduce the checkpoint/restart time of large language models by 15.7% on average.
Authors
- Zhiyue Li (ORCID: https://orcid.org/0000-0003-3207-3493)
- Guangyan Zhang (ORCID: https://orcid.org/0000-0002-3480-5902)
Institutions
- Tsinghua University (CN)
Publication Details
- Journal
- ACM Transactions on Storage
- Published
- 2025-03-05
- DOI
- https://doi.org/10.1145/3721486
- Primary Topic
- Advanced Data Storage Technologies
- Type
- article
- Field-Weighted Citation Impact
- 0.00