This commit is contained in:
Amaury
2024-04-03 09:13:23 +02:00
committed by Amaury JOLY
parent 61d7f9a8f4
commit 29a2223ed0
58 changed files with 2031 additions and 6 deletions

View File

@ -0,0 +1,32 @@
\begin{frame}
\frametitle{Conclusion}
\begin{block}{Bilan Moral}
\begin{itemize}
\item Mon intégration à Parsec
\item Ma présence au laboratoire et mon rythme de travail
\end{itemize}
\end{block}
\pause
\begin{block}{La suite ?}
\begin{itemize}
\item Étudier des applications existantes d'édition collaborative adoptant de la cohérence faible.
\item Continuer mon travail avec Parsec :
\begin{itemize}
\item fournir un rapport de l'état de l'art adapté à leur problématique
\item fournir une preuve de concept de l'éditeur collaboratif
\end{itemize}
\end{itemize}
\end{block}
\end{frame}
\begin{frame}
\frametitle{Merci !}
Place aux questions !
\end{frame}

View File

@ -0,0 +1,14 @@
\begin{frame}
\frametitle{La cohérence faible appliquée aux milieux malveillant}
\begin{block}{Plusieurs directions de recherches :}
\begin{itemize}
\item Le critère de cohérence réduit par design le champ des attaques malicieuses possibles.
\item Le critère de cohérence introduit de nouveaux types d'erreurs byzantines.
\begin{itemize}
\item Hypothèse la plus étayée sur le sujet. Mais pas de réponse satisfaisante.
\end{itemize}
\end{itemize}
\end{block}
\end{frame}

View File

@ -0,0 +1,82 @@
\begin{frame}
\frametitle{Les classes de cohérences}
\begin{columns}
\column{0.6\textwidth}
\begin{figure}
\resizebox{\columnwidth}{!}{
\includegraphics{images/carte_criteres.png}
}
\caption{Perrin, \emph{Concurrence et cohérence dans les systèmes répartis}, 2017}
\end{figure}
\column{0.4\columnwidth}
\begin{block}{Les classes de cohérences}
Deux grandes familles :
\begin{itemize}
\item Cohérence Forte
\item Cohérence Faible :
\begin{itemize}
\item Convergence (EC)
\item Localité d'état (SL)
\item Validité (V)
\end{itemize}
\end{itemize}
\end{block}
\end{columns}
\end{frame}
\begin{frame}
\frametitle{Convergence (EC)}
\begin{block}{Définition}
Les \textbf{lectures infinies} d'un document n'étant plus soumis à \textbf{aucune opération d'écriture} doit retourner pour tout nœud du système \textbf{la même valeur}.
\end{block}
\begin{figure}
\centering
\resizebox{0.7\columnwidth}{!}{
\begin{tcolorbox}[colframe=green!50!black]
\input{schemas/convergence}
\end{tcolorbox}
}
\end{figure}
\end{frame}
\begin{frame}
\frametitle{Localité d'état (SL)}
\begin{block}{Définition}
Chaque processus, indépendamment des autres, doit garder une cohérence de ses lectures en fonction de leurs ordres locaux.
\end{block}
\begin{figure}
\centering
\resizebox{0.7\columnwidth}{!}{
\begin{tcolorbox}[colframe=green!50!black]
\input{schemas/localiteetat}
\end{tcolorbox}
}
\end{figure}
\end{frame}
\begin{frame}
\frametitle{Validité (V)}
\begin{block}{Definition}
Chaque lecture doit résulter d'une suite d'opérations d'écriture valides impliquant l'ensemble des opérations d'écriture connue par le nœud à cet instant.
\end{block}
\begin{figure}
\centering
\resizebox{0.7\columnwidth}{!}{
\begin{tcolorbox}[colframe=green!50!black]
\input{schemas/validite}
\end{tcolorbox}
}
\end{figure}
\end{frame}

View File

@ -0,0 +1,61 @@
\begin{frame}
\frametitle{La cohérence selon Lamport}
Leslie Lamport :
\begin{itemize}
\item Initialement ingénieur chez Intel dans les années 60.
\item Il a travaillé sur les premières problématiques d'architectures multicœurs.
\item Il a ainsi posé les bases de l'informatique distribuée.
\end{itemize}
Il a (entre autre) proposé une formalisation mathématique du comportement attendu d'un système réparti. \\
Il propose 3 registres permettant de spécifier un comportement séquentiel dans un environnement distribué.
\end{frame}
\begin{frame}
\frametitle{Sûreté}
\begin{block}{Définition}
Chaque opération de \textbf{lecture} réalisée dans le même espace \textbf{non-concurrent} doit fournir le même resultat.
\end{block}
\begin{figure}
\input{schemas/linearisation_surete_hc}
\end{figure}
\end{frame}
\begin{frame}
\frametitle{Régularité}
\begin{block}{Définition}
Une \textbf{opération de lecture concurrente à une opération d'écriture} doit fournir une valeur \textbf{antérieure ou postérieure à l'écriture}.
\end{block}
\begin{figure}
\input{schemas/linearisation_regularite_hc}
\end{figure}
\end{frame}
\begin{frame}
\frametitle{Atomicité}
\begin{block}{Definition}
Si \textbf{deux opérations de lecture sont non-concurrentes} alors la seconde doit fournir une valeur \textbf{au moins aussi récente que} la précédente.
\end{block}
\begin{figure}
\input{schemas/linearisation_atomicite_hc}
\end{figure}
\end{frame}
\begin{frame}
\frametitle{Cohérence Atomique ($C_\top$)}
\begin{block}{Définition}
La cohérence atomique est le critère de cohérence le plus "fort".
\begin{itemize}
\item Propose une interactivité très faible.
\item Nécessite une synchronisation forte entre chaque opération.
\begin{itemize}
\item Chaque opération est bloquante et doit attendre la fin des opérations précédentes pour être exécutée.
\end{itemize}
\item Elle est utilisée comme référence pour les autres classes de cohérence.
\end{itemize}
\end{block}
\end{frame}

View File

@ -0,0 +1,8 @@
\subsection*{Cohérence forte}
\include{consistency/forte.tex}
\subsection*{Les compromis de la cohérence faible}
\include{consistency/faible.tex}
\subsection*{Dans un contexte malveillant ?}
\include{consistency/byzantin.tex}

View File

@ -0,0 +1,32 @@
\begin{frame}
\frametitle{Un système distribué}
\begin{block}{Définition}
Un système distribué est un ensemble d'\textbf{acteurs} capable de communiquer \textbf{les uns avec les autres} et travaillant ensemble à la réalisation d'une \textbf{tâche commune}.
\end{block}
\begin{figure}
\centering
\resizebox{0.75\columnwidth}{!}{
\includegraphics{images/distributedsystems.png}
}
\caption{Thibaut Arribe, \emph{Conception des chaînes éditoriales}}
\end{figure}
\end{frame}
\begin{frame}
\frametitle{Un système distribué est un système vivant}
Les systèmes distribués évoluent au fil du temps
Il y a plusieurs approches permettant d'étudier ces changements :
\begin{itemize}
\item concentrés sur le \textbf{churn} (ajout ou retrait de nœuds)
\item concentrés sur les \textbf{messages}
\item concentrés sur la \textbf{connectivité}
\item concentrés sur les \textbf{états} $\Leftarrow$
\item sûrement d'autres... ?
\end{itemize}
\end{frame}

View File

@ -0,0 +1,2 @@
\subsection*{Définition}
\include{distr_sys/bases}

Binary file not shown.

After

Width:  |  Height:  |  Size: 159 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

View File

@ -0,0 +1,2 @@
\subsection*{Présentation de l'entreprise}
\include{intro/suite.tex}

View File

@ -0,0 +1,16 @@
\begin{frame}
\frametitle{Présentation}
\begin{itemize}
\item Amaury JOLY
\item Master Informatique
\begin{itemize}
\item Option Fiabilité Sécurité Informatique (FSI)
\end{itemize}
\end{itemize}
\end{frame}

View File

@ -0,0 +1,61 @@
\begin{frame}
\frametitle{Présentation de l'entreprise}
\begin{itemize}
\item D'avril à août 2023
\item Collaboration entre Parsec (SCILLE) et le Laboratoire d'Informatique et Systèmes (AMU)
\end{itemize}
\pause
\begin{itemize}
\item Présentation de Scille.
\begin{itemize}
\item Scille est une startup bordelaise initialement prestataire de services.
\item Ils ont développé en parallèle de leurs activités un logiciel de partage de fichier dans une approche "zero-trust"
\item Dû à la popularité du logiciel, les activités de l'entreprises se sont tournées exclusivement sur le développement de Parsec
\end{itemize}
\end{itemize}
\end{frame}
\begin{frame}
\frametitle{Présentation du logiciel}
\begin{itemize}
\item Parsec fonctionne dans une approche "zero-trust"
\begin{itemize}
\item Adopte un chiffrement de bout en bout
\item Parsec est donc une architecture de logiciels comportant trois parties :
\begin{itemize}
\item Une PKI
\item Un serveur de stockage des fichiers
\item Un serveur de stockage des méta-données
\end{itemize}
\end{itemize}
\item Parsec souhaite ajouter une fonctionnalité d'édition Collaborative :
\begin{itemize}
\item En restant cohérent avec l'approche "zero-trust" (donc impliquant probablement de la décentralisation)
\item Proposant une approche innovante de l'éditeur collaboratif (basse latence, haute disponibilité)
\end{itemize}
\item Le sujet est donc \textit{Cohérence faible appliquée au cloud pour une application distribuée}
\end{itemize}
\end{frame}
\begin{frame}
\frametitle{Présentation du Laboratoire}
\begin{itemize}
\item J'ai été accueilli au LIS qui est un laboratoire de recherche en Informatique
\item Sous l'encadrement d'Emmanuel GODARD et Corentin TRAVERS.
\item Au sein de l'équipe DALGO
\item Rythme très libre et porté sur l'autonomie :
\begin{itemize}
\item Des réunions hebdomadaires avec mes tuteurs
\item La participation aux séminaires et conférences de l'équipe de recherche
\item L'inclusion dans un laboratoire de recherche (rencontre d'autres stagiaires / doctorants / chercheurs)
\end{itemize}
\end{itemize}
\end{frame}

View File

@ -0,0 +1,65 @@
\documentclass{beamer}
\usetheme{Boadilla}
\usecolortheme{orchid}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[french]{babel}
\usepackage{stackengine}
\addtobeamertemplate{navigation symbols}{}{%
\usebeamerfont{footline}%
\usebeamercolor[fg]{footline}%
\hspace{1em}%
\insertframenumber/\inserttotalframenumber
}
\usepackage{ulem}
\usepackage{tkz-tab}
\setbeamertemplate{blocks}[rounded]%
[shadow=true]
\AtBeginSection{%
\begin{frame}
\tableofcontents[sections=\value{section}]
\end{frame}
}
\usepackage{tikz}
\usetikzlibrary{positioning}
\usetikzlibrary{calc}
\usetikzlibrary{arrows.meta}
\usepackage{tcolorbox}
\title[bwconsistency]{Présentation de Stage M2 FSI}
\subtitle{Étude de la cohérence dans les systèmes distribués}
\author[JOLY Amaury]{JOLY Amaury\\ \textbf{Encadrants :} GODARD Emmanuel, TRAVERS Corentin }
% \\[2ex] \includegraphics[scale=0.1]{./img/amu.png}
\institute[LIS, Scille]{LIS-LAB, Scille}
\date{\today}
\AtBeginSection{}
\begin{document}
\maketitle
\begin{frame}{Table des matières}
\tableofcontents
\end{frame}
\section{Entre industrie et recherche}
\input{intro/index.tex}
\section{Les systèmes distribués et l'étude de la cohérence}
\input{distr_sys/index.tex}
\section{Les compromis dans la gestion de la cohérence}
\input{consistency/index.tex}
\section{Mes contributions}
\input{work/index.tex}
\section{Ce qui nous attend}
\input{conclusion/index.tex}
\end{document}

Binary file not shown.

After

Width:  |  Height:  |  Size: 72 KiB

View File

@ -0,0 +1,35 @@
\resizebox{\columnwidth}{!}{
\begin{tikzpicture}[
roundnode/.style={circle, draw=black, fill=black, very thick, minimum size=1pt,},
ignorednode/.style={circle, draw=black!20, fill=black!20, very thick, minimum size=1pt,},
arrow/.style={|->, thick,},
message/.style={->, blue!50, dashed, -{Circle[length=4pt,]}},
]
\node[roundnode] (11) {};
\node[left] at (11.west) {$p_0$};
\node[above] at (11.north) {$ecrire(1)$};
\node[roundnode] (12) [right=50pt of 11] {};
\node[above] at (12.north) {$ecrire(0)$};
\node[roundnode] (13) [right=50pt of 12] {};
\node[above] at (13.north) {$lire/\emptyset$};
\draw[arrow] (11) -- (12);
\draw[arrow] (12) -- (13);
\node[roundnode] (21) [below=10pt of 11] {};
\node[left] at (21.west) {$p_1$};
\node[below] at (21.south) {$ecrire(2)$};
\node[roundnode] (22) [right=50pt of 21] {};
\node[below] at (22.south) {$lire/2$};
\node[roundnode] (23) [right=50pt of 22] {};
\node[below] at (23.south) {$lire/\emptyset$};
\draw[arrow] (21) -- (22);
\draw[arrow] (22) -- (23);
\draw (23) -- (13);
\draw[dashed] ($(13)!0.5!(12) + (0,1)$) -- ++(0, -2.9);
\end{tikzpicture}
}

View File

@ -0,0 +1,31 @@
\resizebox{\columnwidth}{!}{%
\begin{tikzpicture}[
roundedrectangle/.style={draw, rounded corners, rectangle, minimum height=10pt, minimum width=20pt},
invisible/.style={draw=none, fill=none},
]
\node[invisible] (10) {};
\node[roundedrectangle, minimum width=150pt] (11) [right=100pt of 10] {$ecriture(1)$};
\node[invisible] (12) [right=100pt of 11] {};
\node[invisible] (20) [below=15pt of 10] {};
\node[roundedrectangle, minimum width=75pt] (21) [right=25pt of 20] {\textcolor{blue}{$lecture/0$}};
\node[roundedrectangle, minimum width=50pt] (22) [right=75pt of 21] {\textcolor{blue}{$lecture/0$}};
\node[roundedrectangle, minimum width=50pt] (23) [right=75pt of 22] {\textcolor{red}{$lecture/1$}};
\node[invisible] (24) [below=15pt of 12] {};
\node[invisible] (30) [below=15pt of 20] {};
\node[roundedrectangle, minimum width=50pt] (31) [right=125pt of 30] {\textcolor{red}{$lecture/1$}};
\node[roundedrectangle, minimum width=80pt] (32) [right=40pt of 31] {\textcolor{red}{$lecture/1$}};
\node[invisible] (33) [below=15pt of 24] {};
\node[invisible] (40) [below=25pt of 30] {};
\node[invisible] (41) [below=25pt of 33] {};
\draw (10) -- (11) -- (12);
\draw (20) -- (21) -- (22) -- (23) -- (24);
\draw (30) -- (31) -- (32) -- (33);
\draw[->] (40) -- node [above] {temps} (41);
\end{tikzpicture}
}

View File

@ -0,0 +1,31 @@
\resizebox{\columnwidth}{!}{%
\begin{tikzpicture}[
roundedrectangle/.style={draw, rounded corners, rectangle, minimum height=10pt, minimum width=20pt},
invisible/.style={draw=none, fill=none},
]
\node[invisible] (10) {};
\node[roundedrectangle, minimum width=150pt] (11) [right=100pt of 10] {$ecriture(1)$};
\node[invisible] (12) [right=100pt of 11] {};
\node[invisible] (20) [below=15pt of 10] {};
\node[roundedrectangle, minimum width=75pt] (21) [right=25pt of 20] {\textcolor{blue}{$lecture/0$}};
\node[roundedrectangle, minimum width=50pt] (22) [right=75pt of 21] {\textcolor{blue}{$lecture/0$}};
\node[roundedrectangle, minimum width=50pt] (23) [right=75pt of 22] {\textcolor{red}{$lecture/1$}};
\node[invisible] (24) [below=15pt of 12] {};
\node[invisible] (30) [below=15pt of 20] {};
\node[roundedrectangle, minimum width=50pt] (31) [right=125pt of 30] {\textcolor{red}{$lecture/1$}};
\node[roundedrectangle, minimum width=80pt] (32) [right=40pt of 31] {\textcolor{blue}{$lecture/0$}};
\node[invisible] (33) [below=15pt of 24] {};
\node[invisible] (40) [below=25pt of 30] {};
\node[invisible] (41) [below=25pt of 33] {};
\draw (10) -- (11) -- (12);
\draw (20) -- (21) -- (22) -- (23) -- (24);
\draw (30) -- (31) -- (32) -- (33);
\draw[->] (40) -- node [above] {temps} (41);
\end{tikzpicture}
}

View File

@ -0,0 +1,31 @@
\resizebox{\columnwidth}{!}{%
\begin{tikzpicture}[
roundedrectangle/.style={draw, rounded corners, rectangle, minimum height=10pt, minimum width=20pt},
invisible/.style={draw=none, fill=none},
]
\node[invisible] (10) {};
\node[roundedrectangle, minimum width=150pt] (11) [right=100pt of 10] {$ecriture(1)$};
\node[invisible] (12) [right=100pt of 11] {};
\node[invisible] (20) [below=15pt of 10] {};
\node[roundedrectangle, minimum width=75pt] (21) [right=25pt of 20] {\textcolor{blue}{$lecture/0$}};
\node[roundedrectangle, minimum width=50pt] (22) [right=75pt of 21] {\textcolor{blue}{$lecture/0$}};
\node[roundedrectangle, minimum width=50pt] (23) [right=75pt of 22] {\textcolor{red}{$lecture/1$}};
\node[invisible] (24) [below=15pt of 12] {};
\node[invisible] (30) [below=15pt of 20] {};
\node[roundedrectangle, minimum width=80pt] (31) [right=125pt of 30] {\textcolor{red!50!blue}{$lecture/27$}};
\node[roundedrectangle, minimum width=50pt] (32) [right=40pt of 31] {\textcolor{red}{$lecture/1$}};
\node[invisible] (33) [below=15pt of 24] {};
\node[invisible] (40) [below=25pt of 30] {};
\node[invisible] (41) [below=25pt of 33] {};
\draw (10) -- (11) -- (12);
\draw (20) -- (21) -- (22) -- (23) -- (24);
\draw (30) -- (31) -- (32) -- (33);
\draw[->] (40) -- node [above] {temps} (41);
\end{tikzpicture}
}

View File

@ -0,0 +1,34 @@
\resizebox{\columnwidth}{!}{%
\begin{tikzpicture}[
roundnode/.style={circle, draw=black, fill=black, very thick, minimum size=1pt,},
ignorednode/.style={circle, draw=black!20, fill=black!20, very thick, minimum size=1pt,},
arrow/.style={|->, thick,},
message/.style={->, blue!50, dashed, -{Circle[length=4pt,]}},
]
\node[roundnode] (11) {};
\node[left] at (11.west) {$p_0$};
\node[above] at (11.north) {$ecrire(0)$};
\node[roundnode] (12) [right=50pt of 11] {};
\node[above] at (12.north) {$lire/\emptyset$};
\node[roundnode] (13) [right=50pt of 12] {};
\node[above] at (13.north) {$lire/1$};
\draw[arrow] (11) -- (12);
\draw[arrow] (12) -- (13);
\node[roundnode] (21) [below=10pt of 11] {};
\node[left] at (21.west) {$p_1$};
\node[below] at (21.south) {$ecrire(1)$};
\node[roundnode] (22) [right=50pt of 21] {};
\node[below] at (22.south) {$lire/\emptyset$};
\node[roundnode] (23) [right=50pt of 22] {};
\node[below] at (23.south) {$lire/0$};
\draw[arrow] (21) -- (22);
\draw[arrow] (22) -- (23);
\draw[message] (11) -- ($(22)!0.5!(23)$);
\draw[message] (21) -- ($(12)!0.5!(13)$);
\end{tikzpicture}
}

View File

@ -0,0 +1,31 @@
\resizebox{\columnwidth}{!}{%
\begin{tikzpicture}[
roundnode/.style={circle, draw=black, fill=black, very thick, minimum size=1pt,},
ignorednode/.style={circle, draw=black!20, fill=black!20, very thick, minimum size=1pt,},
arrow/.style={|->, thick,},
message/.style={->, blue!50, dashed, -{Circle[length=4pt,]}},
]
\node[roundnode] (11) {};
\node[left] at (11.west) {$p_0$};
\node[above] at (11.north) {$ecrire(1)$};
\node[roundnode] (12) [right=50pt of 11] {};
\node[above] at (12.north) {$lire/1$};
\node[roundnode] (13) [right=50pt of 12] {};
\node[above] at (13.north) {$lire/1$};
\draw[arrow] (11) -- (12);
\draw[arrow] (12) -- (13);
\node[roundnode] (21) [below=10pt of 11] {};
\node[left] at (21.west) {$p_1$};
\node[below] at (21.south) {$lire/1$};
\node[roundnode] (22) [right=50pt of 21] {};
\node[below] at (22.south) {$supprimer(1)$};
\node[roundnode] (23) [right=50pt of 22] {};
\node[below] at (23.south) {$lire/\emptyset$};
\draw[arrow] (21) -- (22);
\draw[arrow] (22) -- (23);
\end{tikzpicture}
}

View File

@ -0,0 +1,42 @@
\resizebox{\columnwidth}{!}{%
\begin{tikzpicture}[
roundnode/.style={circle, draw=black, fill=black, very thick, minimum size=1pt,},
ignorednode/.style={circle, draw=black!20, fill=black!20, very thick, minimum size=1pt,},
arrow/.style={|->, thick,},
message/.style={->, blue!50, dashed, -{Circle[length=4pt,]}},
]
\node[roundnode, color=red] (11) {};
\node[above] at (11.north) {$w(1)$};
\node[roundnode, color=red!50] (12) [right=of 11] {};
\node[above] at (12.north) {$r/(0,1)$};
\node[roundnode, color=red!25] (13) [right=of 12] {};
\node[above] at (13.north) {$r/(3,2)^\omega$};
\draw[arrow] (11) -- (12);
\draw[arrow] (12) -- (13);
\node[roundnode, color=green!75!black] (21) [below=20pt of 11] {};
\node[left] at (21.west) {$r/(3,1)$};
\node[roundnode, color=green!95!black] (22) [right=of 21] {};
\node[right] at (22.east) {$w(2)$};
\draw[arrow] (21) -- (22);
\node[roundnode, color=blue] (31) [below=20pt of 21] {};
\node[below] at (31.south) {$w(3)$};
\node[roundnode, color=blue!50] (32) [right=of 31] {};
\node[below] at (32.south) {$r/(3,1)$};
\node[roundnode, color=blue!25] (33) [right=of 32] {};
\node[below] at (33.south) {$r/(3,2)^\omega$};
\draw[arrow] (31) -- (32);
\draw[arrow] (32) -- (33);
\draw[message] (11) -- (21);
\draw[message] (31) -- (21);
\draw[message] (21) -- (32);
\draw[message] (22) -- (13);
\draw[message] (22) -- (33);
\end{tikzpicture}
}

View File

@ -0,0 +1,29 @@
\resizebox{\columnwidth}{!}{%
\begin{tikzpicture}[
roundnode/.style={circle, draw=black, fill=black, very thick, minimum size=1pt,},
ignorednode/.style={circle, draw=black!20, fill=black!20, very thick, minimum size=1pt,},
arrow/.style={|->, thick,},
message/.style={->, blue!50, dashed, -{Circle[length=4pt,]}},
]
\node[roundnode] (11) {};
\node[above] at (11.north) {$w(1)$};
\node[roundnode] (12) [right=of 11] {};
\node[above] at (12.north) {$r/(2,1)$};
\node[roundnode] (13) [right=of 12] {};
\node[above] at (13.north) {$r/(2,1)^\omega$};
\draw[arrow] (11) -- (12);
\draw[arrow] (12) -- (13);
\node[roundnode] (21) [below=20pt of 11] {};
\node[left] at (21.west) {$r/(0,1)$};
\node[roundnode] (22) [right=of 21] {};
\node[right] at (22.east) {$w(2)$};
\draw[arrow] (21) -- (22);
\draw[message] (11) -- (21);
\draw[message] (22) -- (12);
\end{tikzpicture}
}

View File

@ -0,0 +1,41 @@
\resizebox{\columnwidth}{!}{%
\begin{tikzpicture}[
roundnode/.style={circle, draw=black, fill=black, very thick, minimum size=1pt,},
ignorednode/.style={circle, draw=black!20, fill=black!20, very thick, minimum size=1pt,},
arrow/.style={|->, thick,},
message/.style={->, blue!50, dashed, -{Circle[length=4pt,]}},
]
\node[roundnode, color=red] (11) {};
\node[above] at (11.north) {$w(1)$};
\node[roundnode, color=red!50] (12) [right=of 11] {};
\node[above] at (12.north) {$r/(3,1)$};
\node[roundnode, color=red!25] (13) [right=of 12] {};
\node[above] at (13.north) {$r/(1,2)^\omega$};
\draw[arrow] (11) -- (12);
\draw[arrow] (12) -- (13);
\node[roundnode, color=green!75!black] (21) [below=20pt of 11] {};
\node[left] at (21.west) {$r/(0,0)$};
\node[roundnode, color=green!95!black] (22) [right=of 21] {};
\node[right] at (22.east) {$w(2)$};
\draw[arrow] (21) -- (22);
\node[roundnode, color=blue] (31) [below=20pt of 21] {};
\node[below] at (31.south) {$w(3)$};
\node[roundnode, color=blue!50] (32) [right=of 31] {};
\node[below] at (32.south) {$r/(1,3)$};
\node[roundnode, color=blue!25] (33) [right=of 32] {};
\node[below] at (33.south) {$r/(3,2)^\omega$};
\draw[arrow] (31) -- (32);
\draw[arrow] (32) -- (33);
\draw[message] (11) -- (31);
\draw[message] (31) -- (12);
\draw[message] (22) -- (13);
\draw[message] (22) -- (33);
\end{tikzpicture}
}

View File

@ -0,0 +1,25 @@
\begin{frame}
\frametitle{Travail réalisé}
\begin{columns}
\column{0.4\columnwidth}
\begin{block}{LIS}
\begin{itemize}
\item Une réflexion sur l'approche à prendre avec la problématique de Parsec
\item Une étude et une compréhension profonde de l'architecture derrière Parsec
\end{itemize}
\end{block}
\column{0.4\columnwidth}
\begin{block}{Scille}
\begin{itemize}
\item L'étude et la réalisation de l'état de l'art.
\item Des présentations dans le cadre du LIS
\end{itemize}
\end{block}
\vspace{50pt}
\end{columns}
\end{frame}

View File

@ -0,0 +1,17 @@
\begin{frame}
\frametitle{Le principe de la commutativité}
\begin{block}{Définition}
Une opération est commutative si l'ordre dans lequel elle est appliquée n'a pas d'importance.
\end{block}
\begin{exampleblock}{Exemple}
\begin{itemize}
\item $a + b = b + a$
\item $a \times b = b \times a$ MAIS $a \times b \times c \neq a \times c \times b$
\item $a \div b \neq b \div a$
\end{itemize}
\end{exampleblock}
L'idée est de restreindre les opérations possibles de l'application à seulement celles qui sont commutatives entre elles.
\end{frame}

Binary file not shown.

After

Width:  |  Height:  |  Size: 159 KiB

View File

@ -0,0 +1,52 @@
\documentclass{beamer}
\usetheme{Boadilla}
\usecolortheme{orchid}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[french]{babel}
\usepackage{stackengine}
\addtobeamertemplate{navigation symbols}{}{%
\usebeamerfont{footline}%
\usebeamercolor[fg]{footline}%
\hspace{1em}%
\insertframenumber/\inserttotalframenumber
}
\usepackage{ulem}
\usepackage{tkz-tab}
\setbeamertemplate{blocks}[rounded]%
[shadow=true]
\AtBeginSection{%
\begin{frame}
\tableofcontents[sections=\value{section}]
\end{frame}
}
\usepackage{tikz}
\usetikzlibrary{positioning}
\usetikzlibrary{calc}
\usetikzlibrary{arrows.meta}
\title[bwconsistency]{Cohérence faible byzantine appliquée au cloud}
\subtitle{Présentation intermédiaire : Cohérence faible}
\author[JOLY Amaury]{JOLY Amaury\\ \textbf{Encadrants :} GODARD Emmanuel, TRAVERS Corentin }
% \\[2ex] \includegraphics[scale=0.1]{./img/amu.png}
\institute[LIS, Scille]{LIS-LAB, Scille}
\date{\today}
\begin{document}
\maketitle
\begin{frame}{Table des matières}
\tableofcontents
\end{frame}
% \section{Introduction}
% \input{définition/index.tex}
\section{Les CRDT (Conflict-free Replicated Data Types)}
\input{crdt/index.tex}
\end{document}

View File

@ -0,0 +1,27 @@
# Script présentation Cohérence Faible
## Plan
1. Présenter un processus séquentiel classique
- exemple : processeur monocœur
2. Introduire le concept de cohérence via la cohérence forte (le plus intuitif)
- exemple : processeur multicœur, application distribuée centralisée.
- notions : respect de l'ordre, atomicité, isolation
3. Introduire le concept de cohérence faible
- exemple : application distribuée décentralisée
4. Définir les propriétés d'un système réparti
5. Définir les différents modèles de cohérence faible (des plus trivial aux moins)
1. Cohérence Séquentielle (SC)
2. Linéarisabilité -> Serialisabilité
3. Convergence/Convergence Forte
1. Définit le concept de convergence
2. Pourquoi ? + les apports de la convergence forte
3. Types de données basés sur la convergence (pourquoi ?)
4. Cohérence Pipeline
1. On présente la notion d'Intention
2. On l'oppose à la cohérence Pipeline
6. Cohérence d'écriture
1. Ce que ne couvre pas les modèles précédents
2. Cohérence d'écriture et cohérence d'écriture forte.