\begin{frame} \frametitle{Les modèles de cohérences} \begin{columns} \column{0.6\textwidth} \footnote{Perrin, \emph{Concurrence et cohérence dans les systèmes répartis}, 2017} \resizebox{\columnwidth}{!}{ \includegraphics{images/carte_criteres.png} } \column{0.4\columnwidth} \begin{block}{Les classes de cohérences} 2 Grandes familles : \begin{itemize} \item Cohérence Forte \item Cohérence Faible : \begin{itemize} \item Localité d'état (SL) \item Convergence (EC) \item Validité (V) \end{itemize} \end{itemize} \end{block} \end{columns} \end{frame} \begin{frame} \frametitle{Validité (V)} \begin{block}{Définition} Il existe, un ensemble cofini d'événement tel que pour chacun d'entre eux une linéarisation de toutes les opérations d'écriture les justifient. \\ \end{block} \begin{columns} \column{0.4\columnwidth} \begin{tcolorbox}[colframe=green!50!black] \input{schemas/validite_hc_1} \end{tcolorbox} \column{0.5\columnwidth} \begin{math} \begin{array}{ll} E' = & \{r/(2,1)^\omega, r/(1,2)^\omega\} \\ & w(2) \bullet w(1) \bullet \textcolor{red}{r/(2,1)^\omega} \\ & w(1) \bullet w(2) \bullet \textcolor{red}{r/(1,2)^\omega} \\ \end{array} \end{math} \end{columns} \begin{columns} \column{0.4\columnwidth} \begin{tcolorbox}[colframe=red!50!black] \input{schemas/validite_hc_2} \end{tcolorbox} \column{0.5\columnwidth} $E' = \{r/(0,1)^\omega, r/(1,2)^\omega\}$. \\ Il n'existe pas de linéarisation des opérations d'écritures qui justifie $r/(0,1)^\omega$. \end{columns} \end{frame} \begin{frame} \frametitle{Localité d'état} \begin{block}{Définition} Pour tout processus $p$, il existe une linéarisation contenant toutes les lectures pures de $p$. Respectant l'ordre local de ces lectures. \\ \end{block} \begin{columns} \column{0.4\columnwidth} \begin{tcolorbox}[colframe=green!50!black] \input{schemas/localiteetat_hc_1} \end{tcolorbox} \column{0.5\columnwidth} \begin{math} \begin{array}{l} \textcolor{blue}{C_{p_0} = \{r/(0,0), r/(0,2)^\omega, w(2)\}}, \\ \textcolor{red}{C_{p_1} = \{r/(0,0), r/(0,1)^\omega, w(1)\}}, \\ \textcolor{blue}{r/(0,0) \bullet w(2) \bullet r/(0,2)^\omega} \\ \textcolor{red}{r/(0,0) \bullet w(1) \bullet r/(0,1)^\omega} \\ \end{array} \end{math} \end{columns} \begin{columns} \column{0.4\columnwidth} \begin{tcolorbox}[colframe=red!50!black] \input{schemas/localiteetat_hc_2} \end{tcolorbox} \column{0.5\columnwidth} $E'_{p_0} = \{r/(0,0), r/(2,1)^\omega\},$ \newline $r/(0,0) \bullet w(2) \bullet w(1) \bullet r/(2,1)^\omega$ \newline $E'_{p_1} = \{r/(0,1), r/(2,1)^\omega\}$. \newline Il n'existe pas de linéarisation de $p_1$ respectant la localité d'état. \end{columns} \end{frame} \begin{frame} \frametitle{Convergence (EC)} \begin{block}{Définition} Il existe un ensemble cofini d'événements dont chacun peut être justifié par un seul et même état. \\ \end{block} \begin{columns} \column{0.4\columnwidth} \begin{tcolorbox}[colframe=green!50!black] \input{schemas/convergence_hc_1} \end{tcolorbox} \column{0.5\columnwidth} $E' = \{r/(1,2)^\omega, r/(1,2)^\omega\}$ \newline $\delta = ((1,2), \emptyset)$ est un état possible justifiant $E'$. \end{columns} \begin{columns} \column{0.4\columnwidth} \begin{tcolorbox}[colframe=red!50!black] \input{schemas/convergence_hc_2} \end{tcolorbox} \column{0.5\columnwidth} $E' = \{r/(1,2)^\omega, r/(2,1)^\omega\}$. \newline Il n'existe aucun état possible justifiant $E'$ puisque deux lectures infinies sont incohérentes. \end{columns} \end{frame} \begin{frame} \frametitle{Cohérence Causale} \begin{columns} \column{0.6\textwidth} \resizebox{\columnwidth}{!}{ \includegraphics{images/carte_criteres.png} } \column{0.4\columnwidth} \begin{block}{Les classes de la cohérence causale} \begin{itemize} \item \textbf{WCC}: Weak Causal Consistency (V) \item \textbf{CCv}: Causal Convergence (V, EC) \end{itemize} \end{block} On respecte les propriétés suivantes : \begin{itemize} \item Localité d'état (SL) \item Convergence (EC) \end{itemize} \end{columns} \end{frame}