DOI QR코드

DOI QR Code

Prefetching Framework for General Workloads Using Breakpoint

브레이크포인트를 이용한 범용 워크로드 프리페칭 프레임워크

  • 고광진 (서울대학교 컴퓨터공학부) ;
  • 유준희 (삼성전자 네트워크사업부) ;
  • 강경태 (한양대학교 컴퓨터공학과) ;
  • 신현식 (서울대학교 컴퓨터공학부)
  • Received : 2014.05.09
  • Accepted : 2014.08.19
  • Published : 2014.10.15

Abstract

Application loading speed can be improved by timely prefetching disk blocks likely to be needed by an application. However, existing prefetchers -- if they are not specialized to a particular application -- incur high overheads and are poor at identifying the blocks that will actually be required. There are many sequences in which blocks may be needed and, even if two access sequences are identical, block tracing and access timings can be affected significantly by the state of the buffer cache. We propose a new application-independent software-based prefetching technique, in which breakpoints are inserted at appropriate places in an application to collect the information on correlations between the blocks and to prefetch the potential blocks ahead of their schedule based on it. Experiments on an HDD-based desktop PC demonstrated an average 30% reduction in application launch time and 15% in general I/O, while reducing the wasted overhead.

프로그램의 로딩 속도는 프로그램이 요청하는 디스크 블록을 미리 읽어 들임으로써(프리페칭) 향상시킬 수 있다. 그러나 기존의 프리페칭 관련 기법들은 특정 프로그램에 최적화된 경우를 제외하면 상당한 오버헤드를 보여주었다. 특히 요청블록을 정확히 추적하는데 어려움이 있었다. 어떤 블록들은 여러 시퀀스(단위시간 내에 추적된 블록들)에 나타날 수 있고 두 접근 시퀀스가 동일 하더라도 버퍼 캐시에 의해서 접근 시간과 수집되는 블록 정보가 다를 수 있기 때문에 분석이 까다롭다. 본 논문에서는 소프트웨어적 접근 방법으로 새로운 범용 워크로드 프리페칭 기법을 제안한다. 제안하는 프리페칭 기법은 브레이크 포인트를 프로그램의 적재 적소에 배치함으로써 요청 블록의 상관관계 정보를 수집하고, 이를 바탕으로 프리페칭을 수행한다. 상용 하드디스크를 이용한 실험 결과, 불필요한 오버헤드가 감소되었으며 기동 시간은 평균 30%, 로딩은 평균 15% 단축되었음을 확인하였다.

Keywords

Acknowledgement

Supported by : 한국연구재단

References

  1. Y. Joo, J. Ryu, S. Park, and K. G. Shin, "FAST: Quick Application Launch on Solid-State Drives," FAST, pp. 259-272, Feb. 2009.
  2. R. Micheloni, L. Crippa, and M. Picca, "Hybrid Storage," Inside Solid State Drives (SSDs), pp. 61-77, Springer, 2013.
  3. T. Coughlin, "Evolving Storage Technology in Consumer Electronic Products," IEEE Consum. Electron. Mag., Vol. 2, No. 2, pp. 59-63, Apr. 2013.
  4. X. Ding, S. Jiang, F. Chen, K. Davis, and X. Zhang, "DiskSeen: Exploiting Disk Layout and Access History to Enhance I/O Prefetch," 2007 USENIX Annu. Tech. Conf. Proc. USENIX Annu. Tech. Conf., pp. 261-274, 2007.
  5. M. E. Russinovich, D. A. Solomon, and A. Ionescu, Windows Internals Part2, 6th Ed., Microsoft Press, 2012.
  6. K. Lichota. (2007, Sep. 14). Linux solution for prefetching necessary data during application and system startup. [Online]. Available: http://code.google.com/p/prefetch/ (downloaded 2014, May. 7)
  7. Junhee Ryu, "Reducing Application Launch Time by Using Execution-time Prefetching Techniques," Seoul National University, 2013. (in Korean)
  8. F. Chang and G. A. Gibson, "Automatic I/O Hint Generation Through Speculative Execution," Proceedings of the Third Symposium on Operating Systems Design and Implementation, pp. 1-14, 1999.
  9. Z. Li, Z. Chen, S. M. Srinivasan, and Y. Zhou, "C-Miner: Mining Block Correlations in Storage Systems," FAST, pp. 173-186, 2004.
  10. M. Bhadkamkar, J. Guerra, L. Useche, S. Burnett, J. Liptak, R. Rangaswami, and V. Hristidis, "BORG: Block-reORGanization for Self-optimizing Storage Systems," Proccedings of the 7th Conference on File and Storage Technologies, pp. 183-196, 2009.
  11. T. C. Mowry, A. K. Demke, and O. Krieger, "Automatic Compiler-inserted I/O Prefetching for Out-of-core Applications," Proceedings of the Second USENIX Symposium on Operating Systems Design and Implementation, pp. 3-17, 1996.
  12. S. VanDeBogart, C. Frost, and E. Kohler, "Reducing Seek Overhead with Application-directed Prefetching," Proceedings of the 2009 Conference on USENIX Annual Technical Conference, pp. 299-312, 2009.
  13. Speed Dreams. [Online]. Available: http://www.speeddreams.org/ (downloaded 2014, May. 7)