Check out the new USENIX Web site. next up previous
Next: Optimistic Replication Up: Progressive Update Propagation Previous: Progressive Update Propagation


Pessimistic Replication

Supporting progressive update propagation requires adding one new state to the primary replica's state transition diagram (Partial-Clean) and two new states to the client replica's state transition diagram (Pseudo-Dirty and Partial-Clean).

Figures 3 (A) and (B) show the state transition diagram for an individual component in a pessimistic replication model at a client replica and at the primary replica, respectively. The transition diagram for the primary replica is simple. A component at the primary replica can be in one of three states: Empty, Partial-Clean, and Clean. A component is in the Empty state while it is being edited by a client replica. The component transitions to the Partial-Clean and Clean states when the writer pushes a partial-fidelity or a full-fidelity version of the components, respectively.

Figure 3: Pessimistic replication state transition diagram for components of the client (A) and primary (B) replicas.
\begin{figure}\centering\epsfig{file=plots/pseudo.epsi,width=3.15in}\\
\end{figure}

A component in a client replica can be in one of five states: Empty, Clean, Partial-Clean, Dirty, and Pseudo-Dirty. A component is in the Empty state either while it is being modified by some other client replica or when the client has chosen not to read it. A component transitions to Clean by reading a full-fidelity version. If only a partial-fidelity version is available at the primary replica because the last writer has not propagated a full-fidelity version yet, the client replica can read this version and transition to Partial-Clean. The component transitions from Clean to Dirty after the client modifies its content. The client can then propagate modifications to the primary replica in two ways. First, the writer can push a full-fidelity version of the modifications, forcing the component at the primary and writer's replica to transition to Clean. Second, the writer can propagate a partial-fidelity version of the component, forcing the component to transition to Partial-Clean in the primary replica, and to Pseudo-Dirty in the writer's replica. The various replicas remain in these states until the writer pushes a full-fidelity version and the component at both the primary and writer's replica transition to Clean. At this time, other client replicas can read the full-fidelity version and transition to Clean. Alternatively, a writer in Pseudo-Dirty can modify the component for a second time and transition to Dirty. If other replicas are to obtain access to a partial-fidelity version, it is imperative that the writer relinquishes exclusive access rights. This enables other replicas to read the partial-fidelity version, but requires the replica in Pseudo-Dirty to re-acquire exclusive access to the component before it can modify it again and transition to Dirty.


next up previous
Next: Optimistic Replication Up: Progressive Update Propagation Previous: Progressive Update Propagation
Eyal de Lara 2003-03-04