Issue No. 02 - Feb. (2018 vol. 67)
Junhee Ryu , Department of Computer Science & Engineering, Hanyang University, Ansan, Korea
Dongeun Lee , Department of Computer Science, Texas A&M University – Commerce, Commerce, TX
Kang G. Shin , Department of Electrical Engineering and Computer Science, University of Michigan, Ann Arbor, MI
Kyungtae Kang , Department of Computer Science & Engineering, Hanyang University, Ansan, Korea
By overlapping disk accesses with computation-intensive operations, prefetching can reduce delays in launching an application and in loading significant amounts of data while the application is running. The key to effective prefetching is making the tradeoff between the mining accuracy of selecting relevant blocks, and the time to decide those blocks. To address this problem, we propose a new prefetcher called
ClusterFetch. In its learning mode, ClusterFetch detects periods of intensive disk accesses by monitoring the speed at which read requests are queued; it re-organizes these reads and locates the file opened by the application just before each such period. During subsequent runs of the same application, ClusterFetch prefetches the data associated with the opening of a “trigger” file. Our experimental results show that ClusterFetch implemented in Linux can reduce the application launch time by up to 41.3 percent and the loading time by up to 38.2 percent, while taking up less than 200 KB of main memory.
Prefetching, Loading, Linux, Libraries, Memory management, Correlation, Clustering algorithms
J. Ryu, D. Lee, K. G. Shin and K. Kang, "ClusterFetch: A Lightweight Prefetcher for Intensive Disk Reads," in IEEE Transactions on Computers, vol. 67, no. 2, pp. 284-290, 2018.