Garantir la disponibilité et la gestion de la cohérence dans les systèmes géo-distribués
Ensuring Availability and Managing Consistency in Geo-Replicated File Systems
Résumé
Geo-distributed file systems suffer from high latency and network partitions.
Because of this, and to ensure high availability, such systems typically commit
updates locally, with no latency, and propagate them in the background. Such
optimistic replication faces two major challenges: (i) detecting conflicts
between concurrent updates and resolving them in a way meaningful for users,
while maintaining system integrity invariants; and (ii) supporting legacy
applications that are not prepared to deal with concurrency anomalies.
Existing optimistic geo-distributed file systems fall short of addressing the
challenges. For instance, Dropbox does not support hard links; Andrew File
System fails on some concurrent renaming of directories; and all existing
systems use automatic conflict resolution that violates the legacy POSIX
semantics.
We present our solution to the above problems in the design and implementation
of a prototype geo-distributed file system, named Tofu. Its design includes a
new session abstraction to support the legacy API, while allowing optimistic
updates. Unlike previous approaches, our solution is based on a formal model
covering all aspects of a Unix-like file system, including directories, inodes,
hard links, etc. It is able to detect all conflicts on those data structures,
and resolves them in a way that we believe users will find generally
reasonable. Experiments show that Tofu is highly scalable, and incurs linear
overhead, improving over existing academic and industrial systems.
Les systèmes de fichiers 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.
Les systèmes de fichiers géo-distribués optimistes existants ne permettent pas
de relever ces défis. Par exemple, Dropbox ne supporte pas les liens matériels.
Le système de fichiers AndrewFS échoue sur certains changements de noms de
répertoires; et tous les systèmes existants utilisent la résolution automatique
des conflits qui viole la sémantique POSIX.
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. 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 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.
Origine | Fichiers produits par l'(les) auteur(s) |
---|
Loading...