2.2 Replication Protocols
2.2.2 Quorum Based Replication Protocols
In quorum based replication protocols, before executing an operation it must be ensured that it is possible to read/write from/to a read/write quorum. In its generic form, a quorum system is a set system defined over a set of replicas. This set system holds the property that every two sets in the set system have non-empty intersection. Every set of the set system is a write quorum, meaning that a write operation must be executed by all of its members. A read-write quorum system for a set of replicas is defined over two set systems R and W , being W a quorum system and R a set system with the property that every member of R has non- empty intersection with every member of W .
A quorum based replication protocol can be described using the abstract replica- tion protocol as:
1. (RE) the client sends its requests to one of the replicas.
2. (SC) In the server coordination phase, inquires are sent to all replicas, after which a read/write quorum containing the most up to date data is selected. 3. (EX) In the execution phase, in case of a read operation it is sent to one of
the quorum members holding the most up to date version of the data. Write operations are sent to all members of the quorum.
4. (AC) The agreement coordination phase ensures that none of the quorum members have failed and that all them have executed the operation, in the case of write operations.
5. (END) After completion of the agreement coordination phase the operation result is sent back to the client.
The existing quorum based replication protocols may be classified in voting and grid quorums which are detailed in the following Sections.
2.2. REPLICATION PROTOCOLS 17 2.2.2.1 Voting Quorums
Voting protocols such as the majority quorum [Tho79] and weighted voting [Gif79] are representatives of a class of quorum based replication protocols. In these, each replica has a number of votes associated to it and quorums are defined so that the number of votes necessary to form a quorum exceeds half of the total votes. Ad- ditionally a quorum must fulfill the requirements that 2wq > n and rq + wq > n, where n stands for the total of votes, wq for write quorum and rq for read quorum. In order to tolerate replicas failure and systems dynamics, several works proposed the definition of these quorum levels dynamically according to the number of replicas [ES83, Her87, BGMS89, JM90].
Voting with witnesses [PL91, Pâr86], with ghosts [vRT88] and with bystanders [Pâr89] are several variations on voting protocols dealing with the reduction of storage required and number of replicas necessary to define a quorum in the first case and to deal with network partition failures in the other cases.
Hierarchical quorum consensus [Kum91] is a generalization of quorum consensus. It logically organizes the replicas in a multilevel tree (the root of the tree is at level 0), with leaves corresponding to the replicas and nodes to logical groups. A node at a certain level is viewed as a logical group which in turn consists of its subgroups. In order to obtain a quorum, at each level of the tree beyond the root level, a majority the nodes must be taken, and for each of those nodes a majority of its sub-nodes.
A generalization of weighted voting is the multidimensional voting presented in [AAC91]. The aim of multidimensional voting is to provide a protocol with the simplicity of the voting protocol but with the generality of quorum sets. These are showed to be more general than voting as there are quorum sets that can not be obtained by voting [GMB85]. In multidimensional voting the vote assignments to each replica and the quorums are k-dimensional vectors of non-negative in- tegers. The quorum has a two dimension definition, a vote quorum which is a k-dimensional integer vector defining the quorum level for each dimension, and a number l, 1 ≤ l ≤ k, which is the number of dimensions of vote assignments for which a quorum must be obtained.
2.2.2.2 Grid Quorums
Quorum based replication protocols focused essentially on data availability res- ulting in high available solutions but without noticeable performance improve- ment. This is a result of these protocols requiring operations to be executed by a large number of replicas, reducing the possibility of load sharing. Efforts
to also improve systems performance, resulted in the definition of grid quor- ums [CAA92, Kum91, NW98]. In the grid protocol the N replicas are logically organized in a rectangular m × n grid. A read quorum is formed by a replica from each column of the grid and a write quorum is formed by the union of a read quorum with all the replicas of a column of the grid. The use of incomplete or hollow grids [KRS93], was suggested as an improvement on the availability of grid protocols as well as an improvement on its flexibility allowing the definition of quorums that could not be obtained with the grid protocol.
The triangular grid [EL75], is a grid protocol where replicas are arranged in a number of rows such that row i (i > 1) has i replicas. In it, a write quorum is the union of one complete row and one replica from every row below it. A read quorum can be either one replica from each row or a write quorum. A general- ization of the triangle grid releasing the requirement that row i has i replicas has been presented as the crumbling walls protocol [PW97].
Improvements on rectangular grids availability have been proposed in [WB92, TPK95, NW98]. These protocols require quorums to be formed using paths from left to right, i.e. horizontal paths and from top to bottom, i.e. vertical paths. A read quorum is a horizontal path while a write quorum is a horizontal and a ver- tical path.