Ensuring availability and managing consistency in geo-replicated file systems
Assurance de disponibilité et cohérence dirigeante dans systèmes de fichiers géo-reproduits
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 | Version validée par le jury (STAR) |
---|
Loading...