From 47257ffbaa4b01510720cfaf93fb31ea6a38fb46 Mon Sep 17 00:00:00 2001 From: Michael Whittaker Date: Thu, 14 Jan 2021 11:48:02 -0800 Subject: [PATCH] Added read-write quorum systems section to notes. --- notes/notes.tex | 1 + notes/sections/read_write_quorum_systems.tex | 58 ++++++++++++++++++++ 2 files changed, 59 insertions(+) create mode 100644 notes/sections/read_write_quorum_systems.tex diff --git a/notes/notes.tex b/notes/notes.tex index 9601201..3124cb3 100644 --- a/notes/notes.tex +++ b/notes/notes.tex @@ -10,6 +10,7 @@ \end{center} {\input{sections/quorum_systems.tex}} +{\input{sections/read_write_quorum_systems.tex}} \bibliographystyle{plain} \bibliography{references} diff --git a/notes/sections/read_write_quorum_systems.tex b/notes/sections/read_write_quorum_systems.tex new file mode 100644 index 0000000..9c4e5d5 --- /dev/null +++ b/notes/sections/read_write_quorum_systems.tex @@ -0,0 +1,58 @@ +\section{Read-Write Quorum Systems} +\NOTE[mwhittaker]{% + These definitions are adapted from the quorum system definitions. We should + double check that they all make sense or find the definitions in some paper. +} + +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 +quorums}. + +\TODO[mwhittaker]{% + How do we define coteries for read-write quorums? Obviously, we don't want + one read quorum being a strict subset of another read quorum, and we don't + want a write quorum being a strict subset of another write quorum, but can a + read quorum be a strict subset of a write quorum and vice-versa? +} + +\TODO[mwhittaker]{% + Once we define coteries, we can define domination. +} + +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.