VoltDB rend Oracle obsolète

Le paysage des bases de données est bouleversé par la popularisation des ordinateurs de 16 gigas octets de mémoire ou plus. Il est maintenant possible d'y placer de larges bases de données.
Cela à conduit des développeurs à réaliser des logiciels spécialisés pour ce nouveau hardware, notamment Hana de SAP et VoltDB. La seconde existe en verson commerciale et en version libre, la community edition sous licence Affero GPL.

VoltDB successeur d'Oracle

Oracle est parfaitement consciente de la menace et tente de développer des technologies pour faire fonctionner ses logiciels en mémoire, mais ils ne peuvent offrir les mêmes performances qu'un outil conçu spécifiquement pour cela.

D'innovations en innovations

VoltDB est le dernier projet de Michael Stonebraker, qui a multiplié les créations dans le domaine des bases de données. Il a participé au développerment d'Ingres (1983), Postgre (1989) qui est basé sur Ingres et est devenu PostgreSQL en 1997, après avoir été entièrement redéfini. Il a fondé d'autres projets adressant des usages particuliers des bases de données comme StreamBase (2003), Vertica (2005).
C'est donc un spécialiste des BD et un innovateur qui est a la base de VoltDB. C'est aussi un critique du mouvement NoSQL une autre évolution du domaine, auquel il reproche le risque qu'il y a à utiliser des langages de bas-niveau pour accélerer le traitement.
Il préfère le mouvement NewSQL qui change le fonctionnement des bases de données, mais reste centré autour du langage SQL.

Il voit un avenir où les utilisateurs sont des analystes et scientifiques qui attendent des bases de données des traitements intelligents pour fournir des réponses aux questions qui pose la gestion des entreprises. Par exemple le supermarché qui prévoit son approvisionnement en fonction de la météo et divers facteurs sociaux plutôt qu'en fonction du remplacement des stocks en fonction de leur épuisement. On utilisera maintenant plutôt des listes que des tables de lignes et colonnes.

Facebook est déjà confrontée au problème que pose la conception classique des bases de données relationnelles. Le site a besoin de gérer la proximité entre les utilisateurs, pas géographiquement mais en termes d'affinités et de relation. Si on met à jour une relation entre deux utilisateurs, cela implique une influence sur des milliers d'autres. Une transaction en implique mille autres. Il est clair qu'il faut une base de donnée conçue différemment et en fait la firme multiplie les expériences pour essayer de mettre au point ce logiciel.

La mémoire vive n'a pas de secteurs

Les DBMS classiques ont été conçus à l'époque où les ordinateurs étaient dotée de petites mémoires vive de quelque mégas octets au plus, et où les enregistrements de données étaient envoyés directement sur disque dur. Ce système a été amélioré avec des mémoires tampons et divers artifices, mais qui ne changent pas la structure de la base. Celle-ci est un entrepôt de lignes ajoutées l'une après l'autre et converties en secteurs sur disques durs. VoltDB s'est totalement affranchie de ce modèle.

VoltDB est la version commerciale du projet H-Store, conçu conjointement par le MIT, Carnegie Mellon, Yale et autres universités et auquel Michael Stonebraker à participé. C'est une infrastructure NewSQL qui conserve le langage SQL mais avec un fonctionnement en parallèle en mémoire. La base est fractionnée en multiples partitions et à chacune est dévolue un moteur de traitement qui exécute les transactions l'une après l'autre. Il n'y a pas de verrou et aucune latence dans le système.

Optane dimm

Barettes de mémoire DIMM permanente basée sur Optane d'Intel

VoltDB est écrit en Java, ce qui ne devrait pas consoler Oracle, propriétaire du langage. Des procédures écrites dans ce langage constituent les unités de transaction. La préservation des données, alors que toutes les modifications sont faites en mémoire, est assurée par le stockage à intervalles sur disque dur de l'état de la base. La série des transactions qui sont faites durant le temps d'un enregistrement est mémorisée puis exécutée de façon asynchrone une fois le stockage terminé. Puisque toutes les transactions sur une partition sont faites en succession, il est facile de les exécuter après coup.

Oracle est dépassée

Le code d'Oracle comme celui d'autres acteurs du secteur est un héritage du passé. Le logiciel a été entièrement conçu pour fonctionner sur disque dur. Il permet des dizaines de transactions par seconde, mais un système conçu pour fonctionner en mémoire en exécute des dizaines de milliers. Les utilisateurs vont donc abandonner Oracle et se tourner vers de nouvelles solutions qui offrent à la fois une rapidité supérieure, mais aussi le moyen de gérer les données autrement pour tirer des informations sur des masses de données.

Il reste à Oracle à réaliser cette nouvelle sorte de base de donnée si la firme veut rester concurrentielle mais elle n'a plus l'avantage sur les concurrents. Sa large implémentation dans les entreprises peut être un handicap, en l'obligeant à conserver la compatibilité avec les applications existantes. Et si elle s'aligne sur les coûts de la concurrence avec un logiciel NewSQL, elle se dévore elle-même.
Parmi ces concurrents, se trouve Facebook. Vu le nombre de ses serveurs, il est improbable qu'elle achète des licences VoltDB, pas plus qu'elle n'a acheté de licences Oracle. Mais rien ne l'empêche de développer sa propre solution sur la base d'H-Store, dont le code est open-source comme elle a développé Cassandra sur le modèle de BigTable de Google, autre concurrent possible. Il y a aussi une version gratuite de VoltDB qui reste à évaluer.

Mise à jour 27 novembre 2015

Samsung announce la production en masse de mémoire DDR4 DRAM de 128 GO. Comme on peut les assembler en multiples slots sur un serveur, atteindre le teraoctet devient facile et permet donc de garder une base de donnée imposante en mémoire.

Mise à jour 23 septembre 2022

Intel a abandonné la technologie de mémoire non-volatile Optane/3D XPoint, qui permettait de stocker les données d'une BD en mémoire, mais la remplace par une autre, CXL (Compute Express Link), qui permet de relier une mémoire volatile ou non volatile au processeur par un protocole accéléré, utilisant des mémoires cache.

Ressources