20th International Conference on Data Engineering (ICDE'04)
Improving Logging and Recovery Performance in Phoenix/App
Boston, Massachusetts
March 30-April 02
ISBN: 0-7695-2065-0
Shimin Chen, Carnegie Mellon University, Pittsburgh, PA
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.
Citation:
Roger Barga, Shimin Chen, David Lomet, "Improving Logging and Recovery Performance in Phoenix/App," icde, pp.486, 20th International Conference on Data Engineering (ICDE'04), 2004