Très dynamique, le marché des bases de données est aujourd’hui dominé par des acteurs comme Oracle, MySQL, Microsoft SQL Server, PostgreSQL, MongoDB, IBM DB2, Cassandra, AWS DynamoDB, mais également des nouveaux venus très spécialisés comme Aerospike, GridGain ou encore SingleStore. Début mars, nous avons pu rencontrer les dirigeants de SingleStore lors d’un IT Press Tour dans la Silicon Valley. Fondé en 2011 sous le nom MemSQL et rebaptisé en 2020, SingleStore a gagné en notoriété ces derniers mois avec sa base de données temps réel capable d’interroger et gérer rapidement des données structurées et non structurées provenant de sources multiples, telles que le font les géants du cloud Amazon, Microsoft et Google. « Notre ambition est de proposer une base de données moderne, capable de répondre à la plupart des besoins dans les entreprises », nous a indiqué Suresh Sathyamurthy, CMO de SingleStore, lors d’un point presse à San Francisco. La scale-up a en effet développé une base de données SQL relationnelle distribuée pour les charges de travail transactionnelles et analytiques et qui s'exécute sur site et dans les trois principaux clouds publics (AWS, Azure et GCP), ainsi que sur IBM Cloud. Big blue a participé à la dernière levée de fonds de SingleStore en novembre dernier avec un tour de table en série F d’un montant de 60 millions de dollars. SingleStore est disponible dans les offres IBM Cloud Pak for Data, Red Hat OpenShift et sur Red Hat Marketplace. Signalons pour être complet que Dell et HPE font également partie des investisseurs de SingleStore, et qu’une introduction en bourse est envisagée dans les 18 à 24 mois.   

Avant de passer en revue les fonctionnalités de cette base de données, trois points essentiels sont mis en avant par Domenic Ravita, CTO chez SingleStore. « Les entreprises vont consolider leurs technologies de bases de données, le futur sera multicloud et nous allons assister à une convergence OLAP (traitement analytique en ligne) et OLTP (traitement des transactions en ligne) pour accompagner la modernisation des applications. Les distributions SQL sont aussi là pour rester ». SingleStore exploite une hiérarchie de stockage à trois niveaux. Le premier niveau est la mémoire (classique et persistante). Le second est l’espace local avec des SSD, enfin le dernier est de type objets dans le cloud, avec des plateformes comme AWS S3. L'un des principaux problèmes du stockage objets dans le cloud pour les bases de données est qu'il est plus lent qu'une approche in-memory. La hiérarchisation du stockage de données chez SingleStore écrit donc d'abord les mises à jour sur le niveau mémoire le plus rapide, puis les copie sur l’espace de stockage objets pour améliorer les performances globales. Précisons que si le stockage est illimité avec une option back-up sur Azure et AWS, ce n’est pas encore le cas sur GCP, mais c’est en cours de finalisation selon le CTO de la scale-up.

Disponible en mode hybride (sur bare metal ou container) et dans les clouds des partenaires, SingleStore accompagne les applications distribuées. (Crédit S.L.) 

Combinaison columnstore et rowstore

À la base de la plateforme SingleStore, on trouve la capacité d’intégrer les tables columnstore et rowstore pour accélérer le traitement des requêtes. Rappelons qu’un index columnstore organise les données de manière logique sous forme de table avec des lignes et des colonnes, mais stocke physiquement les données dans un format en colonnes. Un index rowstore est conçu pour accélérer la récupération des données en permettant aux requêtes de localiser rapidement les données par index plutôt que d'analyser une table entière. Dans l'ensemble, les index rowstore ont tendance à être meilleurs pour les charges de travail transactionnelles (OLTP), qui utilisent plus d'opérations de mise à jour et de recherche, tandis que les index columnstore ont tendance à être meilleurs pour les charges de travail de traitement analytique en ligne (OLAP), qui utilisent plus d'opérations de lecture. Les index rowstore ont tendance à être plus efficaces pour effectuer des lectures et des écritures aléatoires, alors que les index columnstore ont tendance à être meilleurs pour effectuer des lectures et des écritures séquentielles. Comme Oracle, SingleStore propose une approche hybride avec des fonctionnalités rowstore et columnstore. Chez SingleStore, il y a un petit index rowstore assis à côté de chaque table columnstore qui est utilisé pour les écritures par petits lots. Enfin, les columnstores peuvent également être utilisés pour les charges de travail transactionnelles, en particulier celles de type analytique sur le plan informatique mais qui ont des contraintes opérationnelles. Étant donné que ces charges de travail bouleversent les définitions traditionnelles d'OLTP et d'OLAP, elles sont souvent appelées charges de travail de traitement hybride transactionnel/analytique (HTAP). Ce modèle rend SingleStore efficace pour les applications transactionnelles (OLTP), mais également analytiques (OLAP). 

SingleStore s'insère dans un vaste écosystème avec de multiples connecteurs pour récolter et partager les données. (Crédit S.L.)

SingleStore est, par exemple, utilisé par Uber pour réaliser une balance dynamique entre les demandes des clients et la disponibilité des chauffeurs afin de calculer en temps réel les tarifs et aussi optimiser le temps de réponse de la plateforme de transport. Parmi les autres clients de l’éditeur, citons le service de vidéo à la demande Hulu, les studios Fox et Son ou encore les magasins Macy’s. La société a déjà ouvert des bureaux à Paris pour le développement commercial de sa solution. « Nous avons l’argent pour assurer notre croissance avec une présence dans les principales régions du monde », a précisé le CMO de l’éditeur. Pour les tarifs, la facturation repose sur la taille des clusters hébergés sur les clouds des différents fournisseurs.