Thèse soutenue

Méthodes automatisées de test formel des systèmes de stockage et des applications

FR  |  
EN
Auteur / Autrice : Ranadeep Biswas
Direction : Ahmed BouajjaniConstantin Enea
Type : Thèse de doctorat
Discipline(s) : Informatique
Date : Soutenance le 30/03/2021
Etablissement(s) : Université Paris Cité
Ecole(s) doctorale(s) : École doctorale Sciences mathématiques de Paris centre (Paris ; 2000-....)
Partenaire(s) de recherche : Laboratoire : Institut de recherche en informatique fondamentale (Paris ; 2016-....)
Jury : Président / Présidente : Mihaela Sighireanu
Examinateurs / Examinatrices : Viktor Vafeiadis, Noam Rinetzky
Rapporteurs / Rapporteuses : Ilya Sergey, Bengt Jonsson

Résumé

FR  |  
EN

À mesure que l'internet devient moins cher et plus rapide, les systèmes et les applications logicielles distribués deviennent de plus en plus omniprésents. Aujourd'hui, ils sont à la base d'un très grand nombre de services en ligne tels que les banques, le commerce électronique, les réseaux sociaux, etc. Au fur et à mesure que la popularité de ces logiciels augmente, il est très important qu'ils garantissent des niveaux élevés de fiabilité et de sécurité.Les logiciels distribués modernes sont centrés sur l'utilisation de systèmes de stockage à grande échelle pour stocker et manipuler des données. Pour assurer la persistance et la disponibilité des données en présence de pannes, ces systèmes maintiennent les donnéesen plusieurs copies stockées sur différents nœuds du réseau. Pour des raisons de performances, ces copies peuvent diverger (temporairement), une instance de la soi-disant cohérence faible, ce qui rend la sémantique des accès concurrents aux données très complexe.Au cours des dernières années, de nombreuses solutions pour implémenter des systèmes de stockage à cohérence faible ont été proposées. Ces implémentations sont le plus souvent très complexes et sujettes aux erreurs. Les niveaux spécifiques de cohérence faible qu'ils assurent ne sont le plus souvent décrits que de manière informelle, ce qui rend difficile le raisonnement sur leurs corrections. De plus, dans de nombreux cas, il existe des écarts importants entre les garanties mentionnées dans leur documentation et les garanties qu'elles fournissent réellement. L'objectif de cette thèse est de proposer des techniques algorithmiques pour le teste automatisé de systèmes distribués à cohérence faible par rapport à des spécifications formelles. Nous étudions une classe importante de types de données distribués, appelés types de données répliqués sans conflit (CRDT), qui inclut de nombreuses variantes comme des registres, des ensembles, des tableaux, etc., et des systèmes (bases de données) transactionnels, qui permettent des calculs sur des données isolés des autres calculs concurrents et tolérants aux pannes. Nous introduisons des spécifications formelles pour de tels systèmes et nous étudions la complexité asymptotique de la vérification de la correction d'une exécution donnée par rapport à ces spécifications. Nous étudions également le problème du teste des applications qui s'exécutent sur des systèmes transactionnels à cohérence faible, en introduisant un système de stockage en mémoire qui simule les comportements de ces systèmes par rapport à leurs spécifications formelles.