TTCC : Cohérence Causal Transactionnel par Tour
Auteur / Autrice : | Benoît Martin |
Direction : | Mesaac Makpamgou, Marc Shapiro |
Type : | Thèse de doctorat |
Discipline(s) : | Ingénierie / Systèmes Informatiques |
Date : | Soutenance le 21/04/2023 |
Etablissement(s) : | Sorbonne université |
Ecole(s) doctorale(s) : | École doctorale Informatique, télécommunications et électronique de Paris (1992-...) |
Partenaire(s) de recherche : | Laboratoire : LIP6 (1997-....) |
Jury : | Président / Présidente : Bernd Amann |
Examinateurs / Examinatrices : Carla Ferreira, Peter Van Roy, Annette Bieniusa | |
Rapporteurs / Rapporteuses : Gaël Thomas, Achour Mostefaoui |
Mots clés
Résumé
Les applications serverless sont construites à l'aide de frameworks asynchrones basés sur des messages qui permettent aux utilisateurs de composer de manière abstraite des fonctions dans le cloud. Très souvent, ces applications ont besoin de stocker leur état et de gérer la logique métier, comme l'authentification des utilisateurs, le traitement des flux en temps réel ou les espaces de travail collaboratifs. Le serverless avec état stocke l'état dans une base de données distribuée telle que DynamoDB. Ce scénario architectural courant est fragile car les garanties de cohérence des données pour la composition de la couche de messages et de la couche de base de données ne sont pas bien définies. Cela peut entraîner des incohérences, des pannes et des pertes de données. La cohérence est l'ensemble des règles qui contraignent l'ordre dans lequel les mises à jour (par exemple, l'envoi d'un message ou l'affectation d'une variable partagée) deviennent visibles (pour les récepteurs ou les lecteurs). Il existe de nombreux modèles de cohérence, allant de la sérialisation ou de la linéarisation stricte, où les mises à jour sont visibles instantanément par tous les processus, aux modèles de cohérence les plus faibles, où les mises à jour sont transmises aux nœuds distants dans un ordre imprévisible. La plupart des systèmes existants sont conçus pour communiquer soit par message, soit par mémoire partagée, mais pas les deux. Par conséquent, la littérature définit séparément les modèles de cohérence basés sur les messages et ceux basés sur les données. Cependant, le serverless combine les deux paradigmes. Maintenir des garanties de cohérence séparées n'est pas intuitif et peut conduire à des incohérences entre les garanties de transmission de messages et d'objets partagés. Un modèle de cohérence unifié pour le passage de messages et la mémoire partagée est nécessaire pour éviter de telles erreurs. Ce modèle doit garantir que plusieurs éléments de données restent cohérents, que les données soient envoyées par messages ou partagées dans une mémoire distribuée. Le serverless est asynchrone et donc incompatible avec une cohérence forte (par exemple, linéarisation ou sérialisation) car elle impose des exigences de synchronisation fortes. À l'autre extrémité du spectre, la cohérence éventuelle viole l'intuition. La cohérence causale est un modèle intermédiaire utile, parce qu'il est asynchrone, et en même temps fournit des garanties utiles qui facilitent le raisonnement. Notre modèle TTCC est un modèle transactionnel, causalement cohérent, mémoire-message, qui unifie le passage de messages et la mémoire partagée dans un environnement asynchrone et isolé.