Achieving Incremental Consistency among Autonomous Replicated Databases

Abstract In this paper, we present methods for supporting autonomous updates in replicated databases. Autonomous updates are of particular importance to applications that cannot tolerate the delay and vulnerability due to synchronous update methods (2PC). We separate the notion of replication consistency, meaning that all copies have the same value and reflect the same update transactions, from behavior consistency, meaning that transaction execution reflects all integrity constraints. The method proposed in this paper supports independent updates during network partitioning, and achieves a consistent final database state on recovery of partitions that reflects all actions that were executed during network partitioning. To this purpose, we describe a reconciliation procedure that applies all actions to each updated data item in the order in which they were originally performed, possibly independently; therefore, reconciliation may require the undo and redo of actions. We formally define the properties that need to hold for our approach to work, and we prove that our reconciliation procedure respects these properties. Our approach is incremental, as it can be applied to any sequence of partitionings and recoveries; reconciliation occurs whenever possible or at the user's desire. However, we trade consistent behavior for update availability: in general, there is no guarantee that the execution will reflect all global consistency constraints. Localization techniques for constraints can be used to support consistent behavior for particular constraint classes.

[1]  Pierangela Samarati,et al.  A classification of update methods for replicated databases , 1991 .

[2]  M. Anderton,et al.  Distributed computer systems: Four case studies , 1987, Proceedings of the IEEE.

[3]  Hector Garcia-Molina,et al.  The Demarcation Protocol: A Technique for Maintaining Linear Arithmetic Constraints in Distributed Database Systems , 1992, EDBT.

[4]  Oddvar Risnes,et al.  Extending Logging for Database Snapshot Refresh , 1987, VLDB.

[5]  Alley Stoughton,et al.  Detection of Mutual Inconsistency in Distributed Systems , 1983, IEEE Transactions on Software Engineering.

[6]  Gio Wiederhold,et al.  Transaction classification to survive a network partition , 1984 .

[7]  Flaviu Cristian,et al.  An efficient, fault-tolerant protocol for replicated data management , 1985, PODS '85.

[8]  David A. Bell,et al.  Distributed database systems , 1992 .

[9]  Hector Garcia-Molina,et al.  The case for controlled inconsistency in replicated data , 1990, [1990] Proceedings. Workshop on the Management of Replicated Data.

[10]  Calton Pu,et al.  Replica control in distributed systems: as asynchronous approach , 1991, SIGMOD '91.

[11]  Arthur J. Bernstein,et al.  Bounded ignorance in replicated systems , 1991, PODS.

[12]  Leslie Lamport,et al.  Time, clocks, and the ordering of events in a distributed system , 1978, CACM.

[13]  Rafael Alonso,et al.  Quasi-Copies: Efficient Data Sharing for Information Retrieval Systems , 1988, EDBT.

[14]  David K. Gifford,et al.  Weighted voting for replicated data , 1979, SOSP '79.

[15]  Akhil Kumar,et al.  Optimizing Voting-Type Algorithms for Replicated Data , 1988, EDBT.

[16]  Andreas Reuter,et al.  The ConTract Model , 1991, Database Transaction Models for Advanced Applications.

[17]  Pierangela Samarati,et al.  The case for independent updates , 1992, [1992 Proceedings] Second Workshop on the Management of Replicated Data.

[18]  Flaviu Cristian,et al.  An efficient, fault-tolerant protocol for replicated data management , 1985, Fault-Tolerant Distributed Computing.

[19]  Charles W. Kaufman,et al.  Using History Information to Process Delayed Database Updates , 1986, VLDB.

[20]  Divyakant Agrawal,et al.  The Tree Quorum Protocol: An Efficient Approach for Managing Replicated Data , 1990, VLDB.