2021-01-14 19:48:02 +00:00
|
|
|
\section{Read-Write Quorum Systems}
|
|
|
|
Given a set $X = \set{x_1, \ldots, x_n}$, a \defword{read-write quorum system}
|
|
|
|
over $X$ is a pair of sets $Q = (R, W)$ of subsets of $X$ such that every $r
|
|
|
|
\in R$ intersects every $w \in W$. The elements $r \in R$ are called
|
|
|
|
\defword{read quorums}, and the elements $w \in W$ are called \defword{write
|
2021-01-18 04:11:24 +00:00
|
|
|
quorums}. Read-write quorum systems are also called bicoteries.
|
|
|
|
%
|
|
|
|
$(R, W)$ is a coterie if both $R$ and $W$ are minimal. $(R_1, W_1)$ dominates
|
|
|
|
$(R_2, W_2)$ if $R_1$ dominates $R_2$ and $W_1$ dominates $W_2$. Again, we can
|
|
|
|
view a read-write quorum system $(R, W)$ as a pair of monotone functions $f_R$
|
|
|
|
and $f_W$. $(f_R, f_W)$ is a read-write quorum sytem if $f_R \leq \dual{f_W}$.
|
|
|
|
It is a non-dominated coterie if $f_R = \dual{f_W}$. Thus, to generate a
|
|
|
|
non-dominated bicoterie, let $f_R$ be an arbitrary set of quorums and let $f_W$
|
|
|
|
be $\dual{f_R}$.
|
2021-01-14 19:48:02 +00:00
|
|
|
|
|
|
|
Let $\sigma_R: R \to [0, 1]$ and $\sigma_W: W \to [0, 1]$ be a discrete
|
|
|
|
probability distribution over the read and write quorums of $Q$. We call
|
|
|
|
$\sigma$ a \defword{strategy}. Let $0 \leq p_r \leq 1$ be the probability of
|
|
|
|
performing a read and $p_w = 1 - p_r$ be the probability of performing a write.
|
|
|
|
We have the following definitions.
|
|
|
|
\begin{align*}
|
|
|
|
l_{\sigma,p_r,p_w}(x)
|
|
|
|
&\defeq p_r \cdot \parens*{\sum_{\setst{r \in R}{x \in r}} \sigma_R(r)} +
|
|
|
|
p_w \cdot \parens*{\sum_{\setst{w \in W}{x \in w}} \sigma_W(w)} \\
|
|
|
|
L_{\sigma,p_r,p_w}(Q) &\defeq \max_{x \in X} l_{\sigma,p_r,p_w}(x) \\
|
|
|
|
L_{p_r,p_w}(Q) &\defeq \min_\sigma L_{\sigma,p_r,p_w}(Q)
|
|
|
|
\end{align*}
|
|
|
|
$l_{\sigma,p_r,p_w}(x)$ is the load on $x$ given some strategy $\sigma$ and
|
|
|
|
some workload $p_r,p_w$. $L_{\sigma,p_r,p_w}(Q)$ is the load on most loaded
|
|
|
|
element $x$. $L{p_r,p_w}(Q)$ is the \defword{load} of the best possible
|
|
|
|
strategy.
|
|
|
|
|
|
|
|
The \defword{read resilience} or \defword{read fault tolerance} of a quorum
|
|
|
|
system $Q$ is the largest number $f_r$ such that for every subset $F \subseteq
|
|
|
|
X$ with $|F| = f_r$, there still exists some read quorum $r \in R$ such that $r
|
|
|
|
\cap F = \emptyset$.
|
|
|
|
%
|
|
|
|
The \defword{write resilience} or \defword{write fault tolerance} of a quorum
|
|
|
|
system $Q$ is the largest number $f_w$ such that for every subset $F \subseteq
|
|
|
|
X$ with $|F| = f_w$, there still exists some write quorum $w \in W$ such that $w
|
|
|
|
\cap F = \emptyset$.
|
|
|
|
%
|
|
|
|
The \defword{resilience} or \defword{fault tolerance} of a quorum system is the
|
|
|
|
minimum of its read resilience and write resilience. Intuitively, a quorum
|
|
|
|
system has read fault tolerance $f_r$ if we can fail an arbitrary set of $f_r$
|
|
|
|
elements and still have some read quorum left; a quorum system has write fault
|
|
|
|
tolerance $f_w$ if we can fail an arbitrary set of $f_w$ elements and still
|
|
|
|
have some write quorum left; and a quorum system has fault tolerance $f$ if we
|
|
|
|
can fail an arbitrary set of $f$ elements and still have some read quorum and
|
|
|
|
some write quorum left.
|