Les systèmes géo-distribués souffrent de latences élevées et de partitions réseau. À cause de cela, et pour assurer une haute disponibilité, de tels systèmes effectuent généralement des mises à jour localement, sans latence, et les propagent ensuite en arrière-plan. Cette réplication optimiste est confrontée à deux défis majeurs : (i) détecter les conflits entre les mises à jour simultanées et les résoudre d’une manière significative pour les utilisateurs, tout en maintenant les invariants d’intégrité du système; et (ii) la prise en charge d’applications qui n’ont pas été conçues pour gérer les anomalies de concurrence.
La recherche menée dans ce doctorat répond à ces défis pour le cas d’utilisation spécifique d’un système de fichiers géo-distribué à grande échelle. Ce cas s’y prête parfaitement : en effet, un système de fichiers géo-distribué a une structure hiérarchique complexe. Maintenir les invariants du système tout en le mettant à jour est une tâche compliquée. De plus les applications visualisent le système de fichiers via l’API POSIX qui n’a pas été pensée pour faire face à ce problème.
Nous présentons notre solution aux problèmes posés ci-dessus dans la conception et la mise en œuvre d’un prototype de système de fichiers géo-distribué, nommé Tofu. Sa conception inclut une nouvelle abstraction de session pour prendre en charge l’API, tout en permettant des mises à jour optimistes. Contrairement aux approches précédentes, notre solution est basée sur un modèle formel couvrant tous les aspects d’un système de fichiers Unix, y compris les répertoires, les nœuds d’index, les liens matériels, etc. Il est capable de détecter tous les conflits sur ces structures de données et de les résoudre d’une façon que nous pensons que les utilisateurs trouveront généralement raisonnable. Les expériences montrent que Tofu est hautement évolutif et qu’il entraîne des surcoûts linéaires, améliorant ainsi les systèmes académiques et industriels existants.