Optimistic replication for asynchronous collaborative applications
Réplication optimiste pour les applications collaboratives asynchrones
Résumé
Dans cette thèse, nous présentons un système de réplication optimiste pour les applications collaboratives asynchrones. Dans notre modèle, les réplicas travaillent de façon autonome et se synchronisent deux à deux afin d'assurer la propagation épidémique des écritures et la cohérence globale à terme des données. Nous avons conçu pour cela un protocole qui garantit des échanges incrémentaux. Il optimise la consommation de bande passante et simplifie la détection des mises-à-jour à intégrer. Il repose sur un mécanisme de journalisation des écritures. Ce mode de persistance offre de bonnes performances, une grande robustesse et un support simple pour l'évolution de schéma. Lorsque deux réplicas se synchronisent, des conflits peuvent apparaître. Pour y faire face, nous proposons un mécanisme d'horloge logique qui définit un ordre total sur les écritures, cohérent avec l'ordre temporel. Il permet de résoudre les mises-à-jour conflictuelles par un ordonnancement conforme à l'intuition pour les utilisateurs. D'autres types de conflits propres à l'application et à l'intégrité des données peuvent survenir. Le développeur d'applications dispose d'une interface de programmation pour définir des procédures de résolution spécifiques. Par ailleurs, nous présentons deux extensions au protocole de propagation épidémique pour le rendre exploitable à large échelle : le contrôle de la vitesse de convergence et la réplication partielle. En complément de la réplication des données, nous proposons un "framework" pour le déploiement dynamique des mises-à-jour du code et des ressources de l'application. Enfin, l'ensemble du système de réplication est illustré sur une application collaborative asynchrone, Pharos, qui permet le partage de recommandations dans des communautés d'intérêt.