michelangelus - Fotolia

Projet Circé : un an pour améliorer les performances de ScyllaDB

La base de données open source NoSQL SycllaDB continue de gagner en fonctionnalités et en utilisateurs alors que son contributeur principal veut en faire une alternative de choix aux produits de DataStax et AWS.

Au cours de l’événement virtuel Scylla Summit 2021 qui s’est déroulé du 12 au 14 janvier, le PDG de ScyllaDB, Dor Laor, a partagé les nouvelles fonctionnalités et la feuille de route pour l’avenir de la base de données NoSQL.

Suite de l'article ci-dessous

L’élément clé à retenir est le projet Circé, une initiative étalée sur un an qui vise à apporter de meilleures performances et une plus grande cohérence à la base de données.

ScyllaDB est un SGBD open source, proposé comme une alternative à Apache Cassandra. Lors du lancement de la version 4.0 de ScyllaDB en mai dernier, Dor Laor avait encouragé les clients d’Amazon DynamoDB à se tourner vers son produit open core en utilisant les outils de migration à leur disposition.

Projet Circé : Scylla veut « arrondir les angles »

Malgré les fonctionnalités apportées par cette itération, Dor Laor a estimé lors du Scylla Summit qu’il reste beaucoup de choses à améliorer en 2021.

« Nous souhaitons nous concentrer sur l’élasticité et la maintenabilité de ScyllaDB au cours de l’année prochaine », affirme le PDG de ScyllaDB. « Nous pensons que même à présent, nous faisons un meilleur travail… mais nous avons encore des angles que nous aimerions bien arrondir ».

Selon Dor Laor, le projet Circé fournira des mises à jour mensuelles avec de nouveaux développements pour aider à améliorer l’élasticité, la cohérence, la stabilité et la performance de ScyllaDB, ainsi que sa facilité de déploiement.

Cohérence des données : Scylla vante les avantages du protocole Raft

L’un des principaux domaines d’amélioration est la cohérence des données grâce à l’utilisation du protocole de consensus Raft. Implanté en décembre 2020, il remplacera à terme le protocole Paxos, censé vérifier l’accord entre les nœuds du cluster afin de valider un changement de données et assurer des transactions « légères » (Lightweight Transactions).

Actuellement, sans Raft, ScyllaDB – tout comme Apache Cassandra – offre la promesse de respecter un modèle de cohérence éventuelle. Dans un article scientifique, deux chercheurs de l’université de Cambridge expliquent que les deux algorithmes de consensus distribué ne sont pas fondamentalement différents, mais que Raft apporte une implémentation bien plus simple.

Pour sa part, Scylla observe que le protocole Paxos impose quatre opérations d’écriture pour chaque transaction, et pour chaque réplique. Ce serait quatre fois moins efficace qu’avec un Quorum. Scylla considère que Raft permettra d’empêcher les conflits de schémas transactionnels liés à un problème de changement avec un langage de définition de données.

« Avec Raft, vous serez en mesure d’avoir une forte cohérence sans aucune pénalité de performance » vante Dor Laor. « C’est donc exceptionnel en matière de cohérence des données. »

Raft doit aussi faciliter « l’ajout ou la suppression d’un nombre quelconque de nœuds simultanément », ce qui n’est actuellement pas possible avec ScyllaDB ou Cassandra. Dès lors, la montée en charge prend de « longues heures » pour doubler ou tripler la capacité d’un cluster.

Concernant la maintenabilité, les ingénieurs de Scylla se penchent sur l’abolition des nœuds d’amorçage (seed nodes en VO) afin de simplifier l’élasticité de l’architecture.

Outre l’amélioration de la stratégie de compactage des SSTables, l’éditeur souhaite perfectionner les outils de restauration avec un nouveau Scheduler IO et une faculté de reprise à la dernière position des opérations de réparation de nœuds au cas où elles échouent.

Par ailleurs, l’opérateur Kubernetes introduit dans la version 4.0 apporte désormais une « méthode de facto » pour gérer la base de données dans un environnement natif au cloud. Scylla assure prendre entièrement en charge cet outil de gestion qui « devrait fonctionner dans tous les écosystèmes Kubernetes, à commencer par Google Kubernetes Engine (GKE) ».

Expedia approuve le modèle de ScyllaDB

Le sommet a également été marqué par le témoignage de nombreux utilisateurs qui ont présenté leurs déploiements de ScyllaDB, notamment Ticketmaster, Expedia Group, Zillow et GE Healthcare. Ces interventions sont importantes pour l’éditeur qui souhaite prouver la supériorité de son architecture face aux fournisseurs de Cassandra, dont DataStax et AWS (fournisseur de DynamoDB).

Singaram Ragunathan, data architect chez Expedia Group, a expliqué au cours de la session que Cassandra, bien que puissante, n’est pas sans défis. Il a fait remarquer que, selon son expérience, il faut beaucoup de temps et d’efforts ainsi qu’une grande expertise pour régler correctement Cassandra afin d’obtenir des performances optimales. En particulier, Expedia a connu quelques problèmes lors de pics de trafic. L’équipe de développement a réagi en ajoutant des nœuds tampons pour augmenter la vitesse et la capacité, ce qui a finalement entraîné une hausse des coûts d’infrastructure.

« Passer d’Apache Cassandra à ScyllaDB se fait sans heurts pour les développeurs. »
Singaram RagunathanData architect, Expedia Group

Expedia a testé ScyllaDB pour tenter d’accélérer les performances, témoigne Singaram Ragunathan, tout en réduisant les coûts d’infrastructure. L’idée de base était qu’avec le même nombre d’instances de calcul virtuel sur le cloud d’AWS que celui utilisé avec Cassandra, Expedia pouvait fournir plus de capacité et de débit en migrant vers ScyllaDB.

« Passer d’Apache Cassandra à ScyllaDB se fait sans heurts pour les développeurs », assure le data architect. « Pour les cas d’usage que nous avons pu essayer, il n’y a pas eu de changement des modèles de données nécessaire et ScyllaDB était entièrement compatible, et un remplaçant de choix ».

Avec quelques petits ajustements au framework d’automatisation d’Expedia qui fournit les clusters Apache Cassandra de la société, Singaram Ragunathan affirme que son équipe a pu provisionner des clusters open source ScyllaDB, et bénéficier de résultats positifs.

« Nous avons pu stocker plus de données et obtenir un meilleur débit par nœud, ce qui a permis à l’entreprise d’économiser des sommes considérables », vante-t-il.

Pour approfondir sur Base de données

Close