Improving Logging and Recovery Performance in Phoenix/App

  • Authors:
  • Roger Barga;Shimin Chen;David Lomet

  • Affiliations:
  • -;-;-

  • Venue:
  • ICDE '04 Proceedings of the 20th International Conference on Data Engineering
  • Year:
  • 2004

Quantified Score

Hi-index 0.00

Visualization

Abstract

Phoenix/App supports software components whosestates are made persistent across a system crash via redorecovery, replaying logged interactions. Our initialprototype force logged all request/reply events resultingfrom inter-component method calls and returns. Thispaper describes an enhanced prototype that implements:(i) log optimizations to improve normal executionperformance; and (ii) checkpointing to improve recoveryperformance. Logging is reduced in two ways: (1) weonly 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 thesystem; (2) we introduce new component types thatprovide our enhanced system with more information,enabling further reduction in logging. To improverecovery performance, we save the values of the fields ofa component to the log in an application "checkpoint".We describe the system elements that we exploit for theseoptimizations, and characterize the performance gainsthat result.