From 8199d8d9e290483e9c3ebb7f490a4e7bf2a55e44 Mon Sep 17 00:00:00 2001 From: Amaury <contact@amauryjoly.fr> Date: Mon, 11 Sep 2023 09:21:49 +0200 Subject: [PATCH] rapport de stage --- .../consistency_criteria/index.tex | 7 + docs/rapport/rapport_etat_art/intro/index.tex | 5 + docs/rapport/rapport_etat_art/intro/intro.tex | 18 + .../rapport_etat_art/intro/motivation.tex | 9 + docs/rapport/rapport_etat_art/main.tex | 42 +++ docs/rapport/rapport_stage/acquis/index.tex | 13 + docs/rapport/rapport_stage/bilan/index.tex | 12 + .../rapport_stage/images/carte_criteres.png | Bin 0 -> 162861 bytes docs/rapport/rapport_stage/intro/index.tex | 25 ++ docs/rapport/rapport_stage/lib.bib | 312 ++++++++++++++++++ docs/rapport/rapport_stage/main.ist | 29 ++ docs/rapport/rapport_stage/main.tex | 68 ++++ .../rapport_stage/schemas/convergence.tex | 35 ++ .../rapport_stage/schemas/ensemble.tex | 29 ++ .../rapport_stage/schemas/ensemble_2.tex | 35 ++ .../rapport_stage/schemas/ensemble_2_lin.tex | 40 +++ .../rapport_stage/schemas/ensemble_2_lin2.tex | 40 +++ .../rapport_stage/schemas/localiteetat.tex | 34 ++ .../rapport_stage/schemas/pipeline.tex | 43 +++ .../rapport_stage/schemas/pipeline_crdt.tex | 43 +++ .../rapport_stage/schemas/validite.tex | 31 ++ docs/rapport/rapport_stage/travail/index.tex | 243 ++++++++++++++ 22 files changed, 1113 insertions(+) create mode 100755 docs/rapport/rapport_etat_art/consistency_criteria/index.tex create mode 100755 docs/rapport/rapport_etat_art/intro/index.tex create mode 100644 docs/rapport/rapport_etat_art/intro/intro.tex create mode 100644 docs/rapport/rapport_etat_art/intro/motivation.tex create mode 100755 docs/rapport/rapport_etat_art/main.tex create mode 100644 docs/rapport/rapport_stage/acquis/index.tex create mode 100644 docs/rapport/rapport_stage/bilan/index.tex create mode 100755 docs/rapport/rapport_stage/images/carte_criteres.png create mode 100644 docs/rapport/rapport_stage/intro/index.tex create mode 100644 docs/rapport/rapport_stage/lib.bib create mode 100644 docs/rapport/rapport_stage/main.ist create mode 100644 docs/rapport/rapport_stage/main.tex create mode 100755 docs/rapport/rapport_stage/schemas/convergence.tex create mode 100644 docs/rapport/rapport_stage/schemas/ensemble.tex create mode 100644 docs/rapport/rapport_stage/schemas/ensemble_2.tex create mode 100644 docs/rapport/rapport_stage/schemas/ensemble_2_lin.tex create mode 100644 docs/rapport/rapport_stage/schemas/ensemble_2_lin2.tex create mode 100755 docs/rapport/rapport_stage/schemas/localiteetat.tex create mode 100644 docs/rapport/rapport_stage/schemas/pipeline.tex create mode 100644 docs/rapport/rapport_stage/schemas/pipeline_crdt.tex create mode 100755 docs/rapport/rapport_stage/schemas/validite.tex create mode 100644 docs/rapport/rapport_stage/travail/index.tex diff --git a/docs/rapport/rapport_etat_art/consistency_criteria/index.tex b/docs/rapport/rapport_etat_art/consistency_criteria/index.tex new file mode 100755 index 0000000..c850426 --- /dev/null +++ b/docs/rapport/rapport_etat_art/consistency_criteria/index.tex @@ -0,0 +1,7 @@ +\subsection{Etat des différents critères} +\subsubsection{Les modèles de mémoires partagées} + +\subsubsection{La cohérence forte} +Cohérence Séquentielle \cite{lamport_how_1979} + +\subsubsection{La cohérence Faible} diff --git a/docs/rapport/rapport_etat_art/intro/index.tex b/docs/rapport/rapport_etat_art/intro/index.tex new file mode 100755 index 0000000..7b80510 --- /dev/null +++ b/docs/rapport/rapport_etat_art/intro/index.tex @@ -0,0 +1,5 @@ +\subsection{Motivation} +\input{intro/motivation.tex} + +\subsection{Introduction} +\input{intro/intro.tex} \ No newline at end of file diff --git a/docs/rapport/rapport_etat_art/intro/intro.tex b/docs/rapport/rapport_etat_art/intro/intro.tex new file mode 100644 index 0000000..576e4b1 --- /dev/null +++ b/docs/rapport/rapport_etat_art/intro/intro.tex @@ -0,0 +1,18 @@ +L'étude du comportement des systèmes distribués date des années 1970 avec l'arrivé des premiers processeurs multicoeur. +Il semblait essentiel à l'époque de pouvoir répartir une tâche entre plusieurs acteurs de manières +asynchrone afin d'accroitre les performances. +Ainsi Lamport définit un model de cohérence qu'il nomme "séquentiel". C'est à dire que, une tâche pouvant être découper en un +ensemble d'opération, chaque opération étant répartit entre plusieurs acteurs, il est possible de resequentialiser ces opérations +de facon à ce qu'infine leurs remaniement séquentiel soit indicernable vis-à-vis de ce qui pourait être attendu de +l'éxécution de la même tache dans un environement non distribués. + +Le désaventage de cette approche est qu'elle nécéssite de garder une synchronicité forte entre les acteurs. +La difficulté à préserver cette synchronicité croit considérablement avec le nombre d'acteur et la latence entre eux. L'usage d'une approche séquentiel sur des applications visant à faire travailler des +acteurs distant à travers un réseau mondia tel qu'internet semble à ce titre loin d'être efficace. Et restreint ces dernières +à des usages limités où une faible intéractivité doit être acceptée par les concepteurs. + +Néanmoins là ou l'approche séquentiel est la seule fournissant une cohénce absolue dans la gestions des données du point de vue +général et du point de vue de l'utilisateur. +Il est possibe d'accepter une perte de cette cohérence partiel ou total afin de gagner en performances sur des applications a grande echelle. +Ce compromis entre cohérence et performances est l'objet de ce document qui vise à faire un état du paysage des différentes approches et solutions +existantes, en définissant les cas d'usages associés. \ No newline at end of file diff --git a/docs/rapport/rapport_etat_art/intro/motivation.tex b/docs/rapport/rapport_etat_art/intro/motivation.tex new file mode 100644 index 0000000..11163be --- /dev/null +++ b/docs/rapport/rapport_etat_art/intro/motivation.tex @@ -0,0 +1,9 @@ +La plupart des applications colaborarifs sur le marché fonctionnent sous la forme d'une entité centralisé qui traite les données, les redistribuent aux différents client et résoud les problèmes de cohérences. +De manière à favorisé l'intéractivité de l'applications et ainsi fournir l'experience utilisateur la plus optimal, on constate que certaines de ces application font appels à des algorithmes qui ne respectent pas ce qu'on attendrait d'une éxécution séquentielles, pouvant ainsi menés à des incohérences dans les éxécutions. +Et infine avoir un impact sur l'experience utilisateur. + +Il nous semble donc intéressant de se pencher sur l'état de la rechecrhe concernant les divers manières d'aborder ce compromis dans la gestion de la cohérence dans ce genre de systèmes. Et ainsi mettre en avant les différentes propriétés qui en résultents. L'intérét ici est de fournir une base permettant d'éclairer la prise de décision lors de l'implémentation d'un algorithme visant à satisfaire un problèmes distribué. + +Ce document à était réalisé dans le cadre de mon stage de fin d'étude de Master. +L'objectif est de fournir un état de l'art de la recherches autour des différents compromis réalisables dans la gestion de la cohérence dans le contexte d'applications distribués. +Il à pour but de servir de base à un projet de thèse en CIFRE financé par l'entreprise Scille SAS, et encadré par le Laboratoire d'Informatique et Système. \ No newline at end of file diff --git a/docs/rapport/rapport_etat_art/main.tex b/docs/rapport/rapport_etat_art/main.tex new file mode 100755 index 0000000..0be1ec6 --- /dev/null +++ b/docs/rapport/rapport_etat_art/main.tex @@ -0,0 +1,42 @@ +\documentclass{article} + +\usepackage[T1]{fontenc} +\usepackage[utf8]{inputenc} +\usepackage[french]{babel} +\usepackage[affil-it]{authblk} +\usepackage{fullpage} +\usepackage{graphicx} + +\usepackage{biblatex} +\addbibresource{../../recherches/Stage.bib} + +\begin{document} + +\title{Critères de Cohérence faible byzantine appliquée aux environements cloud} +\author{JOLY Amaury \\ \textbf{Encadrants :} GODARD Emmanuel, TRAVERS Corentin} +\affil{Aix-Marseille Université, Scille} +\date{\today} + +\begin{titlepage} + \maketitle +\end{titlepage} + +\begin{abstract} + lorem ipsum dolor sit amet. +\end{abstract} + +\newpage + +\tableofcontents + +\newpage + +\section{Introduction} +\input{intro/index.tex} + +\section{Les critères de cohérence} +\input{consistency_criteria/index.tex} + +\printbibliography + +\end{document} \ No newline at end of file diff --git a/docs/rapport/rapport_stage/acquis/index.tex b/docs/rapport/rapport_stage/acquis/index.tex new file mode 100644 index 0000000..86e2d9a --- /dev/null +++ b/docs/rapport/rapport_stage/acquis/index.tex @@ -0,0 +1,13 @@ +\subsection{Sécurité des Systèmes d'Information} + +Ce stage à étais pour moi l'opportunité de m'intéresser à la science de l'informatique appliquée aux systèmes distribuée. J'ai pu ainsi découvrir comment mesurer la fiabilité et la cohérence dans ces systèmes, tout en en appréciant les enjeux. J'ai ainsi pu développer une sensibilité dans ma manière d'aborder les applications distribuée, me permettant d'avoir un regard plus critique sur les choix de conceptions de ces derniers. + +Dans le même temps, mes contacts avec l'équipe de Scille m'ont permis de découvrir les enjeux du développement à un stade précoce d'une application orientée sécurité. Mon intégration à ce projet m'a permis de développer un réflexe critique dans la manière dont j'envisage la conception de l'éditeur collaboratif. Devant à tout pris le rendre cohérent avec le produit sur lequel il vise à être greffé. + +Cela à étais aussi l'occasion pour moi de découvrir des types d'attaques particuliers et propres aux systèmes distribués, ainsi que des techniques permettant de contourner la sécurité de réseaux dans le but de réaliser des communications en pair à pair. + +\subsection{Compétences transverses} + +Durant ce stage, j'ai pu perfectionner ma maitrise du LaTeX et notamment la modélisation de schémas. J'ai eu à de nombreuses occasions l'opportunité de m'exprimer devant un auditoire ce qui m'a énormément apporté en aisance à l'oral et en maitrise de mon sujet. + +Ayant travaillé seul en autonomie la plupart de mon temps, j'ai aussi du mettre en place une certaine rigueur et organisation autour de mon travail. Et trouver un équilibre dans l'organisation de mes tâches et de mes pauses. \ No newline at end of file diff --git a/docs/rapport/rapport_stage/bilan/index.tex b/docs/rapport/rapport_stage/bilan/index.tex new file mode 100644 index 0000000..706188b --- /dev/null +++ b/docs/rapport/rapport_stage/bilan/index.tex @@ -0,0 +1,12 @@ +Mon sentiment vis-à-vis de ce stage est globalement positif. J'ai pu comprendre de manière plus profonde le fonctionnement et l'organisation de la recherche en Informatique ce qui était pour moi l'objectif principal. + +Je me suis pris de passion pour le sujet que j'ai eu à traiter et j'ai hâte de poursuivre mon travail dans le cadre de la thèse. + +Mon intégration avec Scille est aussi très positive et je les remercie énormément pour la confiance qu'ils me portent et l'importance du rôle qu'ils me donnent. J'ai réellement le sentiment de faire partie de l'équipe et du projet et c'est quelque chose de très gratifiant. + +Mes regrets vis-à-vis de ce stage porte plutôt sur le début durant lequel j'ai dû me construire un rythme qui n'a pas était évident à trouver. +Les premières semaines on était éprouvante au point de remettre en question mon engagement dans cette voie. Il m'a fallu m'approprier le sujet et gérer d'une meilleure manière mes sessions de travail avant d'arriver à m'épanouir dans ce projet. + +J'aurais aussi aimé apporter une contribution plus importante à Parsec. Je trouve ne pas avoir eu le temps d'acquérir une maitrise du produit suffisante pour être pleinement capable d'y projeter mon travail. + +Je suis très reconnaissant envers mes encadrants pour leurs présences et leurs bienveillances à mon égard. Ils m'on était d'une aide capitale autant vis-à-vis de mon travail que d'un point de vue personnel et c'est avec joie et confiance que je m'engage dans une thèse avec eux. \ No newline at end of file diff --git a/docs/rapport/rapport_stage/images/carte_criteres.png b/docs/rapport/rapport_stage/images/carte_criteres.png new file mode 100755 index 0000000000000000000000000000000000000000..cd71ddc88a22310aca2c4ce1557e5b6debbdc910 GIT binary patch literal 162861 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%0Dbc>Q|mR4s3-Pt)el_n-3MtYWU3^yZ)p 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 literal 0 HcmV?d00001 diff --git a/docs/rapport/rapport_stage/intro/index.tex b/docs/rapport/rapport_stage/intro/index.tex new file mode 100644 index 0000000..d7b46dd --- /dev/null +++ b/docs/rapport/rapport_stage/intro/index.tex @@ -0,0 +1,25 @@ +Le stage a était réalisé dans le cadre d'une collaboration entre le LIS et l'entreprise Scille SAS. Il a pour objectif la réalisation d'un travail d'état de l'art d'un sujet au vu de son traitement dans une thèse ultérieur. + +\subsection{Présentation de l'entreprise} +Scille\cite{scille} est une startup Française d'une dizaine d'employés localisée à Bordeaux et travaillant majoritairement dans une politique de télétravail. +Elle développe le produit Parsec, qui est une solution reposant sur une architecture client-serveur hébergée dans le cloud, et visant à fournir un service d'hébergement et de partage de fichier. +Parsec se démarque de ses concurrents, en proposant une solution répondant à un haut niveau de sécurité et en adoptant une approche en source ouverte, le rendant ainsi facilement auditable pour leurs clients. +Ainsi le projet s'encre dans une conception dite de zero-trust en proposant un chiffrement de bout en bout des données, rendant ainsi le serveur incapable de consulter le contenu des données qu'il stocke. Son rôle se limite donc à celui de "relai" entre les clients ainsi que de support de stockage pour le chiffré des données. + +Parsec répond aux critères nécessaires à l'obtention de la certification ANSSI-CSPN-2021/08\cite{scilleCSPN}, avec pour objectif de toucher un marché d'entreprise national ayant un besoin d'échanger des fichiers répondant à des prérequis importants en termes de confidentialités tel que pour la santé, le juridique ou encore l'industrie et le militaire. + +\subsection{Présentation du Sujet} +Scille souhaite développer le produit Parsec de manière à rajouter un service de suite bureautique au service principale qui est le partage de fichier. +À ce titre leur premier besoin est la réalisation d'un outil de traitement de texte. + +L'objectif est de fournir une interface permettant l'édition des fichiers présents dans un espace de travail Parsec dans une approche collaborative et en conservant les propriétés de sécurité de l'application principale. C'est-à-dire en restant dans une approche zero-trust et donc chiffré de bout en bout. + +Ce projet fait l'objet d'une proposition de thèse émise par Scille et encadrée par le Laboratoire d'Informatique et Système. C'est dans ce cadre que c'est effectué mon stage, qui à pour objectif principal la réalisation d'un état de l'art sur ces questions. Et comme objectif secondaire mon intégration à l'organisme finançant ma potentielle thèse. + +\subsection{Bref résumé du stage} +Mon stage a débuté en avril 2023. J'ai commencé par étudier les pistes fournit par mes encadrants, dont majoritairement le livre de Mathieu Perrin \textit{Concurrence et Cohérence dans les Systèmes repartis} \cite{perrin_concurrence_2017}. +Suite à ça j'ai réalisé des recherches sur des sujets connexes, en jonglant ainsi entre lecture de la littérature scientifique et réalisation de présentations orales. Me permettant ainsi d'affiner ma compréhension et de rendre compte de mes avancements à mes encadrants. + +Une fois une maitrise satisfaisante du sujet obtenu, j'ai pu commencer à essayer d'affiner le sujet potentiel de la thèse, et de réfléchir à une solution pour la problématique de Scille. + +Ainsi j'ai pu étudier les preuves de concepts réalisés par les ingénieurs en internes à Scille, ainsi qu'aborder la faisabilité en identifiants les outils et algorithmes existants pouvant aider à la réalisation d'une telle application. \ No newline at end of file diff --git a/docs/rapport/rapport_stage/lib.bib b/docs/rapport/rapport_stage/lib.bib new file mode 100644 index 0000000..db3161e --- /dev/null +++ b/docs/rapport/rapport_stage/lib.bib @@ -0,0 +1,312 @@ + +@article{saito_optimistic_2005, + title = {Optimistic Replication}, + volume = {37}, + url = {https://inria.hal.science/hal-01248208}, + doi = {10.1145/1057977.1057980}, + abstract = {Data replication is a key technology in distributed systems that enables higher availability and performance. This article surveys optimistic replication algorithms. They allow replica contents to diverge in the short term to support concurrent work practices and tolerate failures in low-quality communication links. The importance of such techniques is increasing as collaboration through wide-area and mobile networks becomes popular.Optimistic replication deploys algorithms not seen in traditional “pessimistic” systems. Instead of synchronous replica coordination, an optimistic algorithm propagates changes in the background, discovers conflicts after they happen, and reaches agreement on the final contents incrementally.We explore the solution space for optimistic replication algorithms. This article identifies key challenges facing optimistic replication systems---ordering operations, detecting and resolving conflicts, propagating changes efficiently, and bounding replica divergence---and provides a comprehensive survey of techniques developed for addressing these challenges.}, + pages = {42}, + number = {1}, + journaltitle = {{ACM} Computing Surveys}, + author = {Saito, Yasushi and Shapiro, Marc}, + urldate = {2023-06-09}, + date = {2005}, + langid = {english}, + file = {Saito et Shapiro - 2005 - Optimistic Replication.pdf:/home/amaury/Zotero/storage/4WJX5IAN/Saito et Shapiro - 2005 - Optimistic Replication.pdf:application/pdf}, +} + +@article{singh_zeno_nodate, + title = {Zeno: Eventually Consistent Byzantine-Fault Tolerance}, + abstract = {Many distributed services are hosted at large, shared, geographically diverse data centers, and they use replication to achieve high availability despite the unreachability of an entire data center. Recent events show that non-crash faults occur in these services and may lead to long outages. While Byzantine-Fault Tolerance ({BFT}) could be used to withstand these faults, current {BFT} protocols can become unavailable if a small fraction of their replicas are unreachable. This is because existing {BFT} protocols favor strong safety guarantees (consistency) over liveness (availability).}, + author = {Singh, Atul and Fonseca, Pedro and Kuznetsov, Petr and Rodrigues, Rodrigo and Maniatis, Petros}, + langid = {english}, + file = {Singh et al. - Zeno Eventually Consistent Byzantine-Fault Tolera.pdf:/home/amaury/Zotero/storage/K6J2UEBK/Singh et al. - Zeno Eventually Consistent Byzantine-Fault Tolera.pdf:application/pdf}, +} + +@inproceedings{shakarami_refresh_2019, + title = {Refresh Instead of Revoke Enhances Safety and Availability: A Formal Analysis}, + volume = {{LNCS}-11559}, + url = {https://inria.hal.science/hal-02384596}, + doi = {10.1007/978-3-030-22479-0_16}, + shorttitle = {Refresh Instead of Revoke Enhances Safety and Availability}, + abstract = {Due to inherent delays and performance costs, the decision point in a distributed multi-authority Attribute-Based Access Control ({ABAC}) system is exposed to the risk of relying on outdated attribute values and policy; which is the safety and consistency problem. This paper formally characterizes three increasingly strong levels of consistency to restrict this exposure. Notably, we recognize the concept of refreshing attribute values rather than simply checking the revocation status, as in traditional approaches. Refresh replaces an older value with a newer one, while revoke simply invalidates the old value. Our lowest consistency level starts from the highest level in prior revocation-based work by Lee and Winslett ({LW}). Our two higher levels utilize the concept of request time which is absent in {LW}. For each of our levels we formally show that using refresh instead of revocation provides added safety and availability.}, + eventtitle = {33th {IFIP} Annual Conference on Data and Applications Security and Privacy ({DBSec})}, + pages = {301}, + publisher = {Springer International Publishing}, + author = {Shakarami, Mehrnoosh and Sandhu, Ravi}, + urldate = {2023-06-09}, + date = {2019-07-15}, + langid = {english}, + file = {Shakarami et Sandhu - 2019 - Refresh Instead of Revoke Enhances Safety and Avai.pdf:/home/amaury/Zotero/storage/XQNWKF7H/Shakarami et Sandhu - 2019 - Refresh Instead of Revoke Enhances Safety and Avai.pdf:application/pdf}, +} + +@article{misra_axioms_1986, + title = {Axioms for memory access in asynchronous hardware systems}, + volume = {8}, + issn = {0164-0925, 1558-4593}, + url = {https://dl.acm.org/doi/10.1145/5001.5007}, + doi = {10.1145/5001.5007}, + abstract = {The problem of concurrent accesses to registers by asynchronous components is considered. A set of axioms about the values in a register during concurrent accesses is proposed. It is shown that if these axioms are met by a register, then concurrent accesses to it may be viewed as nonconcurrent, thus making it possible to analyze asynchronous algorithms without elaborate timing analysis of operations. These axioms are shown, in a certain sense, to be the weakest. Motivation for this work came from analyzing low-level hardware components in a {VLSI} chip which concurrently accesses a flip-flop.}, + pages = {142--153}, + number = {1}, + journaltitle = {{ACM} Transactions on Programming Languages and Systems}, + shortjournal = {{ACM} Trans. Program. Lang. Syst.}, + author = {Misra, J.}, + urldate = {2023-06-08}, + date = {1986-01-02}, + langid = {english}, + file = {Misra - 1986 - Axioms for memory access in asynchronous hardware .pdf:/home/amaury/Zotero/storage/KZP2774N/Misra - 1986 - Axioms for memory access in asynchronous hardware .pdf:application/pdf}, +} + +@article{lamport_interprocess_1986, + title = {On interprocess communication}, + volume = {1}, + issn = {1432-0452}, + url = {https://doi.org/10.1007/BF01786228}, + doi = {10.1007/BF01786228}, + abstract = {Interprocess communication is studied without assuming any lower-level communication primitives. Three classes of communication registers are considered, and several constructions are given for implementing one class of register with a weaker class. The formalism developed in Part I is used in proving the correctness of these constructions.}, + pages = {86--101}, + number = {2}, + journaltitle = {Distributed Computing}, + shortjournal = {Distrib Comput}, + author = {Lamport, Leslie}, + urldate = {2023-06-08}, + date = {1986-06-01}, + langid = {english}, + keywords = {Communication Network, Computer Hardware, Computer System, Operating System, System Organization}, + file = {Lamport - 1986 - On interprocess communication.pdf:/home/amaury/Zotero/storage/XV7AEARN/Lamport - 1986 - On interprocess communication.pdf:application/pdf}, +} + +@book{lipton_pram_1988, + title = {{PRAM}: A Scalable Shared Memory}, + shorttitle = {{PRAM}}, + pagetotal = {13}, + publisher = {Princeton University, Department of Computer Science}, + author = {Lipton, Richard J. and Sandberg, Jonathan S.}, + date = {1988}, + langid = {english}, + note = {Google-Books-{ID}: 962epwAACAAJ}, + file = {Lipton et Sandberg - 1988 - PRAM A Scalable Shared Memory.pdf:/home/amaury/Zotero/storage/3ZYT3WT4/Lipton et Sandberg - 1988 - PRAM A Scalable Shared Memory.pdf:application/pdf}, +} + +@inproceedings{hutto_slow_1990, + title = {Slow memory: weakening consistency to enhance concurrency in distributed shared memories}, + url = {https://www.computer.org/csdl/proceedings-article/icdcs/1990/00089297/12OmNvSKNPr}, + doi = {10.1109/ICDCS.1990.89297}, + shorttitle = {Slow memory}, + abstract = {The use of weakly consistent memories in distributed shared memory systems to combat unacceptable network delay and to allow such systems to scale is proposed. Proposed memory correctness conditions are surveyed, and how they are related by a weakness hierarchy is demonstrated. Multiversion and messaging interpretations of memory are introduced as means of systematically exploring the space of possible memories. Slow memory is presented as a memory that allows the effects of writes to propagate slowly through the system, eliminating the need for costly consistency maintenance protocols that limit concurrency. Slow memory processes a valuable locality property and supports a reduction from traditional atomic memory. Thus slow memory is as expressive as atomic memory. This expressiveness is demonstrated by two exclusion algorithms and a solution to M.J. Fischer and A. Michael's (1982) dictionary problem on slow memory.}, + eventtitle = {Proceedings.,10th International Conference on Distributed Computing Systems}, + pages = {302,303,304,305,306,307,308,309--302,303,304,305,306,307,308,309}, + publisher = {{IEEE} Computer Society}, + author = {Hutto, P. W. and Ahamad, M.}, + urldate = {2023-06-06}, + date = {1990-01-01}, + file = {Hutto et Ahamad - 1990 - Slow memory weakening consistency to enhance conc.pdf:/home/amaury/Téléchargements/Hutto et Ahamad - 1990 - Slow memory weakening consistency to enhance conc.pdf:application/pdf}, +} + +@article{lamport_how_1979, + title = {How to Make a Multiprocessor Computer That Correctly Executes Multiprocess Programs}, + volume = {C-28}, + issn = {1557-9956}, + doi = {10.1109/TC.1979.1675439}, + abstract = {Many large sequential computers execute operations in a different order than is specified by the program. A correct execution is achieved if the results produced are the same as would be produced by executing the program steps in order. For a multiprocessor computer, such a correct execution by each processor does not guarantee the correct execution of the entire program. Additional conditions are given which do guarantee that a computer correctly executes multiprocess programs.}, + pages = {690--691}, + number = {9}, + journaltitle = {{IEEE} Transactions on Computers}, + author = {{Lamport}}, + date = {1979-09}, + note = {Conference Name: {IEEE} Transactions on Computers}, + keywords = {Computer design, concurrent computing, hardware correctness, multiprocessing, parallel processing}, + file = {IEEE Xplore Abstract Record:/home/amaury/Zotero/storage/IVGSSPNE/1675439.html:text/html;Lamport - 1979 - How to Make a Multiprocessor Computer That Correct.pdf:/home/amaury/Zotero/storage/GY8CWGUV/Lamport - 1979 - How to Make a Multiprocessor Computer That Correct.pdf:application/pdf}, +} + +@article{mosberger_memory_1993, + title = {Memory consistency models}, + volume = {27}, + issn = {0163-5980}, + url = {https://dl.acm.org/doi/10.1145/160551.160553}, + doi = {10.1145/160551.160553}, + abstract = {This paper discusses memory consistency models and their influence on software in the context of parallel machines. In the first part we review previous work on memory consistency models. The second part discusses the issues that arise due to weakening memory consistency. We are especially interested in the influence that weakened consistency models have on language, compiler, and runtime system design. We conclude that tighter interaction between those parts and the memory system might improve performance considerably.}, + pages = {18--26}, + number = {1}, + journaltitle = {{ACM} {SIGOPS} Operating Systems Review}, + shortjournal = {{SIGOPS} Oper. Syst. Rev.}, + author = {Mosberger, David}, + urldate = {2023-06-06}, + date = {1993-01}, + langid = {english}, + file = {Mosberger - 1993 - Memory consistency models.pdf:/home/amaury/Zotero/storage/VF2ZNK6A/Mosberger - 1993 - Memory consistency models.pdf:application/pdf}, +} + +@inproceedings{hutto_slow_1990-1, + title = {Slow memory: weakening consistency to enhance concurrency in distributed shared memories}, + url = {https://www.computer.org/csdl/proceedings-article/icdcs/1990/00089297/12OmNvSKNPr}, + doi = {10.1109/ICDCS.1990.89297}, + shorttitle = {Slow memory}, + abstract = {The use of weakly consistent memories in distributed shared memory systems to combat unacceptable network delay and to allow such systems to scale is proposed. Proposed memory correctness conditions are surveyed, and how they are related by a weakness hierarchy is demonstrated. Multiversion and messaging interpretations of memory are introduced as means of systematically exploring the space of possible memories. Slow memory is presented as a memory that allows the effects of writes to propagate slowly through the system, eliminating the need for costly consistency maintenance protocols that limit concurrency. Slow memory processes a valuable locality property and supports a reduction from traditional atomic memory. Thus slow memory is as expressive as atomic memory. This expressiveness is demonstrated by two exclusion algorithms and a solution to M.J. Fischer and A. Michael's (1982) dictionary problem on slow memory.}, + eventtitle = {Proceedings.,10th International Conference on Distributed Computing Systems}, + pages = {302,303,304,305,306,307,308,309--302,303,304,305,306,307,308,309}, + publisher = {{IEEE} Computer Society}, + author = {Hutto, P. W. and Ahamad, M.}, + urldate = {2023-06-06}, + date = {1990-01-01}, +} + +@incollection{goos_causal_1995, + location = {Berlin, Heidelberg}, + title = {From causal consistency to sequential consistency in shared memory systems}, + volume = {1026}, + isbn = {978-3-540-60692-5 978-3-540-49263-4}, + url = {http://link.springer.com/10.1007/3-540-60692-0_48}, + pages = {180--194}, + booktitle = {Foundations of Software Technology and Theoretical Computer Science}, + publisher = {Springer Berlin Heidelberg}, + author = {Raynal, Michel and Schiper, André}, + editor = {Thiagarajan, P. S.}, + editorb = {Goos, Gerhard and Hartmanis, Juris and Leeuwen, Jan}, + editorbtype = {redactor}, + urldate = {2023-06-06}, + date = {1995}, + langid = {english}, + doi = {10.1007/3-540-60692-0_48}, + note = {Series Title: Lecture Notes in Computer Science}, + file = {Raynal et Schiper - 1995 - From causal consistency to sequential consistency .pdf:/home/amaury/Zotero/storage/B8UNWUSA/Raynal et Schiper - 1995 - From causal consistency to sequential consistency .pdf:application/pdf}, +} + +@thesis{kumar_fault-tolerant_2019, + title = {Fault-Tolerant Distributed Services in Message-Passing Systems}, + institution = {Texas A\&M University}, + type = {phdthesis}, + author = {Kumar, Saptaparni}, + date = {2019}, + file = {Kumar - 2019 - Fault-Tolerant Distributed Services in Message-Pas.pdf:/home/amaury/Zotero/storage/Q9XK77W9/Kumar - 2019 - Fault-Tolerant Distributed Services in Message-Pas.pdf:application/pdf;Snapshot:/home/amaury/Zotero/storage/7JB26RAJ/1.html:text/html}, +} + +@article{somasekaram_high-availability_2022, + title = {High-Availability Clusters: A Taxonomy, Survey, and Future Directions}, + volume = {187}, + issn = {01641212}, + url = {http://arxiv.org/abs/2109.15139}, + doi = {10.1016/j.jss.2021.111208}, + shorttitle = {High-Availability Clusters}, + abstract = {The delivery of key services in domains ranging from finance and manufacturing to healthcare and transportation is underpinned by a rapidly growing number of mission-critical enterprise applications. Ensuring the continuity of these complex applications requires the use of software-managed infrastructures called high-availability clusters ({HACs}). {HACs} employ sophisticated techniques to monitor the health of key enterprise application layers and of the resources they use, and to seamlessly restart or relocate application components after failures. In this paper, we first describe the manifold uses of {HACs} to protect essential layers of a critical application and present the architecture of high availability clusters. We then propose a taxonomy that covers all key aspects of {HACs} -- deployment patterns, application areas, types of cluster, topology, cluster management, failure detection and recovery, consistency and integrity, and data synchronisation; and we use this taxonomy to provide a comprehensive survey of the end-to-end software solutions available for the {HAC} deployment of enterprise applications. Finally, we discuss the limitations and challenges of existing {HAC} solutions, and we identify opportunities for future research in the area.}, + pages = {111208}, + journaltitle = {Journal of Systems and Software}, + shortjournal = {Journal of Systems and Software}, + author = {Somasekaram, Premathas and Calinescu, Radu and Buyya, Rajkumar}, + urldate = {2023-06-06}, + date = {2022-05}, + eprinttype = {arxiv}, + eprint = {2109.15139 [cs, eess]}, + keywords = {Computer Science - Distributed, Parallel, and Cluster Computing, Computer Science - Networking and Internet Architecture, Electrical Engineering and Systems Science - Systems and Control}, + file = {arXiv.org Snapshot:/home/amaury/Zotero/storage/B4KCP9BG/2109.html:text/html;Somasekaram et al. - 2022 - High-Availability Clusters A Taxonomy, Survey, an.pdf:/home/amaury/Zotero/storage/K3LQZLC8/Somasekaram et al. - 2022 - High-Availability Clusters A Taxonomy, Survey, an.pdf:application/pdf}, +} + +@book{perrin_concurrence_2017, + title = {Concurrence et cohérence dans les systèmes répartis}, + isbn = {978-1-78405-295-9}, + abstract = {La société moderne est de plus en plus dominée par la société virtuelle, le nombre d’internautes dans le monde ayant dépassé les trois milliards en 2015. A la différence de leurs homologues séquentiels, les systèmes répartis sont beaucoup plus difficiles à concevoir, et sont donc sujets à de nombreux problèmes.La cohérence séquentielle fournit la même vue globale à tous les utilisateurs, mais le confort d\&\#39;utilisation qu\&\#39;elle apporte est trop coûteux, voire impossible, à mettre en oeuvre à grande échelle. Concurrence et cohérence dans les systèmes répartis examine les meilleures façons de spécifier les objets que l’on peut tout de même implémenter dans ces systèmes.Cet ouvrage explore la zone grise des systèmes répartis et dresse une carte des critères de cohérence faible, identifiant plusieurs familles et démontrant comment elles peuvent s’intégrer dans un langage de programmation.}, + pagetotal = {194}, + publisher = {{ISTE} Group}, + author = {Perrin, Matthieu}, + date = {2017-09-01}, + langid = {french}, + note = {Google-Books-{ID}: 6DRlDwAAQBAJ}, + file = {Perrin - 2017 - Concurrence et cohérence dans les systèmes réparti.pdf:/home/amaury/Téléchargements/Perrin - 2017 - Concurrence et cohérence dans les systèmes réparti.pdf:application/pdf}, +} + +@article{van_der_linde_practical_2020, + title = {Practical client-side replication: weak consistency semantics for insecure settings}, + volume = {13}, + issn = {2150-8097}, + url = {https://dl.acm.org/doi/10.14778/3407790.3407847}, + doi = {10.14778/3407790.3407847}, + shorttitle = {Practical client-side replication}, + abstract = {Client-side replication and direct client-to-client synchronization can be used to create highly available, low-latency interactive applications. Causal consistency, the strongest available consistency model under network partitions, is an attractive consistency model for these applications.}, + pages = {2590--2605}, + number = {12}, + journaltitle = {Proceedings of the {VLDB} Endowment}, + shortjournal = {Proc. {VLDB} Endow.}, + author = {Van Der Linde, Albert and Leitão, João and Preguiça, Nuno}, + urldate = {2023-06-06}, + date = {2020-08}, + langid = {english}, + file = {Van Der Linde et al. - 2020 - Practical client-side replication weak consistenc.pdf:/home/amaury/Zotero/storage/5TJ3SA56/Van Der Linde et al. - 2020 - Practical client-side replication weak consistenc.pdf:application/pdf}, +} + +@article{decandia_dynamo_nodate, + title = {Dynamo: Amazon’s Highly Available Key-value Store}, + abstract = {Reliability at massive scale is one of the biggest challenges we face at Amazon.com, one of the largest e-commerce operations in the world; even the slightest outage has significant financial consequences and impacts customer trust. The Amazon.com platform, which provides services for many web sites worldwide, is implemented on top of an infrastructure of tens of thousands of servers and network components located in many datacenters around the world. At this scale, small and large components fail continuously and the way persistent state is managed in the face of these failures drives the reliability and scalability of the software systems.}, + author = {{DeCandia}, Giuseppe and Hastorun, Deniz and Jampani, Madan and Kakulapati, Gunavardhan and Lakshman, Avinash and Pilchin, Alex and Sivasubramanian, Swaminathan and Vosshall, Peter and Vogels, Werner}, + langid = {english}, + file = {DeCandia et al. - Dynamo Amazon’s Highly Available Key-value Store.pdf:/home/amaury/Zotero/storage/KDHRPBGR/DeCandia et al. - Dynamo Amazon’s Highly Available Key-value Store.pdf:application/pdf}, +} + +@misc{misra_byzantine_2021, + title = {Byzantine Fault Tolerant Causal Ordering}, + url = {http://arxiv.org/abs/2112.11337}, + abstract = {Causal ordering in an asynchronous system has many applications in distributed computing, including in replicated databases and real-time collaborative software. Previous work in the area focused on ordering point-to-point messages in a fault-free setting, and on ordering broadcasts under various fault models. To the best of our knowledge, Byzantine faulttolerant causal ordering has not been attempted for point-topoint communication in an asynchronous setting. In this paper, we first show that existing algorithms for causal ordering of point-to-point communication fail under Byzantine faults. We then prove that it is impossible to causally order messages under point-to-point communication in an asynchronous system with one or more Byzantine failures. We then present two algorithms that can causally order messages under Byzantine failures, where the network provides an upper bound on the message transmission time. The proofs of correctness for these algorithms show that it is possible to achieve causal ordering for point-to-point communication under a stronger asynchrony model where the network provides an upper bound on message transmission time. We also give extensions of our two algorithms for Byzantine fault-tolerant causal ordering of multicasts.}, + number = {{arXiv}:2112.11337}, + publisher = {{arXiv}}, + author = {Misra, Anshuman and Kshemkalyani, Ajay}, + urldate = {2023-07-12}, + date = {2021-12-21}, + langid = {english}, + eprinttype = {arxiv}, + eprint = {2112.11337 [cs]}, + keywords = {Computer Science - Distributed, Parallel, and Cluster Computing}, + file = {Misra and Kshemkalyani - 2021 - Byzantine Fault Tolerant Causal Ordering.pdf:/home/amaury/Zotero/storage/P2R366US/Misra and Kshemkalyani - 2021 - Byzantine Fault Tolerant Causal Ordering.pdf:application/pdf}, +} + +@inproceedings{tseng_distributed_2019, + title = {Distributed Causal Memory in the Presence of Byzantine Servers}, + doi = {10.1109/NCA.2019.8935059}, + abstract = {We study distributed causal shared memory (or distributed read/write objects) in the client-server model over asynchronous message-passing networks in which some servers may suffer Byzantine failures. Since Ahamad et al. proposed causal memory in 1994, there have been abundant research on causal storage. Lately, there is a renewed interest in enforcing causal consistency in large-scale distributed storage systems (e.g., {COPS}, Eiger, Bolt-on). However, to the best of our knowledge, the fault-tolerance aspect of causal memory is not well studied, especially on the tight resilience bound. In our prior work, we showed that 2 f+1 servers is the tight bound to emulate crash-tolerant causal shared memory when up to f servers may crash. In this paper, we adopt a typical model considered in many prior works on Byzantine-tolerant storage algorithms and quorum systems. In the system, up to f servers may suffer Byzantine failures and any number of clients may crash. We constructively present an emulation algorithm for Byzantine causal memory using 3 f+1 servers. We also prove that 3 f+1 is necessary for tolerating up to f Byzantine servers. In other words, we show that 3 f+1 is a tight bound. For evaluation, we implement our algorithm in Golang and compare their performance with two state-of-the-art fault-tolerant algorithms that ensure atomicity in the Google Cloud Platform.}, + eventtitle = {2019 {IEEE} 18th International Symposium on Network Computing and Applications ({NCA})}, + pages = {1--8}, + booktitle = {2019 {IEEE} 18th International Symposium on Network Computing and Applications ({NCA})}, + author = {Tseng, Lewis and Wang, Zezhi and Zhao, Yajie and Pan, Haochen}, + date = {2019-09}, + note = {{ISSN}: 2643-7929}, + keywords = {asynchrony, Byzantine faults, causal memory, Computer crashes, Consensus protocol, distributed storage system, Emulation, evaluation, Fault tolerance, Fault tolerant systems, History, Servers, tight condition}, + file = {IEEE Xplore Abstract Record:/home/amaury/Zotero/storage/DDV34ULW/8935059.html:text/html}, +} + +@misc{scille, + author = {Scille}, + howpublished = "\url{https://parsec.cloud}", +} + +@misc{scilleCSPN, + author = {Scille}, + howpublished = "\url{https://parsec.cloud/wp-content/uploads/2022/11/20210421-Certification-ANSSI-CSPN-2021-08-PARSEC-2.0.0.pdf}", +} +@misc{GoogleDoc, + author = {Google}, + howpublished = "\url{https://docs.google.com}", +} +@misc{Office365, + author = {Microsoft}, + howpublished = "\url{https://office.com}", +} +@misc{OnlyOffice, + author = {Scille}, + howpublished = "\url{https://onlyoffice.com}", +} + +@inproceedings{shapiro2011conflict, + title={Conflict-free replicated data types}, + author={Shapiro, Marc and Pregui{\c{c}}a, Nuno and Baquero, Carlos and Zawirski, Marek}, + booktitle={Stabilization, Safety, and Security of Distributed Systems: 13th International Symposium, SSS 2011, Grenoble, France, October 10-12, 2011. Proceedings 13}, + pages={386--400}, + year={2011}, + organization={Springer} +} + +@inproceedings{ford2005peer, + title={Peer-to-Peer Communication Across Network Address Translators.}, + author={Ford, Bryan and Srisuresh, Pyda and Kegel, Dan}, + booktitle={USENIX Annual Technical Conference, General Track}, + pages={179--192}, + year={2005} +} diff --git a/docs/rapport/rapport_stage/main.ist b/docs/rapport/rapport_stage/main.ist new file mode 100644 index 0000000..357b29b --- /dev/null +++ b/docs/rapport/rapport_stage/main.ist @@ -0,0 +1,29 @@ +% makeindex style file created by the glossaries package +% for document 'main' on 2023-9-7 +actual '?' +encap '|' +level '!' +quote '"' +keyword "\\glossaryentry" +preamble "\\glossarysection[\\glossarytoctitle]{\\glossarytitle}\\glossarypreamble\n\\begin{theglossary}\\glossaryheader\n" +postamble "\%\n\\end{theglossary}\\glossarypostamble\n" +group_skip "\\glsgroupskip\n" +item_0 "\%\n" +item_1 "\%\n" +item_2 "\%\n" +item_01 "\%\n" +item_x1 "\\relax \\glsresetentrylist\n" +item_12 "\%\n" +item_x2 "\\relax \\glsresetentrylist\n" +delim_0 "\{\\glossaryentrynumbers\{\\relax " +delim_1 "\{\\glossaryentrynumbers\{\\relax " +delim_2 "\{\\glossaryentrynumbers\{\\relax " +delim_t "\}\}" +delim_n "\\delimN " +delim_r "\\delimR " +headings_flag 1 +heading_prefix "\\glsgroupheading\{" +heading_suffix "\}\\relax \\glsresetentrylist " +symhead_positive "glssymbols" +numhead_positive "glsnumbers" +page_compositor "." diff --git a/docs/rapport/rapport_stage/main.tex b/docs/rapport/rapport_stage/main.tex new file mode 100644 index 0000000..c254257 --- /dev/null +++ b/docs/rapport/rapport_stage/main.tex @@ -0,0 +1,68 @@ +\documentclass{article} + +\usepackage[T1]{fontenc} +\usepackage[utf8]{inputenc} +\usepackage[french]{babel} +\usepackage[affil-it]{authblk} +\usepackage{fullpage} +\usepackage{graphicx} + +\usepackage{biblatex} +\addbibresource{lib.bib} + +\usepackage{tikz} +\usetikzlibrary{positioning} +\usetikzlibrary{calc} +\usetikzlibrary{arrows.meta} + +\begin{document} + +\title{ + Rapport de Stage Master 2 FSI \\ + \large Critères de Cohérence faible byzantine appliquée aux environnements cloud} +\author{JOLY Amaury \\ \textbf{Encadrants :} Godard Emmanuel, Travers Corentin} +\affil{Aix-Marseille Université, Scille} +\date{\today} + +\begin{titlepage} + \maketitle + + \begin{abstract} + J'ai réalisé ce stage au Laboratoire d'Informatique et Système sous l'encadrement d'Emmanuel Godard et Corentin Travers. + + L'objectif à étais de fournir les bases théoriques à la réalisation d'une thèse CIFRE en collaboration entre l'entreprise Scille et le laboratoire. + La thèse à pour but d'étudier les critères de cohérence faible et d'appliquer ces recherches au développement d'une application permettant l'édition collaborative sur des documents textes sans intermédiaire de confiance. + \end{abstract} + + +\end{titlepage} + +\tableofcontents + +\newpage + +\section{Présentation du Sujet} +\input{intro/index.tex} + +\newpage + +\section{Travail accomplit} +\input{travail/index.tex} + +\newpage + +\section{Acquis} +\input{acquis/index.tex} + +\section{Bilan} +\input{bilan/index.tex} + +\newpage + +\printbibliography + +\newpage + +\listoffigures + +\end{document} \ No newline at end of file diff --git a/docs/rapport/rapport_stage/schemas/convergence.tex b/docs/rapport/rapport_stage/schemas/convergence.tex new file mode 100755 index 0000000..06c53aa --- /dev/null +++ b/docs/rapport/rapport_stage/schemas/convergence.tex @@ -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) {$I(1)$}; + \node[roundnode] (12) [right=of 11] {}; + \node[above] at (12.north) {$I(0)$}; + \node[roundnode] (13) [right=35pt of 12] {}; + \node[above] at (13.north) {$R/\{\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) {$I(2)$}; + \node[roundnode] (22) [right=of 21] {}; + \node[below] at (22.south) {$R/\{2\}$}; + \node[roundnode] (23) [right=35pt of 22] {}; + \node[below] at (23.south) {$R/\{\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} +} \ No newline at end of file diff --git a/docs/rapport/rapport_stage/schemas/ensemble.tex b/docs/rapport/rapport_stage/schemas/ensemble.tex new file mode 100644 index 0000000..a0717ae --- /dev/null +++ b/docs/rapport/rapport_stage/schemas/ensemble.tex @@ -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[left] at (11.west) {$p_0$}; + \node[above] at (11.north) {$I(0)$}; + \node[roundnode] (12) [right=of 11] {}; + \node[above] at (12.north) {$I(1)$}; + \node[roundnode] (13) [right=of 12] {}; + \node[above] at (13.north) {$I(2)$}; + \node[roundnode] (15) [right=of 13] {}; + \node[above] at (15.north) {$R/\{0,1,2\}$}; + \node[roundnode] (16) [right=of 15] {}; + \node[above] at (16.north) {$D(1)$}; + \node[roundnode] (17) [right=of 16] {}; + \node[above] at (17.north) {$R/\{0,2\}$}; + + \draw[arrow] (11) -- (12); + \draw[arrow] (12) -- (13); + \draw[arrow] (13) -- (15); + \draw[arrow] (15) -- (16); + \draw[arrow] (16) -- (17); + \end{tikzpicture} +} \ No newline at end of file diff --git a/docs/rapport/rapport_stage/schemas/ensemble_2.tex b/docs/rapport/rapport_stage/schemas/ensemble_2.tex new file mode 100644 index 0000000..799bac6 --- /dev/null +++ b/docs/rapport/rapport_stage/schemas/ensemble_2.tex @@ -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) {$I(0)$}; + \node[roundnode] (12) [right=of 11] {}; + \node[above] at (12.north) {$I(2)$}; + \node[roundnode] (13) [right=of 12] {}; + \node[above] at (13.north) {$D(1)$}; + \node[roundnode] (14) [right=of 13] {}; + \node[above] at (14.north) {$R/\{0,2\}$}; + + \draw[arrow] (11) -- (12); + \draw[arrow] (12) -- (13); + \draw[arrow] (13) -- (14); + + \node[roundnode] (21) [below=10pt of 11] {}; + \node[left] at (21.west) {$p_1$}; + \node[below] at (21.south) {$I(1)$}; + \node[roundnode] (22) [right=of 21] {}; + \node[below] at (22.south) {$R/\{0,1,2\}$}; + \node[roundnode] (23) [right=of 22] {}; + \node[below] at (23.south) {$R/\{0,2\}$}; + + \draw[arrow] (21) -- (22); + \draw[arrow] (22) -- (23); + + \end{tikzpicture} +} \ No newline at end of file diff --git a/docs/rapport/rapport_stage/schemas/ensemble_2_lin.tex b/docs/rapport/rapport_stage/schemas/ensemble_2_lin.tex new file mode 100644 index 0000000..a028364 --- /dev/null +++ b/docs/rapport/rapport_stage/schemas/ensemble_2_lin.tex @@ -0,0 +1,40 @@ +\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) {$I(0)$}; + \node[roundnode] (12) [right=of 11] {}; + \node[above] at (12.north) {$I(2)$}; + \node[roundnode] (13) [right=of 12] {}; + \node[above] at (13.north) {$D(1)$}; + \node[roundnode] (14) [right=of 13] {}; + \node[above] at (14.north) {$R/\{0,2\}$}; + + \draw[arrow] (11) -- (12); + \draw[arrow] (12) -- (13); + \draw[arrow] (13) -- (14); + + \node[roundnode] (21) [below=10pt of 11] {}; + \node[left] at (21.west) {$p_1$}; + \node[below] at (21.south) {$I(1)$}; + \node[roundnode] (22) [right=of 21] {}; + \node[below] at (22.south) {$R/\{0,1,2\}$}; + \node[roundnode] (23) [right=of 22] {}; + \node[below] at (23.south) {$R/\{0,2\}$}; + + \draw[arrow] (21) -- (22); + \draw[arrow] (22) -- (23); + + \draw[message] (21) -- ($(11)!0.5!(12)$); + \draw[message] (11) -- (21); + \draw[message] (12) -- ($(21)!0.5!(22)$); + \draw[message] (13) -- ($(22)!0.5!(23)$); + + \end{tikzpicture} +} \ No newline at end of file diff --git a/docs/rapport/rapport_stage/schemas/ensemble_2_lin2.tex b/docs/rapport/rapport_stage/schemas/ensemble_2_lin2.tex new file mode 100644 index 0000000..c8acec9 --- /dev/null +++ b/docs/rapport/rapport_stage/schemas/ensemble_2_lin2.tex @@ -0,0 +1,40 @@ +\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) {$I(0)$}; + \node[roundnode] (12) [right=of 11] {}; + \node[above] at (12.north) {$I(2)$}; + \node[roundnode] (13) [right=of 12] {}; + \node[above] at (13.north) {$D(1)$}; + \node[roundnode] (14) [right=of 13] {}; + \node[above] at (14.north) {$R/\{0,2\}$}; + + \draw[arrow] (11) -- (12); + \draw[arrow] (12) -- (13); + \draw[arrow] (13) -- (14); + + \node[roundnode] (21) [below=10pt of 11] {}; + \node[left] at (21.west) {$p_1$}; + \node[below] at (21.south) {$I(1)$}; + \node[roundnode] (22) [right=of 21] {}; + \node[below] at (22.south) {$R/\{0,1,2\}$}; + \node[roundnode] (23) [right=of 22] {}; + \node[below] at (23.south) {$R/\{0,2\}$}; + + \draw[arrow] (21) -- (22); + \draw[arrow] (22) -- (23); + + \draw[message] (21) -- ($(12)!0.5!(13)$); + \draw[message] (11) -- ($(21)!0.33!(22)$); + \draw[message] (12) -- ($(21)!0.66!(22)$); + \draw[message] (13) -- ($(22)!0.5!(23)$); + + \end{tikzpicture} +} \ No newline at end of file diff --git a/docs/rapport/rapport_stage/schemas/localiteetat.tex b/docs/rapport/rapport_stage/schemas/localiteetat.tex new file mode 100755 index 0000000..1dc0ddc --- /dev/null +++ b/docs/rapport/rapport_stage/schemas/localiteetat.tex @@ -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) {$I(0)$}; + \node[roundnode] (12) [right=of 11] {}; + \node[above] at (12.north) {$R/\{\emptyset\}$}; + \node[roundnode] (13) [right=of 12] {}; + \node[above] at (13.north) {$R/\{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) {$I(1)$}; + \node[roundnode] (22) [right=of 21] {}; + \node[below] at (22.south) {$R/\{\emptyset\}$}; + \node[roundnode] (23) [right=of 22] {}; + \node[below] at (23.south) {$R/\{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} +} \ No newline at end of file diff --git a/docs/rapport/rapport_stage/schemas/pipeline.tex b/docs/rapport/rapport_stage/schemas/pipeline.tex new file mode 100644 index 0000000..4de6ff9 --- /dev/null +++ b/docs/rapport/rapport_stage/schemas/pipeline.tex @@ -0,0 +1,43 @@ +\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) {$D(1)$}; + \node[roundnode] (12) [right=of 11] {}; + \node[above] at (12.north) {$I(1)$}; + \node[roundnode] (13) [right=of 12] {}; + \node[above] at (13.north) {$D(1)$}; + \node[roundnode] (14) [right=of 13] {}; + \node[above] at (14.north) {$R/\{1\}$}; + + \draw[arrow] (11) -- (12); + \draw[arrow] (12) -- (13); + \draw[arrow] (13) -- (14); + + \node[roundnode] (21) [below=10pt of 11] {}; + \node[left] at (21.west) {$p_1$}; + \node[below] at (21.south) {$I(1)$}; + \node[roundnode] (22) [right=of 21] {}; + \node[below] at (22.south) {$R/\{\emptyset\}$}; + \node[roundnode] (23) [right=of 22] {}; + \node[below] at (23.south) {$R/\{1\}$}; + \node[roundnode] (24) [right=of 23] {}; + \node[below] at (24.south) {$R/\{\emptyset\}$}; + + \draw[arrow] (21) -- (22); + \draw[arrow] (22) -- (23); + \draw[arrow] (23) -- (24); + + \draw[message] (21) -- ($(13)!0.5!(14)$); + \draw[message] (11) -- ($(21)!0.5!(22)$); + \draw[message] (13) -- ($(23)!0.5!(24)$); + \draw[message] (12) -- ($(22)!0.5!(23)$); + + \end{tikzpicture} +} \ No newline at end of file diff --git a/docs/rapport/rapport_stage/schemas/pipeline_crdt.tex b/docs/rapport/rapport_stage/schemas/pipeline_crdt.tex new file mode 100644 index 0000000..d67259f --- /dev/null +++ b/docs/rapport/rapport_stage/schemas/pipeline_crdt.tex @@ -0,0 +1,43 @@ +\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) {$I(O_1)$}; + \node[roundnode] (12) [right=of 11] {}; + \node[above] at (12.north) {$I(O_2)$}; + \node[roundnode] (13) [right=of 12] {}; + \node[above] at (13.north) {$I(O_3)$}; + \node[roundnode] (14) [right=50pt of 13] {}; + \node[above] at (14.north) {$R/\{O_0, O_1, O_2, O_3\}$}; + + \draw[arrow] (11) -- (12); + \draw[arrow] (12) -- (13); + \draw[arrow] (13) -- (14); + + \node[roundnode] (21) [below=10pt of 11] {}; + \node[left] at (21.west) {$p_1$}; + \node[below] at (21.south) {$I(1)$}; + \node[roundnode] (22) [right=of 21] {}; + \node[below] at (22.south) {$R/\{O_0, O_1\}$}; + \node[roundnode] (23) [right=of 22] {}; + \node[below] at (23.south) [below=15pt] {$R/\{O_0, O_1, O_2\}$}; + \node[roundnode] (24) [right=50pt of 23] {}; + \node[below] at (24.south) {$R/\{O_0, O_1, O_2, O_3\}$}; + + \draw[arrow] (21) -- (22); + \draw[arrow] (22) -- (23); + \draw[arrow] (23) -- (24); + + \draw[message] (21) -- ($(13)!0.5!(14)$); + \draw[message] (11) -- ($(21)!0.5!(22)$); + \draw[message] (13) -- ($(23)!0.5!(24)$); + \draw[message] (12) -- ($(22)!0.5!(23)$); + + \end{tikzpicture} +} \ No newline at end of file diff --git a/docs/rapport/rapport_stage/schemas/validite.tex b/docs/rapport/rapport_stage/schemas/validite.tex new file mode 100755 index 0000000..f3f9d38 --- /dev/null +++ b/docs/rapport/rapport_stage/schemas/validite.tex @@ -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) {$I(1)$}; + \node[roundnode] (12) [right=of 11] {}; + \node[above] at (12.north) {$R/\{1\}$}; + \node[roundnode] (13) [right=of 12] {}; + \node[above] at (13.north) {$R/\{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) {$R/\{1\}$}; + \node[roundnode] (22) [right=of 21] {}; + \node[below] at (22.south) {$D(1)$}; + \node[roundnode] (23) [right=of 22] {}; + \node[below] at (23.south) {$R/\{\emptyset\}$}; + + \draw[arrow] (21) -- (22); + \draw[arrow] (22) -- (23); + \end{tikzpicture} +} \ No newline at end of file diff --git a/docs/rapport/rapport_stage/travail/index.tex b/docs/rapport/rapport_stage/travail/index.tex new file mode 100644 index 0000000..aec05d6 --- /dev/null +++ b/docs/rapport/rapport_stage/travail/index.tex @@ -0,0 +1,243 @@ +\subsection{L'étude de la cohérence des données dans les applications distribuée} + +La première étape de la réalisation de mon stage a était la lecture et compréhension de la littérature mise en lien avec le sujet du stage. Le sujet sous-jacent à ces différentes sources peut être résumé à l'étude de la \textbf{cohérence dans des systèmes répartis en milieu malicieux}. + +Il semble essentiel dans un premier temps d'expliquer cet énoncé et de faire le lien avec notre projet plus concret. + +En tant qu'application collaborative en temps réel, notre problème doit impliquer une application distribuée. C'est-à-dire une suite de procédure sous la forme d'un algorithme qui pourra être exécutés par l'ensemble des membres collaborant et qui aura comme objectif la synchronisation des informations entre les utilisateurs. + +Ce genre d'application nécessite de manière intrinsèque une architecture dite distribuée. On formalisera ainsi un système distribué comme étant un ensemble de nœud capable d'échanger de l'information les uns avec les autres au vu de réaliser une tâche commune. + +Les applications collaboratives grand public actuelles (Google Doc \cite{GoogleDoc}, Office365 \cite{Office365}, OnlyOffice \cite{OnlyOffice}) utilisent une approche de synchronisation entre les utilisateurs qui imite un comportement similaire à une exécution sans collaboration. Elles utilisent ainsi une architecture client-serveur. Chaque opération d'écriture et de lecture du document soumise par le client doit être validé en amont par le serveur qui s'assurera de la préservation de la cohérence du document entre chaque membre à chaque instant. En d'autres termes avec cette approche si on prend une image de l'état des données stocké par l'ensemble du réseau, alors elle sera identique pour chaque nœud. + +Cette approche est la plus évidente et est la plus proche d'un comportement attendu par un utilisateur sur ce genre d'usage. Mais elle présente tout de même quelques problèmes. +Premièrement elle nécessite que tous les membres possèdent une latence raisonnable, afin de permettre la meilleure interactivité possible. L'ensemble des nœuds du système doivent se baser sur la latence du nœud le plus lent, nuisant à l'interactivité de l'application. Pour éviter cela, les applications exclues les membres possédants des connexions trop lentes limitant donc les utilisateurs potentiels. + +Cette approche n'est pas non plus compatible avec une réplication du serveur sans occasionner une baisse de l'interactivité par la même occasion. Posant ainsi le problème d'un point de faille unique où si le serveur se trouve être inaccessible, l'application ne peut plus être fonctionnel. +Par extension dans le cas d'une segmentation du réseau, les membres n'étant pas sur le segment commun avec le serveur se retrouve exclues de l'application. + +La dernière limitation de cette approche et qu'elle implique que le serveur central ait accès aux données partagé et en soit l'ordonnanceur, ce qui rentre complétement en désaccord avec l'approche zero-trust de Parsec. Cette solution n'est donc pas acceptable, heureusement des compromis sont possibles autorisant des comportements qui serait inacceptable dans un contexte de synchronicité forte entre les nœuds, mais ne nuisant pas nécessairement à notre application finale. Afin d'étudier les différents compromis possibles nous devons donc nous pencher sur l'étude de la cohérence dans les systèmes répartie. + +Nous nous intéressons à la notion de milieu malicieux, c'est-à-dire considérer que n'importe quel nœud du réseau peut se révéler être dissident de la procédure attendue à des fin rationnelle ou non, puisque dans notre contexte, l'application sera distribuée dans un environnement de production et doit donc à ce titre prendre en considération ce genre de cas. + +\subsubsection{Comment étudier la cohérence dans un système répartie} + +L'étude de la cohérence des données dans un système répartie est à différencié de l'étude algorithmique de l'application distribuée sous-jacente. Ce qui nous intéresse dans l'étude de la cohérence est la manière dont les états locaux des différents nœuds évolues dans le temps et non pas la manière avec laquelle nous avons obtenu ces états locaux. Cette nuance est importante puisqu'elle nous force à regarder les changements d'états comme une histoire résultant d'une certaine exécution d'un algorithme sans être biaisé par les spécifications de ce dernier. On ne se base donc plus sur ce que l'algorithme est censé produire, mais sur l'histoire que nous observons. + +Pour observer et décrire ces histoires, nous avons besoin d'un modèle assez simple pour pouvoir être facilement généralisé tout en étant capable d'expliquer la totalité de ce qui peut être observable. Nous utiliserons ainsi la modélisation utiliser par Perrin \cite{perrin_concurrence_2017} dans son ouvrage précédemment cité. +PERRIN définit différents types de données mettant plus ou moins en avant certains comportements. Dans le cadre de ce rapport, nous utiliserons essentiellement l'"ensemble" qui se rapproche le plus de notre objectif final. + +L'ensemble peut être soumis à 3 opérations différentes : +\begin{itemize} + \item L'insertion notée $I(v)$ permet d'insérer l'élément $v$ dans l'ensemble. + \item La suppression notée $D(v)$ permet de retirer l'élément $v$ de l'ensemble. + \item La lecture notée $R$ retourne l'état de l'ensemble. +\end{itemize} + +Par exemple imaginons un système à un seul nœud où les opérations $I(0) \bullet I(1) \bullet I(2) \bullet R \bullet D(1) \bullet R$ sont réalisées. +Nous pouvons modéliser cette exécution comme vue dans la figure \ref{enesmble}. + +\begin{figure}[!h] + \centering + \resizebox*{.75\textwidth}{!}{\input{schemas/ensemble}} + \caption{Exemple d'histoire concurrente à un seul nœud sur un ensemble} + \label{enesmble} +\end{figure} + +Il est important de noter que dans un ensemble, il n'y a pas de notion d'ordre. Si un élément est inséré plusieurs fois dans l'ensemble alors il ne sera présent qu'une unique fois au maximum et ne nécessitera qu'une seule opération de suppression pour être retiré. + +Nous pouvons, à partir de la figure \ref{enesmble} retrouver la liste des opérations qui nous on servit à la produire, c'est-à-dire $I(0) \bullet I(1) \bullet I(2) \bullet R \bullet D(1) \bullet R$. Cette liste d'opération est ce qu'on appelle une linéarisation de l'histoire décrite par la figure. Dans le contexte de l'étude de la cohérence d'un système on ne prend pas une linéarisation existante pour produire une histoire, mais on observe de manière extérieure une histoire et on essaye par la suite de montrer si une linéarisation est possible. + +Reprenons notre exemple en y ajoutant un second nœud. + +\begin{figure}[!h] + \centering + \resizebox*{.5\textwidth}{!}{\input{schemas/ensemble_2}} + \caption{Exemple d'histoire concurrente à 2 nœuds sur un ensemble} + \label{enesmble2} +\end{figure} + +Dans la figure \ref{enesmble2} nous avons répartie les opérations entre plusieurs nœuds. C'est le comportement qu'on pourrait observer dans une application d'édition collaborative par exemple. Mais ici il semble moins évident d'extraire une linéarisation. + +La linéarisation la plus évidente pourrait être montrée sur la figure \ref{enesmble2lin}. + +\begin{figure}[!h] + \centering + \resizebox*{.5\textwidth}{!}{\input{schemas/ensemble_2_lin.tex}} + \caption{Exemple de linéarisation possible} + \label{enesmble2lin} +\end{figure} + +Ici nous imaginons que ce qui à pu produire une telle histoire est l'exécution séquentielle des opérations $I(0) \bullet I(1) \bullet I(2) \bullet R \bullet D(1) \bullet R$. Ce qui ne diffère donc en rien d'une exécution à un seul nœud. La cohérence est entièrement préservée et on ne distingue pas cette exécution d'une exécution similaire réalisée par un unique nœud. + +On parle alors de cohérence forte, ou de cohérence séquentielle. Puisque la linéarisation est indiscernable de celle d'une exécution séquentielle. + +Néanmoins, il est aussi envisageable que l'exécution se soit déroulée comme ce qui est montrée dans la figure \ref{enesmble2linbis}. + +\begin{figure}[!h] + \centering + \resizebox*{.50\textwidth}{!}{\input{schemas/ensemble_2_lin2.tex}} + \caption{Exemple de linéarisation possible} + \label{enesmble2linbis} +\end{figure} + +Ici chaque nœud possède sa propre linéarisation. Du point de vue du nœud 0 l'exécution est linéarisé comme suit $I(0) \bullet I(2) \bullet I(1) \bullet D(1) \bullet R$. Tandis que pour le nœud 1 il s'est plutôt passé l'exécution suivante $I(1) \bullet I(0) \bullet I(2) \bullet R \bullet D(1) \bullet R$. +Ici le résultat final ne change pas, mais les évolutions des états de chaque nœud diverge à certains moments. Dans le cas où l'exécution se serait terminé prématurément, les deux nœuds auraient fini leur collaboration dans des états différents. + +L'histoire présentée en figure \ref{enesmble2} ne nous permet pas de trancher. Par défaut l'approche est optimistes et nous considérons que cette histoire satisfait le critère de cohérence séquentielle puisque étant le critère le plus haut applicable à cette histoire. + +\subsubsection{Les critères de cohérences faibles} + +La cohérence séquentielle est le nom donné au critère qui définit qu'une histoire concurrente soit indiscernable de son équivalent non concurrent. C'est le critère de cohérence le plus fort, celui privilégier par les applications d'édition collaborative grand public. + +La cohérence séquentielle a était découverte au début de l'informatique distribuée par Lamport \cite{lamport_how_1979,lamport_interprocess_1986} lorsqu'il travaillait pour Intel sur les premiers processeurs multicœur. +À l'époque les processeurs atteignait une limite en termes de précision de gravure. Et est naturellement venu l'idée de mettre plusieurs cœurs dans une même puce afin de répartir la tâche et de gagner en performance. Il a fallu réfléchir au comportement qu'on attendait d'une telle architecture afin d'éviter au maximum les conflits et la perte de temps lié à la résolution de problèmes de synchronisation des cœurs entre eux. + +La cohérence séquentielle peut être découpée en 3 propriétés que sont : la validité, la localité d'état et la convergence. On dit que la cohérence séquentielle satisfait ces trois propriétés, on la considère ainsi comme étant un critère de cohérence fort. Les critères de cohérences ne satisfaisant qu'un seul ou deux de ces propriétés sont donc qualifiés de cohérence faible, proposant des compromis diminuant la cohérence d'une application, mais présentant des avantages sur l'efficacité algorithmique. + +\paragraph{La convergence} + +La convergence est la première propriété que nous allons définir. Elle est illustrée par la figure \ref{convergence}. + +\begin{figure}[!h] + \centering + \resizebox*{.4\textwidth}{!}{\input{schemas/convergence.tex}} + \caption{Exemple d'histoire convergente} + \label{convergence} +\end{figure} + +La convergence se concentre seulement sur l'état final de l'histoire concurrente sans jamais prendre en compte les opérations précédentes. Pour qu'une histoire satisfasse le critère de convergence, elle doit admettre un état unique justifiant les lectures finales d'un système. + +En d'autres termes, si tous les membres du réseau arrêtent d'écrire et réalisent en boucle sur une durée infinie des opérations de lecture. Alors toutes les opérations de lectures doivent fournir un résultat identique dépendant d'un seul et même état. + +Dans la figure \ref{convergence} on constate que les lectures finales ne prennent pas en compte les opérations précédentes. Ce qui se traduit du point de vue du nœud 0 par une non prise en compte de ses soumissions, et du point de vue du nœud 1 comme un retour en arrière de son état après la soumission d'un événement. Mais aucune opération de suppression n'a jamais était émise. +Ainsi il n'existe aucune linéarisation possible permettant de justifier cet état final. + +Si nous voulions le traduire de manière concrète à la problématique d'un éditeur collaboratif, cela reviendrait en un document qui se verrait modifier dans un premier temps, puis sur lequel ces mêmes modifications serait supprimées sans raison apparente pour l'utilisateur. Cela ne permet donc pas de garantir une cohérence du point de vue de l'expérience utilisateur, mais seulement une cohérence sur l'état final des données. + + +\paragraph{La Localité d'état} +Là où la convergence assure la cohérence des données à la fin de l'exécution, la localité d'état assure la cohérence du point de vue du nœud. + +On le formalise donc comme l'existence pour chaque nœud d'une linéarisation incluant l'ensemble des opérations de lecture de ce nœud ainsi qu'un sous-ensemble des écritures du système. + +\begin{figure}[!h] + \centering + \resizebox*{.4\textwidth}{!}{\input{schemas/localiteetat.tex}} + \caption{Exemple d'histoire respectant la localité d'état} + \label{le} +\end{figure} + +Dans le cas de la figure \ref{le} on observe bel et bien une histoire qui respecte la localité d'état. Les lectures du nœud 0 peuvent être linéarisées tel que $R/\{\emptyset\} \bullet I(1) \bullet R/\{1\}$. Il en est de même pour le nœud 1 via la linéarisation $R/\{\emptyset\} \bullet I(0) \bullet R/\{0\}$. + +Ce qui nous interpelle ici, c'est que nous avons omis les écritures locales à chaque nœud afin de préserver la cohérence des lectures. Dans la localité d'état, il est plus important que les observations de l'utilisateur soient cohérentes, plutôt que de conserver les actions réalisées par ce dernier. +Les informations peuvent très bien être divergente in fine puisque ce qui compte, c'est la cohérence de l'expérience et non pas celle du système. + +En appliquant le critère à notre problématique d'éditeur collaboratif. Cela reviendrait à un document qui aura toujours du sens du point de vue de l'utilisateur, mais risquant de diverger entre les différents nœuds. Créant ainsi une ramification des versions du document. On peut l'assimiler au fonctionnement d'un dépôt git mettant à jour seulement les fichiers n'ayant jamais était édité par l'utilisateur, s'affranchissant ainsi de tout conflit à régler qui viendrait perturber la cohérence locale. + +\paragraph{La Validité} + +La dernière propriété à être présentée est la Validité. Elle assure que les lectures finales résultent d'une linéarisation de l'ensemble des opérations d'écritures. + +\begin{figure}[!h] + \centering + \resizebox*{.4\textwidth}{!}{\input{schemas/validite.tex}} + \caption{Exemple d'histoire respectant la validité} + \label{validite} +\end{figure} + +Dans la figure \ref{validite} cela se traduit par la lecture $R/\{1\}$ linéarisable par $D/(1) \bullet I(1) \bullet R/\{1\}$ bien que cet ordre n'est pas cohérent au vu de la première lecture du nœud 1. En effet, elle force à croire que l'insertion est déjà prise en compte avant même que l'opération de suppression ne soit soumise. + +La validité ne peut donc pas permettre la préservation d'une cohérence locale ou convergente. Mais elle assure que le résultat est cohérent dépendamment des opérations d'écritures émises dans le système. + +Dans notre contexte imaginons que deux utilisateurs modifie la même partie du document en local. Si leurs travaux vise à être fusionnés, alors il risque d'y avoir deux fois la même ligne, ou bien un entrelacement des deux lignes. Mais en respectant la validité on assure qu'en aucun cas l'utilisateur se verra supprimer ou refuser son opération par l'algorithme. + +\subsection{Quelle direction pour notre sujet ?} + +Perrin \cite{perrin_concurrence_2017} propose une cartographie des différents critères de cohérences connus. +Elle prend la forme d'une carte en deux dimensions comportant 3 zones s'entrelaçant comme montré dans la figure \ref{perrin}. Chaque zone correspondant à une propriété définit plus haut. + +\begin{figure}[h!] + \centering + \resizebox{0.4\columnwidth}{!}{ + \includegraphics{images/carte_criteres.png} + } + \caption{Cartographie des critères de cohérences par Mathieu Perrin} + \label{perrin} +\end{figure} + +L'intersection de ces 3 zones correspond donc à la cohérence forte. Et le reste du schéma à des critères de cohérence faibles. + +Pour savoir où chercher le critère de cohérence nécessaire à la résolution de notre problématique, nous devons déterminer quelles sont les propriétés nécessaires à la réalisation d'un bon éditeur collaboratif. + +Ainsi la convergence semble être une propriété essentielle pour notre produit. En effet, on attend d'un bon éditeur de document qu'il nous permette de réaliser, une fois les sessions d'éditions terminées, un document unique et non pas plusieurs versions divergentes. + +Pour rester dans la cohérence faible, nous devons au choix respecter soit la validité, soit la localité d'état. + +Dans le premier cas, nous prenons parti de tolérer des remaniements de l'histoire lors des synchronisations provoquant le non-respect de la cohérence du document du point de vue de l'utilisateur. Cela risque de créer des insertions et suppressions arbitraires et des annulations d'opérations pourtant bien retourner à l'utilisateur. L'expérience semblera incohérente et illogique pour ce dernier. + +Dans le second on autorise le système à réaliser des opérations n'ayant jamais était émise ou omettre d'autres opérations afin de préserver la cohérence locale. Dégradant par la même occasion l'expérience de l'utilisateur en lui donnant une sensation de "retour en arrière" sur ses opérations. + +\subsection{Accepter de la non-convergence avec les CRDTs} + +Une autre solution est néanmoins possible, en utilisant un type de donnée particulier. En effet, il est possible d'accepter une non-convergence des états si le type de données que nous échangeons permet déjà d'assurer une convergence. C'est possible en utilisant des CRDTs que nous allons définir. + +Les CRDTs (Conflict-free Replicated Data Types) \cite{shapiro2011conflict} sont des structures de données conçues pour fonctionner efficacement dans des environnements distribués, où plusieurs répliques des données peuvent être modifiées simultanément. Ils garantissent la convergence des données répliquées sans nécessiter d'ordonnanceur intermédiaire. + +Le principe fondamental des CRDTs repose sur la notion d'opérations commutatives et associatives. En d'autres termes, les opérations sur les données répliquées peuvent être effectuées dans n'importe quel ordre sans entraîner de conflits ou de résultats incohérents. Cela permet aux applications utilisant des CRDTs de soumettre des opérations concurrentes sans jamais avoir à ne résoudre de conflit. + +Les CRDTs peuvent nous permettre dans notre cas, de s'affranchir du critère de convergence et ainsi privilégier la validité et la localité d'état qui sont les deux impactants l'expérience de l'utilisateur d'un point de vue local. + +\subsubsection{Quel est donc le critère le plus adapté ?} + +En étudiant la cartographie de Perrin (figure \ref{perrin}), il semble que les critères les plus pertinents sont la cohérence pipeline ($PC$), la cohérence causale ($CC$) et la cohérence causale forte ($SCC$). Au moment où j'écris ce rapport je n'ai pas encore déterminé lequel de ces 3 critères est le plus pertinent pour notre problématique. Néanmoins, nous pouvons présenter la cohérence pipeline qui est la base des deux autres critères, ce qui donne une idée d'à quoi un système respectant à la fois la Validité et la Localité d'état peut ressembler. + +\paragraph{Cohérence Pipeline} + +La cohérence pipeline fonctionne sur une logique du "premier arrivé premier servit" comme illustré dans la figure \ref{pipeline}. + +\begin{figure}[!h] + \centering + \resizebox*{.4\textwidth}{!}{\input{schemas/pipeline.tex}} + \caption{Exemple d'histoire respectant la cohérence pipeline} + \label{pipeline} +\end{figure} + +Ce critère ne garantit en effet pas la convergence, puisque les opérations peuvent arriver dans des ordres différents d'un nœud à l'autre. C'est problématique dans le cas d'un ensemble pouvant être soumis à des insertions et des suppressions comme ici. Mais dans une optique d'utilisation avec des CRDTs il n'y a pas nécessité à retirer des éléments. Notre ensemble stockera simplement un ensemble de CRDTs qui, peu importe leurs ordres d'arrivés reproduira systématiquement la même histoire. Ainsi nous aurions une exécution plus proche de celle de la figure \ref{pipeline_crdt}. + +\begin{figure}[!h] + \centering + \resizebox*{.5\textwidth}{!}{\input{schemas/pipeline_crdt.tex}} + \caption{Exemple d'histoire respectant la cohérence pipeline utilisant des CRDTs} + \label{pipeline_crdt} +\end{figure} + +\subsection{Appliquer un système reparti à un environnement malicieux} + +Une partie de mon travail à étais d'étudier le lien entre l'acceptation de critère de cohérences faibles et les risques de comportements malicieux. + +J'ai donc formulé à ce moment-là deux hypothèses possibles : + +Dans la première le fait de baisser le critère de cohérence ouvre la porte à plus de risques de comportement malicieux. Cette hypothèse semble être celle la plus étudiée. \cite{van_der_linde_practical_2020,kumar_fault-tolerant_2019} Mais les études sur le sujet semble concentrer les comportements à des implémentations satisfaisant les critères de cohérences et non pas au critère lui-même. Rendant ainsi difficile l'attribution de comportements malicieux à un critère de cohérence particulier. Il est compliqué de discerner si ces comportements ne relèvent pas simplement d'une erreur protocolaire dans l'implémentation. + +La deuxième hypothèse consiste à dire que puisque le critère de cohérence baisse, on accepte plus de situations qui serait considérés problématiques et malicieuse en temps normal. Ce qui rend par cette occasion un système à faible cohérence plus robuste. +Je n'ai pas trouvé de littérature appuyant particulièrement cette seconde hypothèse. + +\subsection{Les outils et pistes pour le développement d'un produit final} + +Le développement d'un éditeur collaboratif sans autorité de contrôle implique nécessairement la mise en place d'un réseau en pair à pair. Je me suis donc posé la question de la faisabilité réelle d'un réseau P2P à travers Internet dans le contexte d'une entreprise. + +Le frein principal est la présence de NAT du côté du fournisseur d'accès puis de l'entreprise. Dans des systèmes d'information complexe il peut même y avoir plusieurs profondeurs de NAT au sein d'une seule organisation. Le NAT (Network Address Translation) à pour but de faire une translation d'adresse entre l'adresse publique de l'entreprise, routable via Internet, avec l'adresse privé de la machine, routable seulement sur le réseau local de l'entreprise. +Cette couche rend impossible pour une personne extérieure au réseau de l'entreprise de contacter un client cacher derrière un NAT sans que celui-ci soit configurer à cet usage. + +Ce fonctionnement est particulièrement problématique dans le contexte d'une application en pair à pair. La solution qui fait néanmoins consensus est d'adopter la technique du hôle-punching. \cite{ford2005peer} +Le hôle-punching consiste en un détournement du fonctionnement du protocole UDP afin de réaliser une connexion en pair à pair. + +Pour ce faire nous avons besoin d'un serveur exposé sur Internet et connu des pairs. Lorsqu'un des nœuds source veut entrer en contact avec un nœud cible, il demande au serveur la mise en relation avec un autre membre du réseau. +Le serveur envoie donc l'adresse IP et le port du NAT derrière lequel se cache le nœud cible. + +Dans le même temps, le serveur prévient le nœud cible de l'arrivée du nœud source. Une fois que les deux nœuds possèdent mutuellement l'adresse de l'un et de l'autre. Ils initient chacun auprès de leurs NAT une connexion l'un vers l'autre. Le NAT du nœud source s'attend donc bien à recevoir un message du NAT du nœud cible et vice-verse. + +Cette technique nous permet donc d'envisager le fonctionnement d'un tel système en pair à pair dans un contexte réel d'entreprise. + +La seule limitation qui pourrait se retrouver en désaccord avec la politique zero-trust de parsec est la mise en place d'un serveur dit de "rendez-vous" qui devrait gérer un annuaire des adresses IP de chaque nœud du réseau. Mais ce sont les seules informations auquel le serveur à accès puisque le reste de l'échange se réalise directement en pair à pair. Le serveur Parsec possédant déjà l'information de l'adresse IP de par les logs d'accès au stockage de fichier, cette solution ne nécessite aucune information supplémentaire de la part du serveur Parsec. Elle reste donc compatible avec les primitives de sécurités et de confidentialités liées à Parsec. \ No newline at end of file -- GitLab