[go: up one dir, main page]
More Web Proxy on the site http://driver.im/ skip to main content
10.1145/3617232.3624872acmconferencesArticle/Chapter ViewAbstractPublication PagesasplosConference Proceedingsconference-collections
research-article
Open access

CrossPrefetch: Accelerating I/O Prefetching for Modern Storage

Published: 17 April 2024 Publication History

Abstract

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.

References

[1]
Facebook RocksDB. http://rocksdb.org/.
[2]
FreeBSD. https://www.freebsd.org/ports/references/.
[3]
Google LevelDB . http://tinyurl.com/osqd7c8.
[4]
A machine learning framework to improve storage system performance.
[5]
Abutalib Aghayev, Sage Weil, Michael Kuchnik, Mark Nelson, Gregory R. Ganger, and George Amvrosiadis. File systems unfit as distributed storage backends: Lessons from 10 years of ceph evolution. In Proceedings of the 27th ACM Symposium on Operating Systems Principles, SOSP '19, page 353--369, New York, NY, USA, 2019. Association for Computing Machinery.
[6]
Hasan Al Maruf and Mosharaf Chowdhury. Effectively prefetching remote memory with leap. In Proceedings of the 2020 USENIX Conference on Usenix Annual Technical Conference, USENIX ATC'20, USA, 2020. USENIX Association.
[7]
Benjamin Cassell, Tyler Szepesi, Jim Summers, Tim Brecht, Derek Eager, and Bernard Wong. Disk prefetching mechanisms for increasing http streaming video server throughput. ACM Trans. Model. Perform. Eval. Comput. Syst., 3(2), mar 2018.
[8]
Chandranil Chakraborttii and Heiner Litz. Learning i/o access patterns to improve prefetching in ssds. In Joint European Conference on Machine Learning and Knowledge Discovery in Databases, pages 427--443. Springer, 2020.
[9]
Brian F Cooper, Adam Silberstein, Erwin Tam, Raghu Ramakrishnan, and Russell Sears. Benchmarking cloud serving systems with ycsb. In Proceedings of the 1st ACM symposium on Cloud computing, pages 143--154, 2010.
[10]
Jeff Dean, Sanjay Ghemawat, and Steinar H. Gunderson. Snappy Compession. https://github.com/google/snappy.
[11]
Wei Ding, Yuanrui Zhang, Mahmut Kandemir, and Seung Woo Son. Compiler-directed file layout optimization for hierarchical storage systems. In Proceedings of the International Conference on High Performance Computing, Networking, Storage and Analysis, SC '12, Washington, DC, USA, 2012. IEEE Computer Society Press.
[12]
Bo Dong, Xiao Zhong, Qinghua Zheng, Lirong Jian, Jian Liu, Jie Qiu, and Ying Li. Correlation based file prefetching approach for hadoop. In 2010 IEEE Second International Conference on Cloud Computing Technology and Science, pages 41--48, 2010.
[13]
Siying Dong, Andrew Kryczka, Yanqin Jin, and Michael Stumm. Rocksdb: Evolution of development priorities in a key-value store serving large-scale applications. ACM Trans. Storage, 17(4), oct 2021.
[14]
Nikoli Dryden, Roman Böhringer, Tal Ben-Nun, and Torsten Hoefler. Clairvoyant prefetching for distributed machine learning i/o. In Proceedings of the International Conference for High Performance Computing, Networking, Storage and Analysis, pages 1--15, 2021.
[15]
Brandon Haynes, Maureen Daum, Dong He, Amrita Mazumdar, Magdalena Balazinska, Alvin Cheung, and Luis Ceze. Vss: A storage system for video analytics. In Proceedings of the 2021 International Conference on Management of Data, SIGMOD '21, page 685--696, New York, NY, USA, 2021. Association for Computing Machinery.
[16]
Jun He, Sudarsun Kannan, Andrea C. Arpaci-Dusseau, and Remzi H. Arpaci-Dusseau. The Unwritten Contract of Solid State Drives. In Proceedings of the Twelfth European Conference on Computer Systems, EuroSys '17, pages 127--144, New York, NY, USA, 2017. ACM.
[17]
https://docs.kernel.org/coreapi/xarray.html. Xarray documentation.
[18]
https://man7.org/linux/man_pages/man1/fincore.1.html. man page fincore.
[19]
https://man7.org/linux/man_pages/man2/readahead.2.html. man page readahead.
[20]
Song Jiang, Xiaoning Ding, Yuehai Xu, and Kei Davis. A prefetching scheme exploiting both data layout and access history on disk. ACM Trans. Storage, 9(3), aug 2013.
[21]
Theodore Johnson and Dennis Shasha. 2q: A low overhead high performance buffer management replacement algorithm. In Proceedings of the 20th International Conference on Very Large Data Bases, VLDB '94, page 439--450, San Francisco, CA, USA, 1994. Morgan Kaufmann Publishers Inc.
[22]
Yongsoo Joo, Dongjoo Seo, Dongyun Shin, and Sung-Soo Lim. Enlarging i/o size for faster loading of mobile applications. IEEE Embedded Systems Letters, 12(2):50--53, 2020.
[23]
Rohan Kadekodi, Se Kwon Lee, Sanidhya Kashyap, Taesoo Kim, Aasheesh Kolli, and Vijay Chidambaram. SplitFS: Reducing Software Overhead in File Systems for Persistent Memory. SOSP '19: Symposium on Operating Systems Principles, New York, NY, USA, 2019. ACM.
[24]
Sudarsun Kannan, Andrea C. Arpaci-Dusseau, Remzi H. Arpaci-Dusseau, Yuangang Wang, Jun Xu, and Gopinath Palani. Designing a true direct-access file system with devfs. In Proceedings of the 16th USENIX Conference on File and Storage Technologies, FAST'18, page 241--255, USA, 2018. USENIX Association.
[25]
Sudarsun Kannan, Nitish Bhat, Ada Gavrilovska, Andrea Arpaci-Dusseau, and Remzi Arpaci-Dusseau. Redesigning LSMs for Nonvolatile Memory with NoveLSM. In 2018 USENIX Annual Technical Conference (USENIX ATC 18), pages 993--1005, Boston, MA, July 2018. USENIX Association.
[26]
Youngjin Kwon, Henrique Fingler, Tyler Hunt, Simon Peter, Emmett Witchel, and Thomas Anderson. Strata: A Cross Media File System. In Proceedings of the 26th Symposium on Operating Systems Principles, SOSP '17, 2017.
[27]
Arezki Laga, Jalil Boukhobza, Michel Koskas, and Frank Singhoff. Lynx: a learning linux prefetching mechanism for ssd performance model. In 2016 5th Non-Volatile Memory Systems and Applications Symposium (NVMSA), pages 1--6, 2016.
[28]
Avinash Lakshman and Prashant Malik. Cassandra: A decentralized structured storage system. SIGOPS Oper. Syst. Rev., 44(2):35--40, apr 2010.
[29]
Changman Lee, Dongho Sim, Joo-Young Hwang, and Sangyeun Cho. F2FS: A New File System for Flash Storage. In Proceedings of the 13th USENIX Conference on File and Storage Technologies, FAST'15, Santa Clara, CA, 2015.
[30]
Baptiste Lepers, Oana Balmau, Karan Gupta, and Willy Zwaenepoel. KVell: The Design and Implementation of a Fast Persistent Key-Value Store. In Proceedings of the 27th ACM Symposium on Operating Systems Principles, SOSP '19, page 447--461, New York, NY, USA, 2019. Association for Computing Machinery.
[31]
Jing Liu, Andrea C. Arpaci-Dusseau, Remz H. Arpaci-Dusseau, and Sudarsun Kannan. File systems as processes. In Proceedings of the 11th USENIX Conference on Hot Topics in Storage and File Systems, HotStorage'19, page 14, USA, 2019. USENIX Association.
[32]
Jing Liu, Anthony Rebello, Yifan Dai, Chenhao Ye, Sudarsun Kannan, Andrea C. Arpaci-Dusseau, and Remzi H. Arpaci-Dusseau. Scale and Performance in a Filesystem Semi-Microkernel. In Proceedings of the ACM SIGOPS 28th Symposium on Operating Systems Principles, SOSP '21, page 819--835, New York, NY, USA, 2021. Association for Computing Machinery.
[33]
Jing Liu, Anthony Rebello, Yifan Dai, Chenhao Ye, Sudarsun Kannan, Andrea C. Arpaci-Dusseau, and Remzi H. Arpaci-Dusseau. Scale and performance in a filesystem semi-microkernel. In Proceedings of the ACM SIGOPS 28th Symposium on Operating Systems Principles, SOSP '21, page 819--835, New York, NY, USA, 2021. Association for Computing Machinery.
[34]
Anastasios Papagiannis, Manolis Marazakis, and Angelos Bilas. Memory-mapped i/o on steroids. In Proceedings of the Sixteenth European Conference on Computer Systems, EuroSys '21, page 277--293, New York, NY, USA, 2021. Association for Computing Machinery.
[35]
Anastasios Papagiannis, Giorgos Xanthakis, Giorgos Saloustros, Manolis Marazakis, and Angelos Bilas. Optimizing memory-mapped I/O for fast storage devices. In 2020 USENIX Annual Technical Conference (USENIX ATC 20), pages 813--827. USENIX Association, July 2020.
[36]
Pradeep Subedi, Philip Davis, Shaohua Duan, Scott Klasky, Hemanth Kolla, and Manish Parashar. Stacker: An autonomic data movement engine for extreme-scale data staging-based in-situ workflows. In SC18: International Conference for High Performance Computing, Networking, Storage and Analysis, pages 920--930, 2018.
[37]
Jian Xu and Steven Swanson. NOVA: A Log-structured File System for Hybrid Volatile/Non-volatile Main Memories. In Proceedings of the 14th Usenix Conference on File and Storage Technologies, FAST'16, 2016.
[38]
Ji Zhang, Xunfei Jiang, Xiao Qin, Wei-Shinn Ku, and Mohammed I. Alghamdi. Frog: A framework for context-based file systems. ACM Trans. Storage, 11(3), jul 2015.

Cited By

View all
  • (2024)Context-aware Prefetching for Near-Storage AcceleratorsProceedings of the 16th ACM Workshop on Hot Topics in Storage and File Systems10.1145/3655038.3665956(131-136)Online publication date: 8-Jul-2024

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image ACM Conferences
ASPLOS '24: Proceedings of the 29th ACM International Conference on Architectural Support for Programming Languages and Operating Systems, Volume 1
April 2024
494 pages
ISBN:9798400703720
DOI:10.1145/3617232
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than the author(s) must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected].

Sponsors

In-Cooperation

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 17 April 2024

Check for updates

Badges

Qualifiers

  • Research-article

Funding Sources

Conference

ASPLOS '24

Acceptance Rates

Overall Acceptance Rate 535 of 2,713 submissions, 20%

Upcoming Conference

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)1,737
  • Downloads (Last 6 weeks)267
Reflects downloads up to 13 Dec 2024

Other Metrics

Citations

Cited By

View all
  • (2024)Context-aware Prefetching for Near-Storage AcceleratorsProceedings of the 16th ACM Workshop on Hot Topics in Storage and File Systems10.1145/3655038.3665956(131-136)Online publication date: 8-Jul-2024

View Options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Login options

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media