Improving Logging and Recovery Performance in Phoenix/App

Roger Barga, Shimin Chen, and David Lomet

Abstract

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:

  1. 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.

Details

Publication typeInproceedings
Published inICDE Conference
PublisherIEEE Computer Society
> Publications > Improving Logging and Recovery Performance in Phoenix/App