Comparatif des bases de données NoSQL Cassandra : une base NoSQL adaptée à une architecture décentralisée

À choisir pour : choix intéressant pour de grands volumes de données et les besoins de bases distribuées, hautement disponibles et décentralisées, sur de multiples datacenters. Comme pour HBase, Cassandra n'est pas un choix intéressant pour des volumes de données moyens ou des systèmes non distribués.

Types de données manipulées : base de données orientée colonnes. Données organisées dans un keystore (l'équivalent d'une base de données) par famille de colonnes (l'équivalent d'une table) selon une clé et des colonnes. La cellule est composée d'un nom de colonne, de la valeur et d'un timestamp. Les familles de colonnes doivent être prédéfinies, mais les colonnes dans une famille ne font pas l'objet d'un schéma défini. Contrairement à HBase, Cassandra a une clé par famille de colonnes, ce qui le rapproche plus d'un modèle de base de données relationnelle. Même si Cassandra stocke ses données sous forme de tableaux d'octets, on peut définir des types de données sur des colonnes en utilisant des validateurs. Il est donc en quelque sorte possible de typer ses données en Cassandra.

 Maintien de la cohérence : la cohérence en écriture et en lecture sont paramétrables. Par exemple, on peut forcer une écriture, ou une lecture, à être validée sur plusieurs réplicas avant d'être considérée comme effectuée. À partir de Cassandra 1.1, l'ACIDité est garantie par ligne.

 Mode de distribution : décentralisé. Chaque nœud est indépendant et il n'y a pas besoin de serveur maître. Les connexions utilisateurs peuvent se faire sur n'importe quel nœud, qui se chargera de rediriger le client vers le nœud qui contient les données souhaitées. La répartition, inspirée de Dynamo d'Amazon, est réalisée par hachage consistant, ce qui évite de coûteux redéploiements de données en cas d'ajout de nœuds.

 Développé en : Java.

 Licence et support : Apache 2.0. Cassandra est un projet de la fondation Apache. La société américaine DataStax maintient une édition de Cassandra, nommée DataStax Enterprise, gratuite au téléchargement avec une option d'abonnement avec support.

 Protocole : l'API Cassandra est construite sur Thrift. Une interface Apache Avro a été développée mais le projet est pour le moment abandonné en raison de son faible succès.

 Points forts : implémentation solide, système décentralisé, souplesse de configuration, cohérence paramétrable. Ne nécessite pas un système de fichiers distribué comme HBase. Cassandra est un produit mature, largement utilisé et très populaire, c'est une excellente solution pour bâtir un système de gestion de données volumineux et décentralisé.