The Rio (RAM I/O) Project
The Rio project is investigating how to implement and use reliable memory.
Reliable memory enables dramatic improvements in reliability and performance.
Major results to date include:
- The Rio File Cache: We make ordinary main
memory safe for persistent storage by enabling memory to survive operating
system crashes. Rio survives crashes by protecting memory using
virtual memory protection and restoring the data during the subsequent reboot.
By eliminating reliability-induced disk writes, Rio performs 4-22 times as
fast as a write-through file system and 2-14 times as fast as a standard Unix
file system that loses 30 seconds of data on a crash. Rio is in production use
as our project's file server and stores our mail and home directories.
For more information, see our
paper and
slides
from ASPLOS 1996.
- The Vista Recoverable Memory: Transactions and
recoverable memories are powerful mechanisms for handling failures and
manipulating persistent data. Unfortunately, standard recoverable memories
incur an overhead of several milliseconds per transaction. Vista improves
transaction overhead by a factor of 2000. Of this factor of 2000, a factor of
20 is due to the Rio file cache, which absorbs synchronous writes to disk
without losing data during system crashes. The remaining factor of 100 is due
to Vista, a 720-line recoverable-memory library tailored for Rio. Vista lowers
transaction overhead to 5 microseconds by using no redo log, no system calls,
and only one memory-to-memory copy. Here's a
paper
describing Vista that appeared in SOSP 1997.
- Discount Checking:
Discount Checking is a checkpointing library that allows
general applications to recover from operating system and application crashes.
Discount Checking builds on Rio's reliable main memory and Vista's fast
transactions to achieve very low overhead and a high degree of transparency.
Discount Checking slows real applications down by less than 0.6%, even while
taking checkpoints frequently enough to save every externally visible event.
Discount Checking makes application and OS crashes appear as if the application
pauses and resumes. Here is a
paper
that describes Discount Checking and a paper that uses Discount Checking.