Kurzweil says, computers will enable people to live forever and doctors will be doing backup of your memories by late 2030. This talk is not about that, yet. Instead, the remarkable drop in disk costs makes it possible and attractive to capture past application states and store them for a long time. This opens the possibility that features, such as forecasting and auditing formerly relegated to data warehouses and temporal databases, can become available to everyday applications in general databases. The challenge is how to organize past states so that they are “not in the way” and “always there” when needed. Split snapshots are a recent approach to organizing past states that is attractive for several reasons. Split snapshots are transactionally consistent. Unmodified database programs can run against them, side by side with programs running against the current state. They can be taken with any frequency, kept indefinitely, or garbage-collected at low cost, a useful feature in long-lived systems. Several new techniques underly split snapshots. The integration with the buffer manager exploits native recovery and concurrency mechanisms to create consistent copy-on-write snapshots without blocking, a new kind of snapshot index provides fast access independently of snapshot age or update workload, and a new kind of snapshot storage organization manages disk adaptively without copying and without disk fragmentation. Measurements of a prototype system indicate that the approach is efficient and scalable, imposing minimal (\(4%\)) performance penalty on a storage system, on expected common workloads. (Joint work with Ross Shaull and Hao Xu).
Liuba Shrira is an Associate Professor in the Computer Science Department at Brandeis University, and is affiliated with the Computer Science and Artificial Intelligence Laboratory at MIT. From 1986 to 1997 she was a researcher in the MIT/LCS Programming Methodology Group joining Brandeis in 1997. In 2004-2005 she was a visiting researcher at Microsoft Research, Cambridge, UK. Her research interests span aspects of design and implementation of distributed systems and especially storage systems. This includes fault-tolerance, availability and performance issues. Her recent focus is on long-lived transactional storage, time travel (in storage), software upgrades, byzantine faults, and support for collaborative access to long-lived objects.