Rio Vista
Summary
System Crash
Two problems concerning failure:
- Power Failure
- Can we throw some hardware at problem and make it dissappear (i.e. UPS)
- Software crash
- Resrve a portion of main memory that survives crashes
LRVM Revisited
On begin_xact, create a copy of region of memory (called Undo Copy)
On end_xact, write “redo record” to disk to commit changes.
Rio File Cache
Battery backed DRAM used for file cache (mmap-backed application memory)
Vista RVM on top of Rio
Data segment is mapped to filecache
On begin_xact, create a copy of region of memory (called Undo Copy) which is also mapped to filecache
On end_xact, changes are already persisted in data segment so no “Redo Copy” is needed. Undo Copy is still deleted.
Crash Recovery
Treat like Abort
- Recover old copy from undo log
- Survives crashes due to Rio file cache
Crash during Crash recovery?
- Idempotency of recovery, not a problem
Vista Simplicity
700 LOC
- VS 10K in LRVM
Why?
- No redo logs or truncation code
- Checkpointing and recovery code simplified
- No group commit optimizations
Upshot
- Simple like LRVM but performance efficient