La particularité de Cassandra

FondamentalQuand utiliser Cassandra ?

Il est pertinent d'utiliser Cassandra pour un système :

  • Décentralisé : La base doit être distribuée. Les données ne seront pas centralisées en un seul et même serveur. Il y aura donc un cluster, ce cluster permettra de gérer la scalabilité du système. En effet, le volume de données contenu au sein du cluster peut être amené à évoluer rapidement et il est important que l'architecture mise en place puisse s'adapter à ses évolutions.

  • Tolérant aux pannes : L'accès aux données doit être garanti même en cas de pannes. Cassandra permet de paramétrer finement cette tolérance aux pannes.

  • Hautement Disponible : La base doit être accessible par n'importe quel utilisateur à n'importe quel moment (même en cas de pics d'utilisation du système).

Attention

Une technologie répond à un besoin et non l'inverse ! Cassandra ne doit pas être utilisée si l'architecture souhaitée ne répond pas aux critères ci-dessus.

Conseil

Cassandra est particulièrement adaptée aux bases devant gérer une forte demande côté clients ainsi qu'une haute fréquence de lectures/écritures.

Exemple

Quelques exemples d'entreprises utilisant Cassandra (d'après le site d'Apache Cassandra) :

  • Apple, avec plus de 75 000 noeuds, et 10 PB de données (10 000 000 Giga).

  • Netflix, avec 2 500 noeuds, 420 TB de données, et 1000 milliards de requêtes par jour.

  • Ebay, 100 noeuds, 250 TB de données.