Many application domains have already demonstrated that they can benefit greatly if efficient access can be provided to shared information across widely distributed users. We use the generic term object to describe units of shared information which could include files, web pages or language defined objects. Future applications will require object sharing modes richer than simple browsing. For example, a collaboration system that allows users distributed world-wide (e.g., managers of a multinational company) to interact with each other must manipulate objects that are both read and updated at multiple locations.Several assumptions, which are natural in the context of large scale systems, can be made about scalable object sharing systems. First, such systems will consist of many server nodes that will act as the storehouses for shared objects. These servers will enable access to objects to a much larger number of client nodes. To avoid high latencies and communication costs, servers will store replicated copies of objects frequently accessed by clients in their vicinity. Furthermore, clients will cache objects to reduce access latency and frequency of communication with servers. Both replication at servers and caching at clients result in multiple copies of an object which introduces the problem of maintaining consistency among the copies.Many levels of consistency are possible and the choice of a particular consistency level has implications on the programming as well as performance of a distributed application. Although consistency requirements across copies of a single object are easily seen, such requirements can arise between copies of different but related objects. For example, assume that user 1 writes a memo object ol to produce version o1,1 and later generates its updated version ol,2. User 2 reads ol,2 and writes memo object o2 in response. If user 3 reads memo o2 and wants to read o1 to understand it, it must be provided ol,2 and not o1,1 which could have been cached by it due to a previous read. Thus, consistency requirements exist across copies of ol and o2 even when user 3 accesses them in a read-only mode.We first identify some requirements that must be met by scalable object sharing schemes. We present arguments to demonstrate that existing techniques cannot easily be adapted to meet these requirements. This is followed by an outline of our approach.
[1]
Marvin Theimer,et al.
Session guarantees for weakly consistent replicated data
,
1994,
Proceedings of 3rd International Conference on Parallel and Distributed Information Systems.
[2]
Qi Lu,et al.
Isolation-only transactions for mobile computing
,
1994,
OPSR.
[3]
Mustaque Ahamad,et al.
A scalable technique for implementing multiple consistency levels for distributed objects
,
1996,
Proceedings of 16th International Conference on Distributed Computing Systems.
[4]
Michel Raynal,et al.
From serializable to causal transactions (abstract)
,
1996,
PODC '96.
[5]
Mahadev Satyanarayanan,et al.
Disconnected Operation in the Coda File System
,
1999,
Mobidata.
[6]
R. Kordale,et al.
Detecting mutual consistency of shared objects
,
1994,
Workshop on Mobile Computing Systems and Applications.
[7]
M. Frans Kaashoek,et al.
Rover: a toolkit for mobile information access
,
1995,
SOSP.
[8]
Doug Terry,et al.
Epidemic algorithms for replicated database maintenance
,
1988,
OPSR.
[9]
John S. Heidemann,et al.
Implementation of the Ficus Replicated File System
,
1990,
USENIX Summer.
[10]
Liuba Shrira,et al.
Providing high availability using lazy replication
,
1992,
TOCS.
[11]
André Schiper,et al.
Lightweight causal and atomic group multicast
,
1991,
TOCS.