L'évolution de la base de données Cassandra répond à des changements dans les habitudes d'achat matériel des entreprises.  Développée sous l'égide de l'Apache Software Foundation,  Cassandra est une base de données NoSQL distribuée en ring. Avec la  1.2, Cassandra est censée mieux travailler avec des serveurs plus importants grâce à l'introduction de noeuds virtuels et les politiques configurables pour pallier les pannes de disque. Cette mouture offre également la possibilité d'effectuer des opérations par lots plus fines, et est livrée CQL3, avec nouvelle version du langage de requêtes.

Traditionnellement, la base de données « Cassandra est installée sur un grand nombre de machines relativement légères », a déclaré Jonathan Ellis, en charge du projet Cassandra chez Apache et co-fondateur de DataStax, une société offrant un support commercial pour le logiciel. Toutefois récemment, plus d'entreprises ont acheté des serveurs très « denses » avec plus de mémoire et d'espace de stockage, car ces modèles offrent maintenant le meilleur rapport prix-rendement en valeur, indique M. Ellis. Ainsi, la plupart des travaux concernant cette dernière mise à jour de Cassandra ont été réalisés pour mieux supporter ces machines.

Un projet inspiré par la base Dynamo d'Amazon

D'abord développé en interne chez Facebook et rendu public en 2008, Cassandra a été conçu pour stocker des ensembles massifs de données sur plusieurs serveurs. Adobe, Cisco, Disney, eBay, IBM, Netflix, Reddit, Spotify, Twitter et Williams-Sonoma utilisent toute cette technologie.

Cette version du logiciel offre la possibilité de créer des noeuds virtuels (Vnodes), conçus pour rationaliser le processus de récupération d'un serveur individuel quand un cluster Cassandra est tombé. Vnodes devrait également améliorer les performances globales de la base de données. La technologie Vnodes était l'une des principales caractéristiques de la base de données distribuée Dynamo utilisée par le site de vente en ligne Amazon, que les développeurs de Cassandra ont utilisé comme modèle pour leur produit. Les développeurs tout d'abord opté pour une architecture plus simple en attribuer un noeud à chaque serveur.

L'intégration de cette technologie de noeuds virtuels devrait simplifier la gestion des clusters, en particulier lors de l'ajout et la reconstruction des noeuds individuels. Avec Vnodes, chaque serveur peut ainsi contenir plusieurs noeuds. Cette technologie de virtualisation est particulièrement, car les noeuds individuels n'occupent pas tout l'espace disponible dans un serveur. Plusieurs noeuds virtuels peuvent donc être créés sur chaque serveur, qui peut alors répartir plus rapidement des répliques sur d'autres serveurs pour reconstruire un volume si un disque dur ou une machine tombe en panne. Les petits noeuds répartis sur un plus grand nombre de serveurs servent également à mieux équilibrer la charge de travail entre toutes les machines d'un cluster.

Des micro-noeuds virtuels autour d'un ring

« Chaque noeud virtuel est géré par un processus Java sur une machine, donc nous n'ajoutons pas un grand nombre de processus au système d'exploitation. Nous sommes justes sur la partie virtualisation du stockage » a déclaré M. Ellis. Une autre nouvelle fonctionnalité, l'Atomic batching, devraient aider les entreprises qui exigent l'intégrité transactionnelle lors du traitement de commandes. Comme avec un commerçant en ligne qui a besoin de s'assurer que des  ordres ont bien été enregistrés, même si un composant tel qu'un disque dur tombe en panne en plein milieu d'une transaction. Auparavant, les développeurs devaient programmer de tels processus, des mécanismes de relance, dans leur code pour garantir l'intégrité transactionnelle.

Le langage CQL, utilisé pour interroger et extraire des données de Cassandra, a également fait l'objet d'une mise à jour importante. Cette version, CQL3, offre un certain nombre de nouveaux appels qui simplifient la façon dont les applications fonctionnent avec des données stockées dans Cassandra. Désormais, un système d'information peut être directement interrogé. Le langage reconnaît également une collection de requêtes types. Si, par exemple, une seule entrée dans une table de données contient de multiples adresses email, le langage fournit la syntaxe pour récupérer toutes ces adresses e-mail. Autres nouvelles fonctionnalités incluses dans la version 1.2 de Cassandra : une fonction de traçage - un outil de débogage - et des politiques configurables en cas de panne de disques durs. Quand un disque tombe en panne, un administrateur peut choisir d'arrêter ou de poursuivre entièrement les traitements. Diverses améliorations de performances et des corrections de bugs ont également été apportées.

Cassandra 1.2 est disponible en Open Source sous licence Apache version 2. Créée en 1999, l'Apache Software Foundation gère environ 150 projets Open Source.