Check out the new USENIX Web site. next up previous
Next: User Modification Propagation Up: The CoFi Prototype Previous: System Architecture


Optimistic Primary Replica Replication

Figure 6: The native data store, CoFi remote and local proxies, and the application can have versions of the document that differ in their component subsets and fidelities.
\begin{figure}\center
\psfig{file=plots/pptr_multi_tree.epsi,height=6.5in}\end{figure}

CoFi implements an optimistic primary replica replication model as described in Section 2.3.2. The prototype consists of a group of bandwidth-limited nodes, each running a CoFi local proxy, that collaborate by exchanging component data over a single CoFi remote proxy, which stores the primary replica of the document. When a document is first opened, it is imported from its native data store into the CoFi remote proxy. Further accesses to the document, both reads and writes, are then served from the CoFi remote proxy's version. In a more complete implementation, there would be multiple remote proxies communicating between each other, but this communication can be implemented by known methods and the current prototype allows us to focus on the novel aspects of CoFi. To enable communication with non CoFi-enabled programs, CoFi exports document modifications back to their native data store.

In CoFi, several versions of a document co-exist in various parts of the system. Figure 6 exemplifies the state of the system for a single client editing a PowerPoint document. The figure shows that there is one version of the document in each of the native data store, the CoFi remote and local proxy, and the application. Moreover, the figure shows that these versions differ in their component subsets and component fidelities. In the example, the native data store and the CoFi remote proxy have complete versions of the document. In contrast, both the CoFi local proxy and the application have just incomplete versions: the first slide is empty and the images of the second slide are only present in partial fidelity. Finally, the application version has an extra slide component.

The differences between the versions in the remote and local proxy result from subsetting and versioning adaptations. In contrast, the differences between the versions in the local proxy and the application result from user modifications. The native store and remote proxy versions can differ because the two versions have not been synchronized (i.e., modifications have not been propagated to the native store), or when the native store version is being updated using out-of-band mechanisms (i.e., outside of the CoFi system).

The rest of this section describes how versions of the document converge by exchanging component data. First, we describe how CoFi propagates user modifications from the bandwidth-limited device to the CoFi remote proxy and the data store. Second, we describe how the CoFi local proxy refreshes the application's document version with newer or higher-fidelity component versions.



Subsections
next up previous
Next: User Modification Propagation Up: The CoFi Prototype Previous: System Architecture
Eyal de Lara 2003-03-04