mardi 20 avril 2010

Cassandra - 1) Présentation




Qu'est ce que Cassandra, pourquoi choisir ce type de données ?
Les deux questions sont légitimes, je vais tenter d'y répondre dans la suite.

Tout d'abord Cassandra est une base de données, "membre" du mouvement NoSQL né en réaction à l'emprise de SQL sur le monde du web. Tout le monde (ou presque) ayant participé au développement sur le web est passé devant la mention MySQL qui n'est pas une base de données à proprement parlé, mais un sytème de management de base de données SQL. SQL et MySQL ont bien des avantages : ils sont simples, très largement répandus, bien documentés, facile à l'installation mais dès qu'on commence à gérer des bases de données trop grosses, le système voit ses performances se dégrader.

Google, qui a de multiples datacenters à travers le globe et des exabytes de données l'a bien compris et ils ont conçu un système "BigTable" permettant de résoudre ce problème.
Ils se sont vite rendu compte qu'une base de données orientée colonne ("column oriented") est plus souple que le système SQL orienté lignes (row oriented).

Une implémentation OpenSource de ce principe a bientôt vu le jour, plusieurs en fait, mais étant donné que je ne les connais pas, je n'en dirai rien. Le projet Cassandra avait vu le jour. Bientôt il fut placé dans l'incubateur d'Apache Software Foundation ce qui donna un coup d'envol au projet.


Maintenant que nous avons un peu vu ce que c'est, pourquoi y venir ?
On peut évoquer plusieurs raisons :
  • Cassandra est rapide, TRES rapide. Voici une petite enquête qu'avait réalisé yahoo en se basant sur Cassandra 0.5. Il est à noter qu'Apache a annoncé avoir augmenté de 30% la vitesse globale entre la version 0.5.1 et 0.6.
  • Cassandra est évolutif et à plusieurs niveaux : Il permet d'avoir plusieurs serveurs et la redondance des données : parfait si on ne souhaite ne pas perdre de données. De plus le fait que ce soit une "column oriented" database lui permet d'évoluer dynamiquement, bien mieux que SQL.
  • C'est open source et gratuit.
  • Et enfin, c'est probablement l'AVENIR. Les plus gros sites y sont passés : Digg, Reddit, Facebook, Twitter. Ne laissez pas le train partir sans vous !


Ca en est fini pour ce premier billet, n'hésitez pas à me poser des questions ou à apporter des corrections au besoin.

2 commentaires:

  1. Je suis novice dans le domaine du NoSQL mais mon travail me poussant à m'intéresser à ce domaine, voila quelques jours que je fais des recherches la dessus et notamment sur Cassandra.

    Quelques chose m'interpèle : Il est dis ici que Big Table et Cassandra sont "row oriented" tandis que MySQL et les SGBDR "classiques" sont "column oriented". Or toutes mes recherches m'ont indiquées le contraire. N'y aurait il pas une petite erreur dans cette description ?

    RépondreSupprimer
  2. Bonjour Mathieu, en effet j'ai fait une petite coquille.
    Je vais le corriger (encore desole pour le retard)

    RépondreSupprimer