145
functions are examples of collaboration support functions that can be provided even with
this simple change-reporting interface.
This kind of simple interface is easy to implement for application writers. Application
writers need not even be aware of the data replication that can occur as a result of the data
cloning caused by the copy operation. When the application registers a change in a copy
source, appropriate updates are generated for the entire editing buffer. It is important to
note that for copy in particular, there are a few potential performance problems with this
kind of parallel buffering arrangement. One relatively unimportant problem is that the po-
tential size of a document with ncopy operations can be exponential inn. More serious (be-
cause more likely) is the overhead of processing updates propagated by multiple copies of
data in large documents. Most of the applications where dynamic copy is useful involve the
use of boilerplate text, which is likely to be replicated many times. If an editing buffer con-
taining an entire document is being updated, the application may spend a significant
amount of time applying updates to portions of the document that are invisible. While this
would not be wasted work (because the user might scroll to those parts of the document), it
is work that could be radically limited if it were confined to the visible portions of the
document. For large documents where copy is a common operation, a partial buffering strat-
egy based on direct access to the Palimpsest addressing mechanisms seems to be necessary.
7.3 Summary
This chapter describes an architecture for Palimpsest-based applications that takes advan-
tage of the opportunities provided by a change-oriented data distribution model to increase
the flexibility and configurability of collaborative applications. This architecture abstracts
network connection management from concurrency control, based on the merge and distri-
bution guarantees offered by the underlying Palimpsest model. It also separates many as-
pects of distribution strategy from data consistency and connection management.
functions are examples of collaboration support functions that can be provided even with
this simple change-reporting interface.
This kind of simple interface is easy to implement for application writers. Application
writers need not even be aware of the data replication that can occur as a result of the data
cloning caused by the copy operation. When the application registers a change in a copy
source, appropriate updates are generated for the entire editing buffer. It is important to
note that for copy in particular, there are a few potential performance problems with this
kind of parallel buffering arrangement. One relatively unimportant problem is that the po-
tential size of a document with ncopy operations can be exponential inn. More serious (be-
cause more likely) is the overhead of processing updates propagated by multiple copies of
data in large documents. Most of the applications where dynamic copy is useful involve the
use of boilerplate text, which is likely to be replicated many times. If an editing buffer con-
taining an entire document is being updated, the application may spend a significant
amount of time applying updates to portions of the document that are invisible. While this
would not be wasted work (because the user might scroll to those parts of the document), it
is work that could be radically limited if it were confined to the visible portions of the
document. For large documents where copy is a common operation, a partial buffering strat-
egy based on direct access to the Palimpsest addressing mechanisms seems to be necessary.
7.3 Summary
This chapter describes an architecture for Palimpsest-based applications that takes advan-
tage of the opportunities provided by a change-oriented data distribution model to increase
the flexibility and configurability of collaborative applications. This architecture abstracts
network connection management from concurrency control, based on the merge and distri-
bution guarantees offered by the underlying Palimpsest model. It also separates many as-
pects of distribution strategy from data consistency and connection management.