\documentstyle[6.033-ps,12pt]{article}
\title{System Checkpointing in System R}
\date{April 23, 1991}
\setallmargins{1.25in}
\begin{document}
\maketitle

When System R does a system checkpoint it only waits for the system to
be action consistent.  The major reason for this is efficiency.
System checkpoints should happen reasonably often, so they need to be
quick.  Blocking new transactions until all old transactions have
completed could interrupt availability for several minutes.  Since
actions are quick, just waiting for all pending actions to terminate
takes little time.

Also, the relative occurences make checkpointing at
transaction-consistency inefficient.  Checkpoints occur often during
normal operation.  System crashes, which are the only condition which
make checkpoint recovery necessary, occur far less frequently.  Making
the recovery more efficient, then, is the wrong way to optimize.
Checkpointing in an action-consistent state allows the more common
operation to proceed more quickly, at the expense of the less common
operation occurring more slowly.  This is acceptable.

\vfill

{\small
Note: I think this question is too specific for a one-page paper.
There isn't a whole lot to say without adding meaningless filler, so I
didn't say a whole lot.}

\end{document}
