Je l’avais déjà évoqué mais NoSQL parle de diversité et regroupe une grande diversité d’outils. Cassandra est l’un d’entre eux et est certainement le plus populaire de l’écosystème NoSQL. Initié par Facebook est actuellement en production chez des grands du web comme Digg ou Twitter, Cassandra est une solution hybride entre Dynamo et BigTable.
Hybride tout d’abord parce que Cassandra utilise une modélisation « Column-oriented » de la donnée (inspiré par BigTable) et permet d’utiliser Hadoop et Map/Reduce. Ensuite parce que Cassandra utilise des patterns issus de Dynamo comme « Eventually consistent », « Gossip protocols », une approche Master-Master des requêtes d’écriture et de lecture…
Un autre gène de Cassandra (et en fait de beaucoup de solutions NoSQL) est que Cassandra a été pensé et construit pour être complètement décentralisé, gérer de façon transparente (au maximum) la perte d’une partie du Cluster, fonctionner entre plusieurs Datacenter (il est possible de configurer Cassandra de manière à s’assurer que la donnée est répliquée entre plusieurs Datacenter…).
C’est ainsi que Cassandra est utilisée entre les Datacenter Facebook des côtes est et ouest des USA pour stocker (il y a déjà 2 ans) plus de 50+ TB de données réparties sur un cluster de 150 nœuds.
(Lire la suite…)