SNAP: efficient snapshots for back-in-time execution

SNAP is a novel high-performance snapshot system for object storage systems. The goal is to provide a snapshot service that is efficient enough to permit "back-in-time" read-only activities to run against application-specified snapshots. Such activities are often impossible to run against rapidly evolving current state because of interference or because the required activity is determined in retrospect. A key innovation in SNAP is that it provides snapshots that are transactionally consistent, yet non-disruptive. Unlike earlier systems, we use novel in-memory data structures to ensure that frequent snapshots do not block applications from accessing the storage system, and do not cause unnecessary disk operations. SNAP takes a novel approach to dealing with snapshot meta-data using a new technique that supports both incremental meta-data creation and efficient meta-data reconstruction. We have implemented a SNAP prototype and analyzed its performance. Preliminary results show that providing snapshots for back-in-time activities has low impact on system performance even when snapshots are frequent.

[1]  Alan Dearle,et al.  Cache Coherency and Storage Management in a Persistent Object System , 1990, POS.

[2]  David J. DeWitt,et al.  The oo7 Benchmark , 1993, SIGMOD Conference.

[3]  David J. DeWitt,et al.  The 007 Benchmark , 1993, SIGMOD '93.

[4]  Michael Stonebraker,et al.  The Design of the POSTGRES Storage System , 1988, VLDB.

[5]  Miguel Castro,et al.  Providing Persistent Objects in Distributed Systems , 1999, ECOOP.

[6]  Andreas Reuter,et al.  Transaction Processing: Concepts and Techniques , 1992 .

[7]  Liuba Shrira,et al.  Opportunistic log: efficient installation reads in a reliable storage server , 1994, OSDI '94.

[8]  Andreas Steiner,et al.  Implementing Temporal Databases in Object-Oriented Systems , 1997, DASFAA.

[9]  James Lau,et al.  File System Design for an NFS File Server Appliance , 1994, USENIX Winter.

[10]  Gultekin Özsoyoglu,et al.  Temporal and Real-Time Databases: A Survey , 1995, IEEE Trans. Knowl. Data Eng..

[11]  Ann L. Chervenak,et al.  Evaluating Backup Algorithms , 2000, IEEE Symposium on Mass Storage Systems.

[12]  Paul M. Bober,et al.  On mixing queries and transactions via multiversion locking , 1992, [1992] Eighth International Conference on Data Engineering.

[13]  Craig A. N. Soules,et al.  Metadata Efficiency in Versioning File Systems , 2003, FAST.

[14]  C. Mohan,et al.  An efficient and flexible method for archiving a data base , 1993, SIGMOD Conference.

[15]  Forouzan Golshani,et al.  Proceedings of the Eighth International Conference on Data Engineering , 1992 .

[16]  Norman C. Hutchinson,et al.  Deciding when to forget in the Elephant file system , 1999, SOSP.

[17]  Mendel Rosenblum,et al.  The design and implementation of a log-structured file system , 1991, SOSP '91.

[18]  Bruce G. Lindsay,et al.  Database Snapshots , 1980, VLDB.

[19]  Jing Shan,et al.  A Framework for Access Methods for Versioned Data , 2004, EDBT.

[20]  Sanjay Ghemawat,et al.  The Modified Object Buffer: A Storage Management Technique for Object-Oriented Databases , 1995 .