Database Replication and Clustering for High Availability

Database Replication and Clustering for High Availability

Wenbing Zhao (Department of Electrical and Computer Engineering, Cleveland State University, USA)
DOI: 10.4018/978-1-4666-5888-2.ch168

Chapter Preview



A database management system consists of a set of data and a number of processes that manage the data. These processes are often collectively referred to as database servers. The core programming model used in database management systems is called transaction processing. In this programming model, a group of read and write operations on the some data set are demarcated within a transaction. A transaction has the following ACID properties (Gray & Reuter, 1993):

  • Atomicity: All operations on the data set agree on the same outcome. Either all the operations succeed (the transaction commits), or none of them are (the transaction aborts).

  • Consistency: If the database is consistent at the beginning of a transaction, then the database remains consistent after the transaction commits.

  • Isolation: A transaction does not read or overwrite a data item that has been accessed by another concurrent transaction.

  • Durability: The update to the data set becomes permanent once the transaction is committed.

Key Terms in this Chapter

Split-Brain Syndrome: This problem may happen if the network partitions in a database cluster, and if each partition makes incompatible decisions on the outcome of transactions or their orders. To prevent this problem, typically only the main partition is allowed to survive.

Database Recovery (Roll-Backward, Roll-Forward): Recovery is needed when a database instance that has failed is restarted or a surviving database instance takes over a failed one. In roll-backward recovery, the active transactions at the time of failure are aborted and the resourced allocated for those transactions are released. In roll-forward recovery, the updates recorded in the redo log are transferred to the database so that they are not lost.

Database Cluster (Shared-Everything, Shared-Nothing): A database management system runs on a group of computers interconnected by a high speed network. In the cluster, multiple database server instances are deployed. If one instance fails, another instance takes over very quickly to ensure high availability. In the shared-everything design, all nodes can access a shared stable storage device. In the shared-nothing design, each node has its own cache buffer and stable storage.

Database Replication (Eager, Lazy): Multiple instances of a database management system are deployed in different computers (often located in different sites). Their state is synchronized closely to ensure replica consistency. In eager replication, the updates are propagated and applied to all replicas within the transaction boundary. In lazy replication, the changes are propagated from one replica to others asynchronously.

Transaction: A transaction is a group of read/write operations on the some data set that succeed or fail atomically. More accurately, a transaction has the atomicity, consistency, isolation and durability properties.

Complete Chapter List

Search this Book: