HydraDB 是一个用 Rust 写成的分布式图数据库,它的特别之处在于:图数据直接存在 S3 兼容的对象存储上,而不是本地磁盘。项目从 2026 年 8 月 11 日首次提交至今约一个月,已经拿到 3.1k star、659 次 fork,是近期增长很快的开源新项目。如果你已经在用 Neo4j,HydraDB 支持直接借用现有驱动连上来,迁移成本低。

先解释两个基础词。图数据库:把数据看成「点」和「边」来存储和查询的数据库,适合关系密集的场景,比如社交网络里的「谁关注了谁」、风控里的「账户—交易—设备」关联、知识图谱里的实体关系。对象存储:类似 S3 的云上大仓库,按对象存数据,容量近乎无限、价格便宜,但读写延迟比本地硬盘高。

图数据存在哪:对象存储当正本

传统图数据库通常把数据放在服务器本地磁盘,数据与计算绑在同一节点上,扩容时要复制整份数据。HydraDB 反着来:S3 兼容的对象存储是图的唯一持久层,所有数据、日志、索引的正本都在那里。

集群里跑两类角色:

  • graph-node(数据节点):对外提供查询和写入。
  • graph-indexer(索引节点):后台把数据编译成只读的遍历索引。

两类节点本地都只保留可丢弃的缓存(内存加 SSD/NVMe),随时可以删掉重建。要扩容,多开几个节点就行,不用搬动图数据本身。这就是项目强调的「存储与计算分离」。

底层技术组合

HydraDB 的存储引擎是 SlateDB(日志结构的嵌入式存储引擎,负责把数据有序落盘、保证持久化);查询语言用 OpenCypher(Neo4j 使用的图查询语言,HydraDB 支持其实用子集,含条件匹配、关系路径、聚合、分页和批量写入);路径遍历计算用 GraphBLAS(把图遍历转成矩阵运算来加速的算法库)。对外提供两种接入方式:Bolt 5.x 协议(Neo4j 驱动使用的网络协议,因此 Neo4j 客户端可以直接连)和 HTTPS 查询接口(支持 JSON 与 NDJSON,NDJSON 是每行一条 JSON 的流式格式,适合大批量结果)。

快速上手

最简单的启动方式是 Docker 一条命令拉起开发节点,镜像发布在 ghcr.io/hydra-db/hydradb,同时支持 linux/amd64 和 arm64,Apple Silicon 可以直接跑。节点起好后监听三个端口:7687(Bolt 查询)、8443(HTTP 查询)、9090(健康检查与 Prometheus 指标)。Prometheus 是常见的开源监控系统。官方建议用「写一条数据再读回来」验证节点是否正常,而不是只看端口通不通。

生产环境可用官方 Helm chart 部署到 Kubernetes。Helm 是 Kubernetes 的软件包管理工具,chart 就是打包好的部署配置;这套配置包含查询节点、索引节点、缓存卷、TLS、认证,以及可选的 Prometheus 监控。服务端还支持导出 OpenTelemetry 追踪数据(OpenTelemetry 是开源的可观测性标准)。

当前进展

截至 2026 年 9 月:3.1k star、659 fork、7 位贡献者、46 个 issue、78 个 PR。官方发布过公开的 benchmark 站点,提供延迟与吞吐数据;还提供架构文档、Helm 部署指南、形式化验证与 Jepsen 测试报告(Jepsen 是业界常用的分布式系统一致性测试工具)。许可协议为 AGPL-3.0,对外部署为网络服务时,该协议要求向使用者公开源代码。

适合谁用

  • 已有 Neo4j 应用、想降低存储成本或把数据迁到对象存储上的团队,Bolt 协议可以直接接;
  • 图数据量大、需要横向扩展查询能力,且能接受对象存储读写延迟的场景;
  • 愿意自己运维的团队。项目还很年轻,处于 0.1.0 版本阶段,生产使用前建议先跑官方 benchmark 与正确性测试。

HydraDB 的核心定位可以这样记住:Rust 编写的分布式图数据库,数据正本放在 S3 兼容对象存储上,查询与计算分开扩容,Neo4j 驱动可以直接连。如果你正在评估图数据库的存储方案,这个刚满一个月的项目值得放进观察名单。