2021-01-14 19:32:00 +00:00
|
|
|
\section{Quorum Systems}
|
|
|
|
Given a set $X = \set{x_1, \ldots, x_n}$, a \defword{quorum system} over $X$ is
|
|
|
|
a set $Q = \set{q_1, \ldots, q_m}$ of subsets of $X$, called \defword{quorums},
|
|
|
|
such that every pair of quorums intersect. That is, for every $q_1, q_2 \in
|
|
|
|
Q$, $q_1 \cap q_2 \neq \emptyset$.
|
2021-01-18 03:50:54 +00:00
|
|
|
%
|
2021-01-14 19:32:00 +00:00
|
|
|
A quorum system $Q$ is a \defword{coterie} if there does not exist quorums
|
|
|
|
$q_1, q_2 \in Q$ such that $q_1 \subset q_2$. In other words, a coterie is a
|
|
|
|
quorum system that does not contain some quorum $q_1$ that is a strict subset
|
|
|
|
of some other quorum $q_2$.
|
2021-01-18 03:50:54 +00:00
|
|
|
%
|
|
|
|
Let $P, Q$ be two quorum systems over the same set $X$. $P$ \defword{dominates}
|
|
|
|
$Q$, denoted $P > Q$, if $P \neq Q$ and for every $q \in Q$, there exists some
|
|
|
|
$p \in P$ such that $p \subseteq q$. A quorum system $Q$ is \defword{dominated}
|
|
|
|
if there exists some quorum system $P$ that dominates it.
|
2021-01-14 19:32:00 +00:00
|
|
|
|
2021-01-18 03:50:54 +00:00
|
|
|
We can associate every quorum system $Q$ with a monotone boolean function
|
|
|
|
$f_Q$. For example, the majority quorum system $Q = \set{\set{a, b}, \set{b,
|
|
|
|
c}, \set{a, c}}$ corresponds to the function $f_Q = ab + bc + ac$. The prime
|
|
|
|
implicants of the boolean function correspond to the minimal sets of the quorum
|
|
|
|
system. We say $f \leq g$ if for every $\vec{x}$, $f(\vec{x}) \implies
|
|
|
|
g(\vec{x})$. In other words, $f \leq g$ if $\setst{\vec{x}}{g(\vec{x})}
|
|
|
|
\subseteq \setst{\vec{x}}{f(\vec{x})}$. Consider two quorum systems $Q_1$ and
|
|
|
|
$Q_2$, $Q_1$ dominates $Q_2$ if and only if $f_{Q_2} < f_{Q_1}$.
|
2021-01-14 19:32:00 +00:00
|
|
|
|
2021-01-18 03:50:54 +00:00
|
|
|
\newcommand{\dual}[1]{#1^d}
|
|
|
|
Let the dual $\dual{f}$ of $f$ be $\dual{f}(x) = \bar{f}(\bar{x})$. $\dual{f}$
|
|
|
|
is the function we get if we swap and with or. Note that $\dual{f}$ corresponds
|
|
|
|
to the sets that intersect every set in $f$. We say a monotone function $f$
|
|
|
|
is \defword{dual-minor} if $f \leq \dual{f}$, \defword{dual-major} if $f \geq
|
|
|
|
\dual{f}$, and \defword{self-dual} if $f = \dual{f}$. A function $f$
|
|
|
|
corresponds to a quorum system if and only if $f$ is dual-minor. A quorum
|
|
|
|
system $Q$ is non-dominated if and only if $f_Q$ is self-dual. Every
|
|
|
|
non-dominated coterie can be represented as a composition of the simple
|
|
|
|
majority function (with duplicates). Every coterie can be represented by a
|
|
|
|
composition of and, or, and majority. \cite{ibaraki1993theory} also talks about
|
|
|
|
when a function can be decomposed without duplicates as well as other things
|
|
|
|
involving decomposition. \cite{neilsen1991general} talks about composition as
|
|
|
|
well, and even includes examples for things like grids and trees.
|
2021-01-14 19:32:00 +00:00
|
|
|
|
|
|
|
Let $\sigma: Q \to [0, 1]$ be a discrete probability distribution over the
|
|
|
|
quorums of $Q$ (i.e., $\sum_{q \in Q} \sigma(q) = 1$). We call $\sigma$ a
|
|
|
|
\defword{strategy}. Intuitively, $\sigma$ is a strategy to pick quorums at
|
|
|
|
random. We have the following definitions.
|
|
|
|
\begin{align*}
|
|
|
|
l_\sigma(x) &\defeq \sum_{\setst{q \in Q}{x \in q}} \sigma(q) \\
|
|
|
|
L_\sigma(Q) &\defeq \max_{x \in X} l_\sigma(x) \\
|
|
|
|
L(Q) &\defeq \min_\sigma L_\sigma(Q)
|
|
|
|
\end{align*}
|
|
|
|
$l_\sigma(x)$ is the load on $x$ given some strategy $\sigma$. $L_\sigma(Q)$ is
|
|
|
|
the load on most loaded element $x$. $L(Q)$ is the \defword{load} of the best
|
|
|
|
possible strategy. Intuitively, the lower the load of a quorum system, the
|
|
|
|
higher the throughput it can support.
|
|
|
|
|
|
|
|
\begin{example}
|
|
|
|
Consider the majority quorum system $Q = \set{\set{a, b}, \set{a, c}, \set{b,
|
|
|
|
c}}$ on elements $X = \set{a, b, c}$. Let $\sigma(\set{a, b}) =
|
|
|
|
\sigma(\set{a, c}) = 0.5$ and $\sigma(\set{b, c}) = 0$.
|
|
|
|
\begin{align*}
|
|
|
|
l_\sigma(a) &= \sigma(\set{a, b}) + \sigma(\set{a, c}) = 0.5 + 0.5 = 1 \\
|
|
|
|
l_\sigma(b) &= \sigma(\set{a, b}) + \sigma(\set{b, c}) = 0.5 + 0 = 0.5 \\
|
|
|
|
l_\sigma(c) &= \sigma(\set{a, c}) + \sigma(\set{b, c}) = 0.5 + 0 = 0.5 \\
|
|
|
|
L_\sigma(Q) &= \max(1, 0.5, 0.5) = 1
|
|
|
|
\end{align*}
|
|
|
|
The load of $Q$ with respect to $\sigma$ is 1, but the load $L(Q)$ is not 1
|
|
|
|
because $\sigma$ is not an optimal strategy. If we instead choose
|
|
|
|
$\sigma_{\text{opt}}(-) = \frac{1}{3}$, the load is reduced to $\frac{2}{3}$
|
|
|
|
which is optimal.
|
|
|
|
\end{example}
|
|
|
|
|
2021-01-18 03:50:54 +00:00
|
|
|
\cite{naor1998load} prove that if a quorum system dominates another, it has
|
|
|
|
lower or equal load. This shows that there always is a non-dominated coterie
|
|
|
|
that has the lowest possible load. If we're trying to optimize for load, this
|
|
|
|
tells us that we limit ourselves to non-dominated coteries.
|
|
|
|
|
2021-01-14 19:32:00 +00:00
|
|
|
The \defword{resilience} or \defword{fault tolerance} of a quorum system $Q$ is
|
|
|
|
the largest number $f$ such that for every subset $F \subseteq X$ with $|F| =
|
|
|
|
f$, there still exists some quorum $q \in Q$ such that $q \cap F = \emptyset$.
|
|
|
|
Intuitively, a quorum system has fault tolerance $f$ if we can fail an
|
|
|
|
arbitrary set of $f$ elements and still have some quorum left.
|