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


Modification of Partially-Loaded Components

A more ambitious form of adaptation-aware editing allows users to modify just a portion of a partial-fidelity version, for example, to replace parts of transcoded images, audio recordings, or video streams. Such modifications result in a component version that contains a mixture of partial- and full-fidelity data, which contravenes our initial assumption that the replication system keeps track of fidelity at the component granularity. While the semantics of some data types, such as images, may support modifications to just parts of the component's version, these semantics are not visible to the replication system. To reflect the changes to the replication system, the component has to be split into two subcomponents as shown on Figure 2. The first subcomponent holds the partial-fidelity data, which was not modified by the user, and the second subcomponent holds the full-fidelity modifications made by the user. The original component (now turned into a container for the two subcomponents) transitions to the Dirty state, to reflect the change in the document's component structure. The subcomponent holding unmodified partial fidelity data remains in the Partial-Clean state. In contrast, the subcomponent holding new full-fidelity data transitions to the Dirty state.

Figure 2: A component is split after modifications to a partial-fidelity version.
\begin{figure}\centering\epsfig{file=plots/split.epsi,width=3.15in}\end{figure}

A partial-fidelity version can also be changed by an operation that does not produce any full-fidelity data, for instance, by applying a gray-scale filter to a partial-fidelity image. For these cases, the operation rather than the resulting data has to be propagated to the primary replica, and applied there [16]. After the operation has been propagated and applied to the server's version, the client's version transitions into Partial-Clean if the client's version can be lossily trancoded from the server's version, and to Empty otherwise. In other words, the client's version transitions to Partial-Clean only if the lossy trancoding algorithm used to derive the client's version and the operation being propagated are commutative.

In either of the above cases, reflecting the modifications made to the partial-fidelity version on the full-fidelity version available at the server requires data-type specific instrumentation (i.e., code that knows how to extract the modifications to a partial-fidelity version, and merge them with the full-fidelity version at the server).


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