Cet article fait partie de notre guide: Ces nouveaux moteurs de l’analytique moderne

AntidoteDB milite pour la juste cohérence des données en environnement géo-distribué

Stricte, forte, faible, à terme… la cohérence des données est généralement un élément qui nécessite un arbitrage dans les systèmes massivement distribués. Le projet de base de données Cloud AntidoteDB entend rapprocher cohérence et disponibilité, limitant les compromis. Pour une cohérence juste et adaptée à l’application.

Combler le fossé entre la disponibilité et la cohérence dans les systèmes massivement géo-distribués. C’est à cet exercice que le projet de recherche français de base de données Antidote DB, exposée lors de l’Open Source Innovation Spring (organisé par le pôle de compétitivité Systematic), entend se livrer. L’idée de Marc Shapiro, son concepteur (et chercheur), est tout simplement de titiller le théorème de CAP qui rythme encore aujourd’hui les relations entre la disponibilité, la partionnement et la cohérence des données dans les bases de données actuelles. Par exemple, selon ce théorème, seulement 2 de ces contraintes peuvent être appliquées sur les 3. Un système partitionné doit faire le choix entre la disponibilité ou la cohérence des données – les bases NoSQL, connues pour leur scalabilité et disponibilité sont un exemple type de ce principe.

Le problème se complique un peu plus avec les bases massivement géo-distribuées, qui impliquent de répliquer les données sur des datacenters distants, répartis aux quatre coins du monde. C’est justement là qu’AntidoteDB entend porter une réponse adaptée, avec son concept de « juste cohérence ». En gros, garantir quand l’application le demande, la cohérence des invariants, sans sacrifier la disponibilité induite par ces clusters massifs. « La cohérence quand cela est nécessaire. »

Du séquentiel chez Spanner et CosmoDB

Il faut dire que ces systèmes de données géo-distribués sont apparus depuis quelques mois au catalogue des principaux fournisseurs de services Cloud. On se rappelle de Spanner, initié par Google, et de CosmoDB, un service de Microsoft qui étend largement DocumentDB. Côté Open Source, la base CockroachDB est également apparue dans une v1, et commence à rallier la communauté des développeurs – celle-ci était par exemple très avant lors du dernier Openstack Summit de Boston. Leur approche consiste à proposer une cohérence forte (CosmoDB propose également des niveaux de cohérence faible et intermédiaire) mais sur une infrastructure massivement distribuée. Ce type d’infrastructure est devenu clé pour supporter les architectures applicatives modernes.

Mais pour Marc Shapiro, cela repose sur une forte notion de coordination de mises à jour concurrentes, et implique donc une certaine forme de latence. « Les mises à jour (lecture/écriture) sont effectuées en mode séquentielle l’une après l’autre », note le spécialiste. « Cela marche bien avec une infrastructure comme celle de Google, avec beaucoup de ressources et un bon réseau. Les développeurs sont plus à l’aise car cela génère moins d’erreurs.»

Du côté des bases NoSQL, comme Cassandra ou Riak (deux bases citées par le chercheur), la disponibilité n’est pas remise en cause, mais au détriment d’une cohérence à terme. « Cela est bien asynchrone mais résulte sur un travail accru pour les développeurs », explique-t-il.

Cohérence causale et haute disponibilité

Traduction concrète des travaux du projet SyncFree, AntidoteDB intègre donc ses principes de CRTD (Conflict-Free Replicated Data) qui permettent de prendre en compte les mises à jour concurrentes asynchrones mais en préservant cette très précieux disponibilité. A cela, la base, écrite en Erlang,  supporte la concurrence causale par défaut, assure son concepteur, « le plus haut niveau de cohérence compatible avec la haute disponibilité ». La cohérence causale instaure un ordre de mise à jour via une notion de causalité. Comme l’illustre le site de la base, « la cohérence causale garantit que les événements liés seront rendus visibles selon l’ordre de leur occurrence, tandis que les événements non liés (en concurrence donc) peuvent être dans un ordre différent et sur des réplicas différents ». Les réponses à un post publié sur le mur de Facebook ne doivent pas apparaître avec le post en lui- même. La cohérence causale est le garant de cette mécanique, est-il précisé.

Cela est notamment possible via le support de Cure, explique encore le site du projet, qui permet la fusion des replicas pour garantir un état identique dans le cas de conflit. Au final, AntidoteDB dispose de son propre modèle de cohérence compatible avec partionnement et transactions ACID.

Si aujourd’hui, AntidoteDB est un projet Open Source sous licence Apache, Marc Shapiro laisse entendre qu’une société commerciale est en cours de construction.

 

Pour approfondir sur Base de données