21.4. Logging and shadowing for crash resilience

Two basic approaches to achieving crash resilience were outlined in Chapter 15: logging and shadowing. Our concern there was to make a single invocation atomic in the presence of crashes. In Part III we have moved on to transactions comprising a number of related invocations and should reconsider the approaches from this perspective.

  • Logging: Persistent object values are updated in place and all changes are recorded in a log. The method is based on recorded state and a fundamental assumption is that it is possible to undo an invocation at an object. This is necessary when a crash occurs part-way through a transaction. The pre-crash invocations of the uncommitted transaction must be undone. We shall ...

Get Operating Systems: Concurrent and Distributed Software Design now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.