skip to main content
10.1145/3555776.3577754acmconferencesArticle/Chapter ViewAbstractPublication PagessacConference Proceedingsconference-collections
research-article

Spidermine: Low Overhead User-Level Prefetching

Published:07 June 2023Publication History

ABSTRACT

Spidermine monitors the rate at which read requests are issued by an application, and thus detects bursts of disk reads. It then determines an address at which to insert a breakpoint into the application code or a library before each burst, and logs each breakpoint, together with the data required for the subsequent burst. When the application is subsequently run, Spidermine inserts breakpoints at each logged address by temporarily replacing the instruction. Spidermine is then invoked at each breakpoint, and prefetches the corresponding data blocks into the page cache. This use of breakpoints as triggers for prefetching eliminates the need for monitoring to determine when to prefetch data during program execution. Also, by operating at the user level, Spidermine avoids interference with other applications. Experiments on 11 benchmark applications demonstrated that Spidermine can reduce the time for launch by up to 54.1%, and for run-time data-loading by up to 70.1% on a hard disk drive, 13.3% and 47.0% respectively, on a solid-disk drive.

References

  1. A. Bovenzi, J. Alonso, H. Yamada, S. Russo, and K. S. Trivedi. 2013. Towards fast OS rejuvenation: an experimental evaluation of fast OS reboot techniques. In in Proc. 24th IEEE International Symposium on Software Reliability Engineering. 61--70.Google ScholarGoogle Scholar
  2. A. D. Brown, T. C. Mowry, and O. Krieger. 2001. Compiler-based I/O prefetching for out-of-core applications. ACM Transactions on Computer Systems 19, 2 (May 2001), 111--170.Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. X. Ding, S. Jiang, F. Chen, K. Davis, and X. Zhang. 2004. DiskSeen: Exploiting disk layout and access history to enhance I/O prefetch. In in Proc. USENIX 2004 Annual Technical Conference. 173--186.Google ScholarGoogle Scholar
  4. B. Esfahbod. 2006. Preload---An Adaptive Prefetching Daemon. Master's thesis. University of Toronto, Canada.Google ScholarGoogle Scholar
  5. B. Hubert. 2005. On faster application startup times: cache stuffing, seek profiling, adaptive preloading. In in Proc. Ottawa Linux Symposium. 245--248.Google ScholarGoogle Scholar
  6. S. Jiang, X. Ding, Y. Xu, and K. Davis. 2013. A prefetching scheme exploiting both data layout and access history on disk. ACM Transactions on Storage 9, 3, Article 10 (August 2013).Google ScholarGoogle ScholarCross RefCross Ref
  7. Y. Joo, J. Ryu, S. Park, and K. G. Shin. 2011. FAST: quick application launch on solid-state drives. In in Proc. 9th USENIX Conference on File and Storage Technologies (FAST). 259--272.Google ScholarGoogle Scholar
  8. H. Kim, N. Agrawal, and C. Ungureanu. 2012. Revisiting storage for smartphones. In in Proc. 10th USENIX Conference on File and Storage Technologies (FAST). 209--222.Google ScholarGoogle Scholar
  9. T. M. Kroeger and D. D. E. Long. 1996. Predicting file system actions from prior events. In in Proc. USENIX 1996 Annual Technical Conference. 319--328.Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. T. M. Kroeger and D. D. E. Long. 2001. Design and implementation of a predictive file prefetching algorithm. In in Proc. USENIX 2001 Annual Technical Conference. 105--118.Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. H. Lei and D. Duchamp. 1997. An analytical approach to file prefetching. In in Proc. USENIX 1997 Annual Technical Conference. 275--288.Google ScholarGoogle Scholar
  12. Z. Li, Z. Chen, S. M. Srinivasan, and Y. Zhou. 2004. C-Miner: Mining block correlations in storage systems. In in Proc. 3rd USENIX Conference on File and Storage Technologies. 173--186.Google ScholarGoogle Scholar
  13. K. Lichota. 2007. Prefetch: Linux solution for prefetching necessary data during application and system startup. https://code.google.com/p/prefetch/Google ScholarGoogle Scholar
  14. A. Parate, M. Bőhmer, D. Chu, D. Ganesan, and B. Marlin. 2013. Practical prediction and prefetch for faster access to applications on mobile phones. In in Proc. 2013 ACM International Joint Conference on Pervasive and Ubiquitous Computing. 275--284.Google ScholarGoogle Scholar
  15. J. Ryu, D. Lee, K. G. Shin, and K. Kang. 2018. ClusterFetch: A lightweight prefetcher for intensive disk reads. IEEE Trans. Comput. 67, 2 (September 2018), 284--290. Google ScholarGoogle ScholarCross RefCross Ref
  16. J. Schindler, J. L. Griffin, C. R. Lumb, and G. R. Ganger. 2002. Track-aligned extents: Matching access patterns to disk drive characteristics. In in Proc. 1st USENIX Conference on File and Storage Technologies. 259--274.Google ScholarGoogle Scholar
  17. V. Tarasov, G Sim, A Povzner, and E Zadok. 2012. Efficient I/O scheduling with accurately estimated disk drive latencies. In in Proc. 8th annual workshop on Operating Systems Platforms for Embedded Real-Time. 36--45.Google ScholarGoogle Scholar
  18. Steve VanDeBogart, Christopher Frost, and Eddie Kohler. 2009. Reducing seek overhead with application-directed prefetching. In Proceedings of the 2009 Conference on USENIX Annual Technical Conference. 299--312.Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. J. Won, O. Kwon, J. Ryu, J. Hur, I. Lee, and K. Kang. 2017. A Breakpoint-based Prefetcher for BothLaunch and Run-time. In in Proc. IEEE International Conference on Systems, Man, and Cybernetics (SMC). 2766--2771.Google ScholarGoogle Scholar
  20. T. Yan, D. Chu, D. Ganesan, A. Kansal, and J. Liu. 2012. Fast app launching for mobile devices using predictive user context. In in Proc. 10th International Conference on Mobile Systems, Applications, and Services. 113--126.Google ScholarGoogle Scholar

Index Terms

  1. Spidermine: Low Overhead User-Level Prefetching

    Recommendations

    Comments

    Login options

    Check if you have access through your login credentials or your institution to get full access on this article.

    Sign in
    • Published in

      cover image ACM Conferences
      SAC '23: Proceedings of the 38th ACM/SIGAPP Symposium on Applied Computing
      March 2023
      1932 pages
      ISBN:9781450395175
      DOI:10.1145/3555776

      Copyright © 2023 ACM

      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 ACM 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].

      Publisher

      Association for Computing Machinery

      New York, NY, United States

      Publication History

      • Published: 7 June 2023

      Permissions

      Request permissions about this article.

      Request Permissions

      Check for updates

      Qualifiers

      • research-article

      Acceptance Rates

      Overall Acceptance Rate1,650of6,669submissions,25%
    • Article Metrics

      • Downloads (Last 12 months)76
      • Downloads (Last 6 weeks)7

      Other Metrics

    PDF Format

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader