À propos du projet
Aerospike Graph Service (AGS) est un moteur de base de données graphique basé sur JVM qui implémente le protocole filaire Gremlin Apache TinkerPop 3.7.x sur WebSocket et stocke les données graphiques dans un cluster Aerospike. Les sommets et les arêtes sont stockés dans une organisation compacte sur disque qui colocalise les informations d'adjacence, permettant à la plupart des sauts de traversée de se résoudre en une seule lecture Aerospike. Le service traduit les traversées Gremlin en opérations Aerospike efficaces, applique des optimisations de planification de requêtes spécifiques à Aerospike et renvoie les résultats en flux vers tout driver compatible TinkerPop (gremlin-python, gremlin-javascript, gremlin-driver pour Java, etc.).
Ses fonctionnalités clés incluent :
- Des requêtes de graphes OLTP à faible latence avec un p99 à un chiffre en millisecondes à grande échelle.
- Un module OLAP basé sur Spark permettant d'exécuter des tâches GraphComputer (PageRank, composants connexes, VertexPrograms personnalisés) sur l'ensemble du graphe.
- Un chargeur en masse basé sur Spark qui ingère directement des fichiers CSV, GraphML ou GraphSON dans le modèle de données Aerospike pour des chargements initiaux rapides.
- Une mise à l'échelle horizontale, une cohérence forte, des lectures prévisibles inférieures à la milliseconde, une architecture hybride mémoire et une réplication inter-centres de données héritées d'Aerospike.
- Une interface Gremlin standard ; aucun langage de requête ou driver personnalisé n'est nécessaire.
Le déploiement est compatible avec Docker. Un fichier docker-compose présent dans le répertoire graph-service-examples permet de démarrer AGS, une base de données Aerospike et Zipkin simultanément. Pour les clusters Aerospike existants, le conteneur AGS peut être démarré avec des variables d'environnement pointant vers l'hôte, le port et l'espace de noms du cluster. La configuration peut également être fournie via un fichier de propriétés monté.
La construction depuis les sources nécessite JDK 17 (bien que le code compile en bytecode Java 11), Maven 3.9+, Docker avec Buildx, et Python 3 avec python_on_whales pour le script d'aide build-docker. Le projet est une construction Maven multi-modules couvrant le moteur OLTP, le chargeur en masse Spark, le module OLAP Spark et une API partagée.
AGS est publié sous la licence Apache 2.0, avec des mentions de marque pour Aerospike et Apache TinkerPop/Spark.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.