SingleStore (MemSQL) accélère le stockage de sa plateforme unifiée
Autrefois appelé MemSQL, SingleStore ne veut plus seulement être considéré comme l’éditeur d’une base de données in-memory. Pour obtenir son statut de généraliste, il introduit dans sa prochaine mise à jour des capacités pour se débarrasser de limitations de stockage et de traitements de données.
SingleStore a dévoilé le 23 juin la mise à jour 7.5 de son produit éponyme, une plateforme de base de données unifiée dite translytique, si l’on se réfère aux critères de Forrester Research.
L’éditeur, fondé à San Francisco, était connu sous le nom de MemSQL jusqu’en 2020, année durant laquelle il s’est rebaptisé SingleStore. La base de données distribuée en question repose à l’origine sur une capacité qui incorpore les tables columnstore et rowstore dans le but d’accélérer les requêtes.
Ce même modèle rend SingleStore efficace pour les applications de traitement des transactions (OLTP) et analytique en ligne (OLAP).
Lors d’un événement virtuel, David Hannibal, responsable des produits et des partenariats chez IEX Cloud, a expliqué comment la plateforme de services financiers cloud de son entreprise intègre SingleStore pour aider les analystes et les utilisateurs OLTP qui gèrent les transactions financières.
IEX Cloud opère dans le monde entier et compte plus de 160 000 clients. Ces clients créent des applications avec des données financières qu’IEX Cloud enchâsse avec des données en temps réel et historiques. Le défi pour IEX Cloud est d’être capable de fournir des données aux usagers en moins de 10 millisecondes. IEX Cloud utilise SingleStore pour permettre cette livraison rapide des requêtes de données, déclare David Hannibal.
« Il y a des centaines de jeux de contenu et des centaines de millions de points de données que nous devons maintenir et prendre en charge », témoigne-t-il. « Nous avons vraiment trouvé en SingleStore un partenaire solide pour nous aider à respecter ce principe central. » Parmi les clients référencés sur le site Web de SingleStore, l’on peut également citer Gameloft, l’éditeur français de jeux vidéo mobile passé de la main d’Ubisoft à Vivendi en 2016.
SingleStore ajoute une couche de stockage
Dans une interview avec SearchDataManagement [propriété de Techtarget, également propriétaire du MagIT], Jordan Tigani, chef de produit de SingleStore, explique que la mise à jour 7.5 apporte en premier lieu un système de stockage étendu.
Jordan Tigani rappelle que SingleStore a toujours eu une hiérarchie de stockage à deux niveaux. Le premier niveau correspond au stockage en mémoire (in-memory), d’où la dénomination MemSQL. Le deuxième niveau correspond au disque local ou disque persistant, qui dans le cloud est souvent remplacé par un SSD (Solid State Disk). Pour faire simple, ce deuxième étage accueille les données quand le cache de la RAM arrive à saturation (une décision effectuée via un arbre LSM).
Avec cette mise à jour, SingleStore ajoute un troisième tier : le stockage d’objets, dont le représentant emblématique n’est autre que le service Amazon S3.
Sans équivoque, le stockage objet s’avère moins performant qu’une approche in-memory. Logiquement, SingleStore conserve une hiérarchie établie, c’est-à-dire que les données mises à jour sont d’abord écrites dans le tier le plus rapide, en mémoire. Les copies sont ensuite envoyées vers la couche de stockage objet.
Attention, l’éditeur prévient dans sa documentation que le SGBD n’est pas conçu pour jouer le rôle de « blob store » ou de data lake. Il ingérait déjà les données en provenance des systèmes comme HDFS ou S3, mais cela s’arrêtait là.
Ici, il s’agit de sauvegarder les backups de données (snapshots, logs, structures de données encodées) dans un espace de stockage séparé pour permettre la récupération par point dans le temps (PITR). Une fois la fonction activée, toutes les données sont « automatiquement et continuellement envoyées vers l’espace de stockage objet ». Cela doit fournir une séparation du stockage et du calcul » parce que les données froides sont persistantes. L’administrateur peut ensuite effacer les informations des disques locaux, libérant in fine des ressources CPU et RAM pour effectuer davantage de traitement in-memory. Les points de sauvegarde peuvent être restaurés pour des analyses ultérieures. Bref, il s’agit moins d’une séparation que d’une accélération du cycle de stockage des données.
Dans le cloud, SingleStore s’appuie sur Amazon S3 et supportera Azure Blob Storage et Google Cloud Storage « plus tard cette année ». Sur site, il faut installer Ceph, un système de stockage open source compatible S3, en cours de simplification.
Auparavant, cette sauvegarde était manuelle. Le backup était alors un instantané qui n’était pas forcément le reflet des dernières transactions enregistrées. Dans la même veine, la version 7.5 introduit une procédure de stockage temporaire, permettant de conserver des données en mémoire le temps d’une session. « C’est très utile pour écrire des scripts de logique procédurale mélangés à du SQL », assure l’éditeur.
Des clés multicolonnes pour améliorer les performances et parer certaines limitations
L’autre fonctionnalité majeure de cette mise à jour est le support des clés multicolonnes. Dans les versions 7.0, 7.1 et 7.3, Single Store s’est évertué à optimiser les performances des requêtes par le support progressif de hashs d’index.
Jordan Tigani explique qu’une base de données typique comprend une clé primaire qui définit où et comment les données sont stockées. La clé primaire détermine la rapidité des recherches dans un SGBD, car elle fournit des indications sur l’emplacement des données.
Auparavant, avec SingleStore, les clés étaient limitées à une seule colonne. Avec le support pour les clés multicolonnes, des requêtes plus complexes doivent être exécutées plus rapidement, puisque ces clés sont entreposées dans plusieurs colonnes. Cela doit également simplifier la création de tables, car il n’y a plus forcément à spécifier son usage (OLTP ou OLAP), un concept que l’entreprise nomme « Universal Storage ».
Un client ayant prodigué son avis sur Gartner Peer Insights salue aussi la prise en charge améliorée des opérations UPSERT (insertion combinée à une mise à jour) et la modification des contraintes UNIQUE (permettant l’interdiction d’entrée de doublons dans des colonnes) pour les clés primaires des columstores depuis la version 7.3. Auparavant c’était à l’application d’assurer le caractère unique des données. Avec la version 7.5, ces deux limitations doivent sauter à la fois pour le stockage en colonne et en ligne. L’éditeur devra sans doute supporter les commandes MySQL, pour l’instant incompatibles, afin de contenter la plupart des usagers.
De l’in-memory à la base de données « généraliste »
Pour ce qui est de l’avenir, le chef de produit promet que SingleStore continuera à développer sa technologie généraliste (l’éditeur vante le support de l’analytique, du machine learning, de la BI opérationnelle, de l’IoT ou de cas d’usage CRM), « performante et multimodèle ». C’était déjà la promesse effectuée après le renommage de la société, et la levée de fonds de 80 millions de dollars collectée en décembre 2020.
Cela passe par la prise en charge des formats document (via des objets JSON) et des données géospatiales. De manière plus anecdotique, la version 7.5 introduit la prise en charge des caractères 4 bits UTF8 (ut8mb4) afin de stocker… des emojis dans la base de données, « une des fonctionnalités les plus demandées par la communauté ».
Mais l’éditeur se trouve face à des acteurs comme Redis, Couchbase et bien évidemment Oracle, qui malgré les différences techniques, tiennent à peu de choses près le même discours. SingleStore 7.5 est pour l’instant disponible en préversion.