oups
This commit is contained in:
32
docs/presentations/SoutenanceStage/conclusion/index.tex
Normal file
32
docs/presentations/SoutenanceStage/conclusion/index.tex
Normal 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}
|
14
docs/presentations/SoutenanceStage/consistency/byzantin.tex
Normal file
14
docs/presentations/SoutenanceStage/consistency/byzantin.tex
Normal 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}
|
82
docs/presentations/SoutenanceStage/consistency/faible.tex
Normal file
82
docs/presentations/SoutenanceStage/consistency/faible.tex
Normal 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}
|
61
docs/presentations/SoutenanceStage/consistency/forte.tex
Normal file
61
docs/presentations/SoutenanceStage/consistency/forte.tex
Normal 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}
|
8
docs/presentations/SoutenanceStage/consistency/index.tex
Normal file
8
docs/presentations/SoutenanceStage/consistency/index.tex
Normal 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}
|
32
docs/presentations/SoutenanceStage/distr_sys/bases.tex
Normal file
32
docs/presentations/SoutenanceStage/distr_sys/bases.tex
Normal 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}
|
2
docs/presentations/SoutenanceStage/distr_sys/index.tex
Normal file
2
docs/presentations/SoutenanceStage/distr_sys/index.tex
Normal file
@ -0,0 +1,2 @@
|
||||
\subsection*{Définition}
|
||||
\include{distr_sys/bases}
|
BIN
docs/presentations/SoutenanceStage/images/carte_criteres.png
Executable file
BIN
docs/presentations/SoutenanceStage/images/carte_criteres.png
Executable file
Binary file not shown.
After Width: | Height: | Size: 159 KiB |
BIN
docs/presentations/SoutenanceStage/images/distributedsystems.png
Normal file
BIN
docs/presentations/SoutenanceStage/images/distributedsystems.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 12 KiB |
2
docs/presentations/SoutenanceStage/intro/index.tex
Normal file
2
docs/presentations/SoutenanceStage/intro/index.tex
Normal file
@ -0,0 +1,2 @@
|
||||
\subsection*{Présentation de l'entreprise}
|
||||
\include{intro/suite.tex}
|
16
docs/presentations/SoutenanceStage/intro/presentation.tex
Normal file
16
docs/presentations/SoutenanceStage/intro/presentation.tex
Normal 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}
|
61
docs/presentations/SoutenanceStage/intro/suite.tex
Normal file
61
docs/presentations/SoutenanceStage/intro/suite.tex
Normal 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}
|
65
docs/presentations/SoutenanceStage/main.tex
Executable file
65
docs/presentations/SoutenanceStage/main.tex
Executable 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}
|
BIN
docs/presentations/SoutenanceStage/schemas/ccv_hc_1.png
Executable file
BIN
docs/presentations/SoutenanceStage/schemas/ccv_hc_1.png
Executable file
Binary file not shown.
After Width: | Height: | Size: 72 KiB |
35
docs/presentations/SoutenanceStage/schemas/convergence.tex
Executable file
35
docs/presentations/SoutenanceStage/schemas/convergence.tex
Executable 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}
|
||||
}
|
31
docs/presentations/SoutenanceStage/schemas/linearisation_atomicite_hc.tex
Executable file
31
docs/presentations/SoutenanceStage/schemas/linearisation_atomicite_hc.tex
Executable 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}
|
||||
}
|
31
docs/presentations/SoutenanceStage/schemas/linearisation_regularite_hc.tex
Executable file
31
docs/presentations/SoutenanceStage/schemas/linearisation_regularite_hc.tex
Executable 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}
|
||||
}
|
31
docs/presentations/SoutenanceStage/schemas/linearisation_surete_hc.tex
Executable file
31
docs/presentations/SoutenanceStage/schemas/linearisation_surete_hc.tex
Executable 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}
|
||||
}
|
34
docs/presentations/SoutenanceStage/schemas/localiteetat.tex
Executable file
34
docs/presentations/SoutenanceStage/schemas/localiteetat.tex
Executable 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}
|
||||
}
|
31
docs/presentations/SoutenanceStage/schemas/validite.tex
Executable file
31
docs/presentations/SoutenanceStage/schemas/validite.tex
Executable 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}
|
||||
}
|
42
docs/presentations/SoutenanceStage/schemas/wcc_hc_1.tex
Executable file
42
docs/presentations/SoutenanceStage/schemas/wcc_hc_1.tex
Executable 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}
|
||||
}
|
29
docs/presentations/SoutenanceStage/schemas/wcc_hc_2.tex
Executable file
29
docs/presentations/SoutenanceStage/schemas/wcc_hc_2.tex
Executable 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}
|
||||
}
|
41
docs/presentations/SoutenanceStage/schemas/wcc_hc_3.tex
Executable file
41
docs/presentations/SoutenanceStage/schemas/wcc_hc_3.tex
Executable 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}
|
||||
}
|
25
docs/presentations/SoutenanceStage/work/index.tex
Normal file
25
docs/presentations/SoutenanceStage/work/index.tex
Normal 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}
|
@ -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}
|
BIN
docs/presentations/scille/séminaire_printemps_2024/images/carte_criteres.png
Executable file
BIN
docs/presentations/scille/séminaire_printemps_2024/images/carte_criteres.png
Executable file
Binary file not shown.
After Width: | Height: | Size: 159 KiB |
52
docs/presentations/scille/séminaire_printemps_2024/main.tex
Executable file
52
docs/presentations/scille/séminaire_printemps_2024/main.tex
Executable 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}
|
27
docs/presentations/scille/séminaire_printemps_2024/script.md
Executable file
27
docs/presentations/scille/séminaire_printemps_2024/script.md
Executable 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.
|
||||
|
Reference in New Issue
Block a user