Michael Stonebraker, l’homme qui peut sauver le SGBD relationnel du NoSQL


Avec VoltDB, il dépoussière le relationnel et place SQL in-memory.
Le track record du bonhomme est impressionnant. En 1973, il co-fonde Ingres puis il lance un autre projet Postgres. Devenu chercheur au MIT en 2001 il va travailler sur de nombreux projets dont Aurora, la technologie embarquée dans StreamBase, et surtout C-Store, une base en colonnes qu’il va commercialiser dans la nouvelle société qu’il fonde en 2005: Vertica. L’insatiable créateur de bases de données en série créé VoltDB en 2009 : une base qui s’appuie sur H-Stor, le moteur de stockage qu’il a conçu avec quelques chercheurs de la Brown University, du MIT et de Yale.
A l’heure où tout le monde parle des bases de données en colonnes in-memory, le pari est osé.

Réinventer le relationnel


Une application Java accède aux données VoltDB. Une classe Java va appeler une procédure stockée SQL.

Objectif : délivrer un flux de données de 45 à 50 fois plus rapide qu’avec un SGBD traditionnel. Pour y parvenir, ce vieux briscard de Michael Stonebraker a plus d’un tour dans son sac. Bien sûr, comme il le souligne sur le site de la société : il a dépoussiéré le SGBD relationnel traditionnel de toutes les scories issues du passé qui brident ses performances : « Removing complex logging, locking, latching and buffer management clears the way for VoltDB’s 50x speedup over traditional systems » est-il indiqué sur le site de la société. Mais la clef d’un tel accroissement de performance, c’est bien au chargement en mémoire des données qu’on le doit. La solution est conçue pour fonctionner en configuration cluster avec des serveurs banalisés connectés en Gigabit Ethernet, avec une scalabilité linéaire… donc une approche Scale Out.

Attention, version 1.001…

On pourrait penser que VoltDB est destiné aux applications analytiques seules à la façon d’un QlikView ou de Vertica. Il n’en est rien. VoltDB est bien une base répondant aux propriétés ACID. Nous avons bien affaire là à une base transactionnelle. Curt Monash sur DBMS2 (VoltDB finally launches) souligne sur son blog quelques limitations quant à l’implémentation SQL de cette première version : pas de SUM par exemple. Par contre les jointures sont évidemment là et les clauses GROUP BY et les ORDER BY sont implémentées. D’après la documentation, tous les accès aux données sont réalisés via des procédures stockées… Un drôle de parti pris que son concepteur explique par son soucis d’optimiser le fonctionnement de la base de données. Des rafales de requêtes SQL générées par l’application pénaliseraient trop le fonctionnement du SGBD… on ne passe donc plus que par des procédures stockées. Donc à court terme impossible de substituer VoltDB à une base Oracle sans autre forme de procès. De plus, pour le moment VoltDB se destine exclusivement aux applications Java. La documentation explique comment requêter la base depuis une application Java, explique comment créer une application VoltDB à partir d’Eclipse. On est loin de l’universalité d’une base SQL type Oracle ou MySQL.

Open Source, VoltDB est disponible gratuitement en édition Community ou en version payante avec support sur le site de VoltDB.

A votre avis, combien de temps faudra –y-il attendre pour qu’un gros éditeur de SGBD ne mette la main sur VoltDB ?

Ce contenu a été publié dans Nouveau produit, avec comme mot(s)-clef(s) . Vous pouvez le mettre en favoris avec ce permalien.

Une réponse à Michael Stonebraker, l’homme qui peut sauver le SGBD relationnel du NoSQL

  1. admin dit :

    Vu sur Twitter :

    « Stonebraker: on TPC, 19% RDBMS time latching,17% recovery,17% locking,25% buffer mgmt… leaving 12% for useful work ».

    Voila qui explique à la fois la façon dont à été conçu VoltDB et donc ses performances estimées.

Laisser un commentaire

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


*

Vous pouvez utiliser ces balises et attributs HTML : <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>