mercredi 21 avril 2010

Cassandra - 2) Les clefs d'un succès

J'ai tenté de vous présenter un peu de façon générale ce qu'est Apache Cassandra et j'ai avancé beaucoup d'avantages sans toutefois les expliquer. Dans ce billet je vais essayer d'étayer mes propos sur les points intéressants de Cassandra.

  1. A propos de la vitesse
C'est peut être le point primordial d'une base de données. Lors de la primo-conception de BigTable les ingénieurs de Google ont cherché un moyen de savoir rapidement si un élément faisait parti d'un ensemble de données.
En réalité la réponse à cette question avait été donné en 1970 par le mathématicien Burton Howard Bloom, par le biais des "Blooms filters".

Ces blooms filters donnent un moyen simple de savoir si un élément appartient à un élément, il est à noter que les faux positifs (i.e. : un élément apparait comme étant dans l'ensemble, mais en fait n'y est pas) est possible, tandis qu'un faux négatif (i.e. : un élément apparemment, mais en réalité y est) est impossible. En résumé : Vous êtes sûr de ne jamais rater un élément en cherchant via un bloom filters.
Ceci a un avantage immédiat : Imaginons que vous avez une base de donnée de 1 To que vous avez découpé en morceaux de 100 Mo, chacun de ses morceaux ayant un blooms filters pour détecter un élément. Vous effectuez votre recherche parmis cette immense base de données, vous trouvez 4 réponses positives, vous n'avez qu'à chercher dans 4 * 100 Mo si l'élement intéressant y est. Vous êtes certains que dans les (1To - 400Mo) votre résultat n'y est pas. J'espère que vous pressentez l'efficacité de cette méthode.

2. Sécurité

Si on demande à un entrepreneur quel est l'élément qui a le plus de valeur à ces yeux dans son entreprise, il répondra sûrement bien des choses, mais il oubliera probablement de dire que ce sont les bases de données. Celles-ci constituent la véritable richesse d'une entreprise ou d'un site web. On ne peut pas imaginer trente secondes Facebook qui perd la totalité de ses données. Ca en serait fini de cette entreprise.
Cassandra propose une approche de base de données distribuées. Les données sont présentes plusieurs fois et en cas de défaut d'un des serveurs d'un Node, les données pourront quand même être acheminées.
Ce phénomène est même obervable sur Google lors de la recherche de résultat. Tapez une requee dans Google image (par exemple : chien), observez les 30 premiers résultats. Refaites la même recherche quelques heures après, vous aurez un nombre de résultat différents et les premiers résultats seront probablement légèrement différents. Cela vient du fait que certains serveurs n'ont pas répondu à temps !

3. Quelques désavantages

Nous avons passé en revue les avantages de Cassandra, mais il ne faut pas oublier ses défauts.
_Planifier : On ne peut décemment pas partir à l'aventure sur Cassandra en se disant "bon je ferais évoluer les choses". Il faut penser avant de commencer un projet sur Cassandra.
_Il n'existe pas de requêtes structurées comme en SQL et si vous avez déjà utilisé MySQL ne vous attendez pas à trouver de SELECT AGE WHERE ... J'en reviens à ce qui est dit plus haut, il faut réfléchir avant de faire ses bases de données. Mais je suis certain que vous pouvez tous y arriver.

FIN
N'hésitez pas à me poser des questions ou à apporter des corrections au besoin.

Aucun commentaire:

Enregistrer un commentaire