Using machine learning techniques to enhance the performance of an automatic backup and recovery system

A typical disaster recovery system will have mirrored storage at a site that is geographically separate from the main operational site. In many cases, communication between the local site and the backup repository site is performed over a network which is inherently slow, such as a WAN, or is highly strained, for example due to a whole-site disaster recovery operation. The goal of this work is to alleviate the performance impact of the network in such a scenario, and to do so using machine learning techniques. We focus on two main areas, prefetching and read-ahead size determination. In both cases we significantly improve the performance of the system. Our main contributions are as follows: We introduce a theoretical model of the system and the problem we are trying to solve and bound the gain from prefetching techniques. We construct two frequent pattern mining algorithms and use them for prefetching. A framework for controlling and combining multiple prefetch algorithms is presented as well. These algorithms, as well as various simple prefetch algorithms, are compared on a simulation environment. We introduce a novel algorithm for determining the amount of read ahead on such a system that is based on intuition from online competitive analysis and on regression techniques. The significant positive impact of this algorithm is demonstrated on IBM's FastBack system. Much of our improvements have been applied with little or no modification of the current implementation's internals. We therefore feel confident in stating that the techniques are general and are likely to have applications elsewhere.

[1]  Yuanyuan Zhou,et al.  Association Proceedings of the Third USENIX Conference on File and Storage Technologies San Francisco , CA , USA March 31 – April 2 , 2004 , 2004 .

[2]  Stanley B. Zdonik,et al.  Fido: A Cache That Learns to Fetch , 1991, VLDB.

[3]  Hongsheng Xi,et al.  On the design of a new Linux readahead framework , 2008, OPSR.

[4]  Hartmut Wedekind,et al.  Prefetching in realtime database applications , 1986, SIGMOD '86.

[5]  Luis Angel D. Bathen,et al.  AMP: Adaptive Multi-stream Prefetching in a Shared Cache , 2007, FAST.

[6]  Jim Zelenka,et al.  Informed prefetching and caching , 1995, SOSP.

[7]  A. Inkeri Verkamo Empirical Results on Locality in Database Referencing , 1985, SIGMETRICS.

[8]  Hui Lei,et al.  Intelligent file hoarding for mobile computers , 1995, MobiCom '95.

[9]  Jiawei Han,et al.  Frequent pattern mining: current status and future directions , 2007, Data Mining and Knowledge Discovery.

[10]  A. Inkeri Verkamo Empirical results on locality in database referencing , 1985, SIGMETRICS 1985.

[11]  Song Jiang,et al.  STEP: Sequentiality and Thrashing Detection Based Prefetching to Improve Performance of Networked Storage Servers , 2007, 27th International Conference on Distributed Computing Systems (ICDCS '07).

[12]  Alfons Kemper,et al.  Prefetch Support Relations in Object Bases , 1994, POS.

[13]  Dharmendra S. Modha,et al.  SARC: Sequential Prefetching in Adaptive Replacement Cache , 2005, USENIX Annual Technical Conference, General Track.

[14]  Hui Lei,et al.  An analytical approach to file prefetching , 1997 .

[15]  Alfons Kemper,et al.  A Multi-Threaded Architecture for Prefetching in Object Bases , 1994, EDBT.