Improving Logging and Recovery Performance in Phoenix/App
- Roger Barga ,
- Shimin Chen ,
- David Lomet
ICDE Conference |
Published by IEEE Computer Society
Phoenix/App supports software components whose states are made persistent across a system crash via redo recovery, replaying logged interactions. Our initial prototype force logged all request/reply events resulting from inter-component method calls and returns. This paper describes an enhanced prototype that implements: (i) log optimizations to improve normal execution performance; and (ii) checkpointing to improve recovery performance. Logging is reduced in two ways: (1) we only log information required to remove non-determinism, and we only force the log when an event “commits” the state of the component to other parts of the system; (2) we introduce new component types that provide our enhanced system with more information, enabling further reduction in logging. To improve recovery performance, we save the values of the fields of a component to the log in an application “checkpoint”. We describe the system elements that we exploit for these optimizations, and characterize the performance gains that result. ns, and characterize the performance gains that result.
Copyright © 2007 IEEE. Reprinted from IEEE Computer Society.This material is posted here with permission of the IEEE. Internal or personal use of this material is permitted. However, permission to reprint/republish this material for advertising or promotional purposes or for creating new collective works for resale or redistribution must be obtained from the IEEE by writing to pubs-permissions@ieee.org.By choosing to view this document, you agree to all provisions of the copyright laws protecting it.