next up previous
Next: Aspects: Multiple Locking Up: Session- and Artifact- Previous: GROVE: Access-Controlled Views

CES: Tickle Locks and Version Histories

Yet another group outlining system, CES (Collaborative Editing System) supports fine-grained locks, delayed transmission of changes to other users, and distributed versions of the document. It supports collaborative editing of a structured outline whose leaf level nodes are variable-length text segments. Each text node in the document is owned by a particular user, who is considered the primary author of the node, and resides on the machine of the owner. Secondary copies of the node are cached on other authors' nodes and are kept consistent with the primary copy.

Changes made by user are transmitted to others, not immediately, but when they are committed. To reduce user overhead, CES supports implicit commitment, that is, commits changes automatically as a side effect of ``significant editing actions'' such as as word deletions and carriage returns. Thus, a user viewing a node being written by another user sees an out of date version of it until the changes made by the latter are committed.

CES supports ``tickle locks'' to ensure that two users do not write to the same node simultaneously.

A user locks a node when he first edits it and retains the lock as long as some editing activity occurs. Some other user can take the lock away from the holder if the latter has been idle for a certain amount of time. At this point, all changes made by the holder are automatically committed.

CES keeps a stack of recently committed versions of the document and supports the regular stack operations, top, push, and pop. In addition, it supports the fasttop operation, which is not serialized with the other operations. As a result, it supports more concurrency but is not guaranteed to return the ``true'' top. This approach of optimistically expecting that distributed race conditions will not occur is taken by Grove and several other collaborative systems to support good response times.

CES is implemented using a distributed object system called Argus, which we shall study later.



next up previous
Next: Aspects: Multiple Locking Up: Session- and Artifact- Previous: GROVE: Access-Controlled Views



Prasun Dewan
Tue Jan 28 17:46:09 EST 1997