Publié par

Il y a 6 ans -

Temps de lecture 5 minutes

Retour sur le Cassandra Summit Europe 2013

Cette année et pour la première fois en Europe se déroulait du 16 au 18 octobre un Cassandra Summit à Londres.

Ce rassemblement était l’occasion de rencontrer les acteurs qui font Cassandra au quotidien.

Pour rappel Cassandra est une base de données NoSQL axée principalement sur la performance, la scalabilité et la tolérance aux pannes.

La journée de conférences

La journée du 17 octobre était dédiée aux présentations de nombreux speakers venant d’horizons divers: Datastax, Spotify, Orange, Sky,… J’ai eu la chance de participer à cette journée et d’assister à quelques-unes de la trentaine de présentations organisées en 3 thématiques :

  • Architect
  • DataOps
  • Developer

Parmi tout ce choix j’ai assisté aux présentations suivantes :

  • La Keynote d’introduction
  • The state of CQL
  • C* made simple with CQL driver

Keynote d’introduction

La Keynote d’introduction de Jonathan Ellis, CTO et cofondateur de Datastax, faisait un bilan de 5 années de travail sur Cassandra. Le travail fourni sur les valeurs fondamentales de Cassandra, à savoir la scalabilité, la performance et la disponibilité, lui a assuré une place privilégiée dans l’écosystème des bases NoSQL.

Un slide de Jonathan Ellis illustre la partie "performance". Le graphique a pour ordonnée le nombre de requêtes par seconde et le nombre de nœuds en abscisse.

Le nouvel objectif pour les années à venir est de se concentrer sur la facilité d’utilisation de Cassandra. Pour cela plusieurs éléments ont été annoncés:

Les deux premiers points ont été développés dans les conférences suivantes et en particulier dans « The state of CQL ».

The state of CQL

Ce slot assuré par Sylvain Lebresne, ingénieur logiciel chez Datastax, présentait en détails les dernières nouveautés de CQL 3 introduit dans C* 1.2 et amélioré dans la version 2.0:

  • Ajout des « Lightweight transaction » : permet de répondre à un cas d’usage précis, par exemple la nécessité de créer un utilisateur avec un nom unique. Faire un simple « INSERT INTO » n’étant pas suffisant car deux processus en parallèle pouvaient insérer le même utilisateur deux fois. Il est maintenant possible de faire un « INSERT INTO … IF NOT EXISTS ». Cela est réalisé sans lock global afin de minimiser l’impact sur les performances.
  • La mise en place de triggers côté serveur et permettant d’ajouter des fonctionnalités à chaque mise à jour via l’implémentation de l’interface ITrigger. Le support des triggers est encore expérimental et sera modifié dans Cassandra 2.1. Il n’est donc pas conseillé d’utiliser cette fonctionnalité en production pour le moment.

Dans Cassandra 1.2, un format de transport binaire est apparu destiné à remplacer Thrift (qui reste maintenu). Avec C* 2.0, une nouvelle version de ce protocole natif a été développé. Elle permet de :

  • Paginer automatiquement via des curseurs: ainsi une requête de type « SELECT * from myTable » ne déclenchera plus de timeout en tentant de ramener l’ensemble des éléments de myTable mais ramènera 100 éléments de la table. Puis les 100 suivants lors de la requête suivante. Il n’est plus nécessaire comme dans C* 1.2 de faire la pagination à la main.
  • Ajout du support SASL pour l’authentification
  • Requêtes paramétrées: permet d’effectuer des requêtes avec des blob sans avoir besoin d’échapper les valeurs

Enfin, il nous a été présenté les futures évolutions de CQL pour les versions 2.1 et au-delà de Cassandra:

  • Création d’index secondaires sur les colonnes de type collection
  • Ajout de type défini par l’utilisateur
  • Amélioration des fonctions côté serveur

Comme nous l’avons vu, CQL s’enrichit au fil des versions afin de faciliter la vie des développeurs. Les nouvelles fonctionnalités loin d’être essentielles restent néanmoins bien pratiques dans certains cas particuliers.

C* made simple with CQL drivers and DevCenter

 Cette présentation en deux parties montrait comment Datastax travaille à rendre la vie des développeurs plus facile grâce aux drivers CQL et à DevCenter.

CQL Drivers

Actuellement Datastax travaille à la création de nouveaux clients permettant d’interroger Cassandra. Le but étant de fournir un moyen d’accès standardisé à Cassandra quel que soit le langage. Les drivers pour Java et C# sont utilisables en production et d’autres langages sont en cours d’implémentation.

Ces nouveaux drivers arrivent avec un ensemble de fonctionnalités bien sympathiques :

  • Request pipeling: permet d’envoyer un ensemble de requêtes de manière asynchrone via la même connexion

  • Notification serveur : le client est automatiquement prévenu par le cluster lors de l’ajout ou du retrait de nœud et va donc prendre en compte ces informations pour les prochaines requêtes.
  • Découverte automatique du cluster : il n’est pas nécessaire au niveau du code d’indiquer la liste de tous les serveurs C* mais uniquement quelques nœuds et le driver se chargera de découvrir automatiquement les autres nœuds du cluster.

DevCenter

La deuxième partie de la présentation consistait en l’annonce de DevCenter 1.0, un outil de visualisation de requêtes CQL :

Cet outil a comme but encore une fois de simplifier la vie de ceux qui ont à manipuler C*, que ce soit les devs ou les ops.

Au menu de cette première version :

  • Autocompletion des requêtes CQL
  • Explorateur de schema
  • Entièrement compatible avec C* 1.2

A venir dans les prochaines versions :

  • Support de C* 2.0
  • Possibilité d’ajout en tant que plugin Eclipse

Cet outil est disponible gratuitement mais n’est malheureusement pas OpenSource.

Retour sur le déploiement de C* à La Poste

J’ai également eu l’occasion de présenter un retour d’expérience du déploiement d’un cluster de 12 machines Cassandra à La Poste en 2012. L’ensemble des étapes du projet ont été détaillé:

  • Le contexte
  • Comment nous avons migré notre application PHP de MySQL à Cassandra
  • Comment nous avons déployé notre cluster via Puppet
  • Et enfin notre scénario de migration sans interruption de la production

Les slides sont disponibles sur slideshare.

En conclusion ce fut une journée passionnante et très instructive. Vivement l’année prochaine pour une nouvelle édition !

Publié par

Publié par Matthieu Nantern

Matthieu est un consultant Java senior spécialisé en DevOps, Apache Cassandra et la performance des applications. Depuis plus de 8 ans il remplit des missions agiles de développement, d'architecture et de conseils pour diverses sociétés. Récemment il est devenu formateur sur Apache Cassandra. Il travaille actuellement sur un projet de développement d'une plateforme IoT pour un grand groupe français.

Commentaire

1 réponses pour " Retour sur le Cassandra Summit Europe 2013 "

  1. Publié par , Il y a 6 ans

    Marrant le retour d exp la poste. Manque qq acteurs pour être complètement transparent :)

    Content que t es trouve ceci étant :)

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Nous recrutons

Être un Xebian, c'est faire partie d'un groupe de passionnés ; C'est l'opportunité de travailler et de partager avec des pairs parmi les plus talentueux.