L’essentiel sur Aerospike
LeMagIT fait le point sur les principales bases de données du marché. Aujourd’hui le SGBD NoSQL open source In-Memory Aerospike.
Aerospike est un SGBD NoSQL open source In-Memory. C’est une base clé-valeur conçue pour fournir des temps de réponse inférieurs au millième de seconde aux applications. Elle repose sur une architecture distribuée couplée avec des capacités de haute disponibilité et doit fournir un haut niveau de cohérence pour traiter des dizaines, voire des centaines, de millions de requêtes à la seconde.
Elle prend en charge de longue date un deuxième modèle de données afin de stocker des documents à l’aide d’une API spécifique. La version 6.0, disponible depuis le mois d’avril 2022, apporte un support natif du format JSON.
Fonctionnalités d’Aerospike
Aerospike permet d’effectuer des requêtes en utilisant des index secondaires. Le SGBD propose par ailleurs des fonctions définies par l’utilisateur (User Defined Functions – UDF) qui s’exécutent sur le serveur de base de données, ainsi que de nouveaux types de données complexes (listes et cartes) et des fonctionnalités analytiques capables d’exécuter des tâches sur des données qui changent sans cesse. Les UDF peuvent être invoquées depuis des applications écrites en Java, C, C#, .Net, Node.js, Python, Ruby et Go.
Outre une meilleure sécurité d’entreprise, les nouvelles versions (3.4 et sup) offrent également de nombreuses améliorations, notamment en termes de performances et de stockage. Le cycle de mise à jour est particulièrement rapide : la communauté et le contributeur principal mettent à jour le système environ une fois par mois.
Voici les trois principaux composants d’Aerospike :
- Le moteur principal du serveur de base de données Aerospike, conçu pour être distribué avec basculement et pour utiliser soit la RAM, soit des SSD pour le stockage des données. En 2018, l’éditeur a introduit une technologie de « mémoire hybride », mêlant DRAM et stockage flash. Dans, ce cas l’index est placé dans la RAM, tandis que les données résident sur des SSD ou des NVMe. Les usagers peuvent aussi décider d’utiliser seulement de la mémoire vive ou uniquement du stockage flash.
En 2019, à partir de la version 4.8, le SGBD a gagné le support de la mémoire persistante Intel Optane PMEM, où les données et l’index sont stockés dans cette mémoire persistante. Aerospike a bien testé de stocker l’un ou l’autre éléments dans la PMEM avant de considérer que les performances n’étaient pas satisfaisantes.
- Aerospike Smart Clients, (ou la couche client du SGBD) fourni dans différents langages de programmation et assurant un contact constant avec le cluster Aerospike. Si le nombre de nœuds change, le client intelligent reçoit des demandes de mise à jour et de remappage, ce qui évite au développeur de s’en charger.
- Aerospike Management Console, qui utilise une interface Web permettant aux administrateurs de gérer leurs clusters.
L’édition commerciale comporte trois fonctions de plus que l’édition open source :
- Cross Datacenter Replication (XDR), qui permet de synchroniser plusieurs clusters, le plus souvent dans différents datacenters. Ce type de réplication permet généralement d’assurer la continuité des activités en cas d’indisponibilité des données.
- Fast Restart, qui permet aux entreprises utilisant des disques SSD de stocker les index dans la mémoire partagée. Cette fonction permet de mettre à niveau les clusters rapidement et de redémarrer les serveurs individuels sans régénérer l’index à partir des données des SSD.
- Sécurité basée sur les utilisateurs et les rôles, qui donne aux utilisateurs des droits de lecture, de lecture/écriture et d’administration.
AeroSpike évoque le fait que ce SGBD peut supporter différents « services data » dont le traitement des données en temps réel, la distribution dynamique de données, la notification de changement de données (en complément d’un système CDC) et la technologie Smart Cluster.
Un scénario d’utilisation classique d’Aerospike consiste à placer des données In-Memory dans le cache de manière à stocker des informations de session ou des profils utilisateurs pour le mappage d’ID. Cet usage est tout indiqué si vous souhaitez personnaliser l’expérience utilisateur sur les portails Web et les applications mobiles. Au fil des ans, le contributeur principal de ce projet open source a positionné le SGBD comme une solution généraliste, capable de supporter la plupart des usages (dashboarding, analytiques, IA, stockage de fichiers, notifications d’alertes, feature store, etc), tout en vantant son appartenance à la mouvance multimodèle. Dans un même temps, l’apport de connecteurs plus spécifiques à Apache Kafka, Pulsar ou encore Spark tend à prouver qu’Aerospike est avant tout utilisée comme une couche de cache dans de multiples situations.
Notre dossier sur les bases de données NoSQL
L’une des fonctionnalités les plus intéressantes d’Aerospike est la simplification du développement pour les développeurs qui créent et utilisent de nouvelles applications sur une grande échelle avec un minimum de tâches d’administration initiales.
Alors que de nombreux SGBD NoSQL exigent du développeur qu’il définisse la fragmentation (le sharding) et les exigences de réplication, Aerospike le fait automatiquement.
Lorsque les applications s’exécutent, il est très facile d’ajouter un nœud à un cluster et d’augmenter le débit et la capacité. Aucune planification et aucune interruption ne sont nécessaires.
Systèmes d’exploitation pris en charge par Aerospike
Aerospike fonctionne sous Linux. Un support est assuré pour de nombreuses distributions, dont les fichiers binaires préconçus pour Red Hat, Ubuntu, et Debian.
Licences Aerospike
Aerospike peut être utilisé sous licence open source ou commerciale.
En open source, les clients Aerospike sont disponibles sous une licence de type Apache, alors que le serveur dépend d’une GPL Affero.
Aerospike est vendu directement par le fournisseur. Le tarif est fonction du volume de données uniques utilisées en production plutôt que du nombre de serveurs déployés, de transactions par seconde ou encore de données répliquées au sein d’un cluster ou entre plusieurs datacenters.
Sous licence commerciale, Aerospike propose un support 24/7 par téléphone ou par messagerie électronique.
Une version d’essai gratuite est disponible dans l’édition Community open source. L’édition Startup Special offre un accès gratuit à l’édition Enterprise aux entreprises réunissant les conditions requises (moins de 2 millions de dollars de chiffre d’affaires, 20 millions de dollars de budget) .
Types de données Aerospike
Aerospike dépend d’un « schéma flexible », c’est-à-dire que les données peuvent être dénormalisées. Le SGBD peut dupliquer les informations à façon dans différents enregistrements. Même si cela semble plus difficile à administrer, cela permet d’assurer une meilleure réplication des données.
Les développeurs peuvent utiliser plusieurs objets bin de différents types. Les types de données suivants sont actuellement pris en charge : string, integer, blob, lists et maps.
Les types lists et maps peuvent être récursifs. Le SGBD prend aussi en charge les structures de données HyperLoglog ou GeoJSON (données géospatiales).
D’autres interfaces de programmation sous licence Apache 2.0 permettent à la base de données de traiter les données de séries chronologiques et les modèles graphes. De la même manière, une API permet de requêter les données avec une interface SQL.
Aerospike peut également prendre en charge de grands volumes de données (Big Data) en utilisant des types de données dont le stockage ne nécessite pas la réécriture de l’enregistrement dans sa totalité.
Tests d’évaluation des performances Aerospike
Les performances des SGBD NoSQL sont généralement évaluées au moyen du service open source Yahoo Cloud Serving Benchmark. Plusieurs tests de performances ont été publiés avec les instructions permettant de les reproduire.
Article publié le 6 août 2015, mis à jour le 11 mai 2022.