Service Communautaire d'Information sur la Recherche et le Développement - CORDIS

FP7

SyncFree — Résultat en bref

Project ID: 609551
Financé au titre de: FP7-ICT
Pays: France
Domaine: Technologie de l'information et de la communication

Les CRDT pour les applications non synchronisées en réseau

Historiquement, la synchronisation est la seule méthode utilisée pour empêcher deux ordinateurs utilisant la même application en ligne de modifier les mêmes données au même moment. Affirmant que ce système est inefficace et constitue un gaspillage de ressources, le projet SYNCFREE suggère une meilleure approche, utilisant les CRDT (Conflict-free Replicated Data Type).
Les CRDT pour les applications non synchronisées en réseau
Les CRDT existent depuis un certain temps. Ces structures de données peuvent être répliquées entre plusieurs ordinateurs d'un réseau et mises à jour indépendamment sans nécessiter de synchronisation, et peuvent empêcher les incohérences en fusionnant leurs mises à jour respectives. Cependant, les applications critiques telles que les portefeuilles virtuels, les plateformes publicitaires, les réseaux sociaux ou les jeux en ligne continuent à recourir à la synchronisation.

«La synchronisation est antinomique avec une réponse rapide et la disponibilité», déclare Marc Shapiro, ingénieur informaticien à l'UPMC-LIP3 et l'Inria, et coordinateur de SYNCFREE. «Lorsqu'un ordinateur attend d'une autre machine une permission de mise à jour, il ne fait rien d'utile, gaspille les ressources, et ne répond même plus à l'utilisateur. Pire encore, si le réseau tombe en panne, l'attente peut durer indéfiniment et l'application est plantée.»

Grâce aux CRDT, ces deux ordinateurs peuvent effectuer leurs mises à jour en même temps et de façon indépendante: l'un envoie ses mises à jour à l'autre; et chacun fusionne les mises à jour distantes qu'il reçoit avec ses propres mises à jour. «Cela demande une programmation rigoureuse et ne fonctionne pas pour tous les types de données. Mais cette méthode s'est avérée très utile dans la pratique. Les programmes à base de CRDT sont d'autre part 'Available under Partition' (AP), ce qui signifie que chaque ordinateur peut accomplir ses tâches même lorsque le réseau ne fonctionne plus. Comme un ordinateur gérant des CRDT ne demande pas de permission, il est toujours en mesure de répondre immédiatement, ce qui réduit également les coûts», explique M. Shapiro.

À la différence des approches AP précédentes, dont l'utilisation par les développeurs de logiciels était très complexe, un CRDT a une sémantique claire et encapsule dans une interface intuitive les détails de la communication distante et de la fusion.

L'un des problèmes liés au développement de l'exploitation commerciale des CRDT tenait au manque d'applications et de systèmes entièrement basés sur cette technologie. Cela a posé divers problèmes, en particulier pour ce qui concerne la façon de construire un système de communication et de stockage à base de CRDT, de conserver les propriétés désirées lors de la mise à jour de plusieurs éléments d'information dans un système AP, de programmer efficacement des applications basées sur CRDT, et d'évoluer vers des systèmes informatiques répartis en nuage comprenant des centaines d'ordinateurs.

Ce sont précisément ces obstacles qu'a cherché à surmonter SYNCFREE. «Le projet a obtenu des résultats positifs dans tous ces domaines», explique M. Shapiro. «Entre autres choses, nous avons mis en place Antidote, une base de données open-source performante en cloud, dont nous avons fait la démonstration sur des centaines de machines réparties partout dans le monde. Nous avons développé de nouvelles approches plus évolutives pour stocker des CRDT et transmettre des mises à jour. Nous avons développé des programmes de grande taille, en particulier un benchmark distribué appelé FMKe (nommé selon le réseau de soins de santé danois FMK). Nous avons fait la démonstration d'un langage de programmation réparti en mode flux de données appelé LASP et nous avons conçu une méthodologie, appelée Just-Right-Consistency, garantissant que les données stockées dans ce système se comportent réellement comme le prévoit l'application.»

Même avant le début du projet, certains de ces concepts avaient déjà été adoptés par l'industrie, dont les quatre partenaires industriels de SYNCFREE qui ont largement contribué à la définition des exigences relatives à l'application, aux suggestions de développement et aux données issues d'applications déployées réelles, à l'échelle du nuage. L'un des partenaires utilise Antidote comme l'un de ses produits.

«Maintenant que le projet SYNCFREE est achevé, nous venons juste de démarrer un projet H2020 de suivi appelé LIGHTKONE, qui intègre un plus grand nombre de partenaires industriels. L'objectif est de permettre une informatique distribuée universelle de grand volume 'en périphérie'. Alors que SYNCFREE s'est fortement axé sur un environnement de centre de données, LIGHTKONE vise à garder les données et les traitements aussi proches que possible des utilisateurs. Cela suscite de nouveaux défis intéressants lorsqu'on passe de quelques centaines d'ordinateurs dans un environnement bien contrôlé à plusieurs millions d'ordinateurs, situés dans des environnements imprévisibles», déclare M. Shapiro. «Indépendamment de cela, une entreprise utilise LASP en production, et nous avons de bons espoirs qu'Antidote sera adoptée. Nous discutons même de plans pour une startup destinée à commercialiser les résultats du projet.»

En attendant, la plupart des contributions du projet, dont Antidote, LASP, FMLe et les outils Just-Right Consistency, sont déjà disponibles sur GitHub sous licence Apache.

Mots-clés

SYNCFREE, Antidote, CRDT, synchronisation, github, ordinateur, application