这个项目能做什么
Aerospike Graph Service (AGS) 是一个基于 JVM 的图数据库引擎,通过 WebSocket 实现 Apache TinkerPop 3.7.x Gremlin 通信协议,并将图数据存储在 Aerospike 集群中。顶点和边采用紧凑的磁盘布局存储,将邻接信息共置,使得大多数遍历跳转只需一次 Aerospike 读取即可完成。该服务将 Gremlin 遍历转换为高效的 Aerospike 操作,应用针对 Aerospike 的查询规划优化,并将结果流式传输回任何兼容 TinkerPop 的驱动程序(如 gremlin-python、gremlin-javascript、Java 版 gremlin-driver 等)。
主要功能包括:
- 低延迟 OLTP 图查询,在大规模数据下实现个位数毫秒级的 p99 延迟。
- 基于 Spark 的 OLAP 模块,用于在全图上运行 GraphComputer 作业(如 PageRank、连通分量、自定义 VertexPrograms)。
- 基于 Spark 的批量加载器,可将 CSV、GraphML 或 GraphSON 文件直接导入 Aerospike 数据模型,实现快速初始加载。
- 继承自 Aerospike 的横向扩展能力、强一致性、可预测的亚毫秒级读取、混合内存架构以及跨数据中心复制功能。
- 标准 Gremlin 接口,无需自定义查询语言或驱动程序。
部署方面对 Docker 非常友好。graph-service-examples 目录中的 docker-compose 文件可同时启动 AGS、Aerospike 数据库和 Zipkin。对于现有的 Aerospike 集群,AGS 容器可通过指向集群主机、端口和命名空间的环境变量启动,配置也可通过挂载属性文件提供。
从源码构建需要 JDK 17(代码编译为 Java 11 字节码)、Maven 3.9+、支持 Buildx 的 Docker,以及带有 python_on_whales 的 Python 3(用于辅助构建脚本 build-docker)。该项目是一个多模块 Maven 构建,涵盖了 OLTP 引擎、Spark 批量加载器、Spark OLAP 模块和共享 API。
AGS 基于 Apache License 2.0 发布,并包含 Aerospike 和 Apache TinkerPop/Spark 的商标声明。
评论
0 评分人数达到10人后显示
登录后参与讨论。