Roger Barga, Shimin Chen, and David Lomet
April 2004
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 nondeterminism,
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.
![]() PDF file |
In ICDE Conference
Publisher IEEE Computer Society
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.
| Type | Inproceedings |