N’y a-t-il pas de meilleur exemple que Facebook quand il s’agit d’analyser la façon de gérer un énorme trafic ? S’il n’est pas surprenant que les méthodes traditionnelles ne marchent pas tout à fait pareil sur le géant réseau social, les ingénieurs de la firme ont du faire face à diverses problématiques et bien sûr les résoudre. L’une d’elle, le stockage des données, a été mise en avant et une solution a été trouvée : Cassandra.
Derrière ce nom, se cache une mise en œuvre NoSQL, qui a été développée en interne pour aider à la recherche de données. Actuellement, il est utilisé pour la recherche dans la boîte de réception Facebook. Ce système conçu pour la gestion de base de données de type NoSQL peut supporter des quantités massives de données.
Faisant maintenant partie de la fondation Apache, Facebook a libéré dans l’espace open source cette application, qui a rapidement été adoptée par plusieurs grandes entreprises gérant d’importants volumes de données, telles que Twitter et Adobe, ou encore Cisco, Digg, eBay, IBM, Reddit, Spotify ainsi que le gouvernement Américain.
Comme le mentionne Wikipédia, « Jeff Hammerbacher, directeur de la division Data chez Facebook, a décrit Cassandra comme une application du type de BigTable servie par une infrastructure proche de Dynamo ».
Si ce projet ne date pas d’hier, première version en 2008, aujourd’hui une nouvelle version de la base de données NoSQL Cassandra – Cassandra 1.2 – a été libérée. Celle-ci améliore notamment le support pour de dense cluster, apporte une modélisation de l’application simplifiée et une meilleure manipulation des cellules de données.
Cassandra permet de prendre en charge la réplication entre des centres de données et vous permet de choisir entre une réplication synchrone ou asynchrone pour chaque mise à jour. La base de données a maintenant un support pour le clustering au travers de nœuds virtuels, chaque nœud pouvant supporter plusieurs téraoctets de données, et améliorer considérablement la communication entre les nœuds. L’introduction du support pour les nœuds virtuels (vnodes) est conçue pour simplifier la gestion des clusters, et devrait également améliorer les performances lors de l’ajout, et la reconstruction de nœuds, réduisant ainsi la charge des machines virtuelles Java.
Autre nouveauté au programme de cette nouvelle version, les « atomic batches », qui permettent de regrouper plusieurs mises à jour dans un seul état. Il s’agit d’un mécanisme de protection de l’intégrité transactionnelle des processus professionnels destiné clairement aux développeurs.
La nouvelle version comprend également CQL3 (Cassandra Query Language), la version 3 du langage de requête Cassandra qui promet de dépasser les limites de conception grâce à une représentation plus naturelle. Le principal changement apporté à CQL3 est l’ajout du support pour le multi-colonnes de clés primaires, dont l’équipe encourage l’utilisation de la dé-normalisation afin de faire plus simple.
Avez-vous déjà tenté de mettre en place Cassandra ? Ces innovations vont-elles vous soulager au quotidien ? J’aimerais vraiment avoir des retours concernant cette application.