Database Replication with Availability and Consistency Guarantees through Failure-Handling

In this paper we present an approach to fault-tolerant stream processing. In contrast to previous techniques that handle node failures, our approach also tolerates network failures and network partitions. The approach is based on a principled trade-off between consistency and availability in the face of failure, that (1) ensures that all data on an input stream is processed within a specified time threshold, but (2) reduces the impact of failures by limiting if possible the number of results produced based on partially available input data, and (3) corrects these results when failures heal. Our approach is well-suited for applications such as environment monitoring, where high availability and "real-time" response is preferable to perfect answers. Our approach uses replication and guarantees that all processing replicas achieve state consistency, both in the absence of failures and after a failure heals. We achieve consistency in the former case by defining a data-serializing operator that ensures that the order of tuples to a downstream operator is the same at all the replicas. To achieve consistency after a failure heals, we develop approaches based on checkpoint/redo and undo/redo techniques.

[1]  Carlo Zaniolo,et al.  Query Languages and Data Models for Database Sequences and Data Streams , 2004, VLDB.

[2]  Philip A. Bernstein,et al.  Implementing recoverable requests using queues , 1990, SIGMOD '90.

[3]  Joseph M. Hellerstein,et al.  Partial results for online query processing , 2002, SIGMOD '02.

[4]  Gustavo Alonso,et al.  Providing High Availability in Very Large Worklflow Management Systems , 1996, EDBT.

[5]  Jennifer Widom,et al.  Adaptive filters for continuous queries over distributed data streams , 2003, SIGMOD '03.

[6]  Theodore Johnson,et al.  Gigascope: a stream database for network applications , 2003, SIGMOD '03.

[7]  Mark R. Tuttle,et al.  A theory of redo recovery , 2003, SIGMOD '03.

[8]  Rajeev Motwani,et al.  Chain: operator scheduling for memory minimization in data stream systems , 2003, SIGMOD '03.

[9]  Jennifer Widom,et al.  Models and issues in data stream systems , 2002, PODS.

[10]  Jennifer Widom,et al.  Flexible time management in data stream systems , 2004, PODS.

[11]  Frederick Reiss,et al.  TelegraphCQ: Continuous Dataflow Processing for an Uncertain World , 2003, CIDR.

[12]  Eric A. Brewer,et al.  Lessons from Giant-Scale Services , 2001, IEEE Internet Comput..

[13]  Jennifer Widom,et al.  Approximate replication , 2003 .

[14]  Nick Feamster,et al.  Measuring the effects of internet path faults on reactive routing , 2003, SIGMETRICS '03.

[15]  Qiang Chen,et al.  Aurora : a new model and architecture for data stream management ) , 2006 .

[16]  Abhinandan Das,et al.  Approximate join processing over data streams , 2003, SIGMOD '03.

[17]  Michael Stonebraker,et al.  High-availability algorithms for distributed stream processing , 2005, 21st International Conference on Data Engineering (ICDE'05).

[18]  David J. DeWitt,et al.  The Niagara Internet Query System , 2001, IEEE Data Eng. Bull..

[19]  Andreas Reuter,et al.  Transaction Processing: Concepts and Techniques , 1992 .

[20]  Joseph M. Hellerstein,et al.  Eddies: continuously adaptive query processing , 2000, SIGMOD '00.

[21]  Dennis Shasha,et al.  The dangers of replication and a solution , 1996, SIGMOD '96.

[22]  L. Alvisi,et al.  A Survey of Rollback-Recovery Protocols , 2002 .

[23]  Ying Xing,et al.  The Design of the Borealis Stream Processing Engine , 2005, CIDR.

[24]  Irene Greif,et al.  Replicated document management in a group communication system , 1988, CSCW '88.

[25]  Peter A. Tucker,et al.  Dealing with Disorder ∗ , 2003 .

[26]  Michael J. Franklin,et al.  Remembrance of Streams Past: Overload-Sensitive Management of Archived Streams , 2004, VLDB.

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

[28]  Michael Stonebraker,et al.  Operator Scheduling in a Data Stream Manager , 2003, VLDB.

[29]  Jennifer Widom,et al.  The CQL continuous query language: semantic foundations and query execution , 2006, The VLDB Journal.

[30]  Gustavo Alonso,et al.  Exotica/FMQM: A Persistent Message-Based Architecture for Distributed Workflow Management , 1995 .

[31]  Gustavo Alonso,et al.  Workflow Management: The Next Generation of Distributed Processing Tools , 1997 .

[32]  Ying Xing,et al.  Scalable Distributed Stream Processing , 2003, CIDR.

[33]  Gustavo Alonso,et al.  WFMS: The Next Generation of Distributed Processing Tools , 1997, Advanced Transaction Models and Architectures.

[34]  Hector Garcia-Molina,et al.  How to assign votes in a distributed system , 1985, JACM.

[35]  Eric A. Brewer,et al.  Highly available, fault-tolerant, parallel dataflows , 2004, SIGMOD '04.