1 Quorum System
1 Quorum System
1 Quorum System
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
• replicated databases,<br />
• mutual exclusion,<br />
• read/write storage, and<br />
• group communication.<br />
We’ll cover classical quorum systems in the class and evaluate the quorum systems using<br />
various measures. Specifically, we’ll look into following two applications of quorum systems:<br />
1. distributed read/write storage (Lamport’s register) and<br />
2. consensus.<br />
1.2.1 Replicated Databases<br />
A major goal of the Replicated databases is to ensure consistency in the context of failures,<br />
and <strong>Quorum</strong> system was first used to implement them by [Thomas, 1979]. He proposed a<br />
majority approach to achieve the consensus in order to maintain the concurrency control<br />
over multiple copies of a replicated database. The majority approach works as follows. To<br />
write data into database, the writer would timestamp the data (Lamport timestamp) and<br />
write it to a majority of servers. Then to read data from the database, the reader would<br />
contact a majority (possibly different) and return the data with the highest timestamp.<br />
Later, arbitrary quorum sizes (not just majority) were also allowed, but all of them required<br />
the non-empty pairwise intersections between quorums (the main reason behind consistency<br />
of <strong>Quorum</strong> system). In fact, separate read and write quorums are also studied where only<br />
quorum of different classes need to intersect (for example, among read and write quorums,<br />
but not among read quorums).<br />
1.3 <strong>System</strong> Model<br />
Let S = {s 1 , s 2 , . . . , s n } be the set of n processes that constitute the distributed system.<br />
Each process is running its own protocol. For now, we assume a fixed set of processes, but<br />
this model can be extended to deal with system with dynamic process membership, where<br />
processes join or leave the system (and hence S is not fixed).<br />
Definition 2 A process is a state machine (or I/O automaton), which can be in various<br />
states following the various process actions (called transitions), as defined below. Every<br />
process has input, internal, and output actions, defined by in(s), int(s), out(s) respectively,<br />
for a given process s. External actions to a process are either the input to it (recv) or output<br />
to other process (send). More formally,<br />
2