Zing 论坛

正文

NornicDB:为AI原生应用打造的图向量融合数据库

NornicDB是一款开源的图数据库,原生支持向量检索与图遍历的混合查询,兼容Neo4j Bolt/Cypher协议,同时保留Qdrant gRPC接口,实现亚毫秒级写入和亚10毫秒级HNSW向量搜索,为Graph-RAG和智能体记忆系统提供统一存储方案。

NornicDB图数据库向量数据库Graph-RAGNeo4jHNSWMVCCAI原生数据库知识图谱智能体记忆
发布时间 2026/03/31 02:12最近活动 2026/03/31 02:18预计阅读 14 分钟
NornicDB:为AI原生应用打造的图向量融合数据库
1

章节 01

导读 / 主楼:NornicDB:为AI原生应用打造的图向量融合数据库

NornicDB是一款开源的图数据库,原生支持向量检索与图遍历的混合查询,兼容Neo4j Bolt/Cypher协议,同时保留Qdrant gRPC接口,实现亚毫秒级写入和亚10毫秒级HNSW向量搜索,为Graph-RAG和智能体记忆系统提供统一存储方案。

2

章节 02

背景

NornicDB:为AI原生应用打造的图向量融合数据库\n\n## 背景:为什么需要图向量融合数据库?\n\n在构建基于大语言模型的智能应用时,开发者往往面临一个架构难题:语义搜索需要向量数据库,而关系推理需要图数据库。传统的解决方案是将两者分开部署——用向量数据库存储嵌入向量进行相似性检索,用图数据库维护实体关系。这种架构不仅增加了系统复杂度,还导致跨库查询时产生显著的网络延迟。\n\nNornicDB的出现正是为了解决这一痛点。它是一款从零设计的原生融合数据库,将图遍历、向量检索和历史版本控制整合到单一执行引擎中,为知识图谱、智能体记忆、Graph-RAG等场景提供了统一的存储基础设施。\n\n## 项目概览:NornicDB是什么\n\nNornicDB是一款低延迟的图向量数据库,采用MVCC(多版本并发控制)架构,实现了亚毫秒级的写入性能和亚10毫秒级的HNSW向量搜索加图遍历性能。它最引人注目的特点是完全兼容Neo4j的Bolt协议和Cypher查询语言,同时保留了Qdrant风格的gRPC接口,让现有应用可以零改动迁移。\n\n该项目由orneryd团队开源,采用Go语言开发,支持多种硬件加速路径(Metal/CUDA/Vulkan),并提供完整的Docker镜像方案,包括预装嵌入模型的全功能版和自带模型(BYOM)的精简版。\n\n## 核心技术架构解析\n\n### 混合执行模型\n\nNornicDB采用了独特的混合执行策略。对于常见的遍历和聚合模式,系统使用专门优化的流式执行器;而对于复杂的查询,则回退到通用Cypher执行路径。这种设计在保证性能的同时,也确保了查询的完整性和正确性。\n\n在解析器层面,NornicDB提供了两种模式:默认的nornic解析器针对低延迟热路径进行了优化,而ANTLR模式则在需要严格语法验证和调试诊断时提供完整的解析树支持。内部测试表明,在某些查询场景下,两种解析路径的性能差异显著,这也是生产环境默认采用自定义解析器的原因。\n\n### MVCC与快照隔离\n\nNornicDB在存储层实现了快照隔离机制。每个事务都锚定到特定的MVCC版本,这意味着点查询、标签扫描和快照可见的图遍历都在同一提交视图上解析。这种设计带来了几个关键优势:\n\n- 事务内的可重复读:事务能看到自己缓冲的写入,但看不到读快照之后提交的其他事务的修改\n- 提交时的冲突检测:对相同逻辑状态的并发图变更会返回标准化的ErrConflict错误,而不是静默覆盖新数据\n- 显式的历史读取:MVCC剪枝策略保留每个逻辑键的当前头部和保留下限,低于保留下限的请求会安全地返回ErrNotFound\n\n值得注意的是,向量搜索专注于当前状态,与历史MVCC状态是分离的,这种设计符合语义搜索通常只关心最新数据的实际需求。\n\n### GPU加速与硬件适配\n\nNornicDB原生支持GPU加速,提供了Metal(Apple Silicon)、CUDA(NVIDIA)和Vulkan三种硬件加速路径。这对于需要高吞吐量的图计算和语义工作负载尤为重要。项目提供了针对不同硬件优化的Docker镜像:\n\n- timothyswt/nornicdb-arm64-metal-bge:latest —— Apple Silicon(含bge-m3嵌入模型)\n- timothyswt/nornicdb-amd64-cuda-bge:latest —— NVIDIA GPU环境\n- timethyswt/nornicdb-amd64-vulkan-bge:latest —— Vulkan兼容设备\n- timothyswt/nornicdb-amd64-cpu-bge:latest —— 纯CPU环境\n\n## 性能表现:基准测试数据\n\n### LDBC社交网络基准测试\n\n在M3 Max(64GB内存)设备上进行的LDBC社交网络基准测试显示,NornicDB相比Neo4j有显著的性能提升:\n\n| 查询类型 | NornicDB | Neo4j | 加速比 |\n|---------|---------|-------|--------|\n| 消息内容查找 | 6,389 ops/sec | 518 ops/sec | 12x |\n| 好友近期消息 | 2,769 ops/sec | 108 ops/sec | 25x |\n| 城市平均好友数 | 4,713 ops/sec | 91 ops/sec | 52x |\n| 标签共现分析 | 2,076 ops/sec | 65 ops/sec | 32x |\n\n### 混合检索性能\n\n混合检索是NornicDB区别于纯向量数据库的核心能力。在本地基准测试中(67,280节点、40,921边、67,298嵌入向量,CPU-only HNSW索引):\n\nHTTP传输层:\n- 纯向量检索:14,950 req/s,平均延迟663微秒\n- 向量+1跳图遍历:11,523 req/s,平均延迟859微秒\n\nBolt传输层:\n- 纯向量检索:8,802 req/s,平均延迟1.13毫秒\n- 向量+1跳图遍历:7,977 req/s,平均延迟1.24毫秒\n\n远程基准测试(GCP 8 vCPU、32GB RAM)显示,P50延迟约为110毫秒左右,端到端延迟主要受网络RTT限制而非计算瓶颈。\n\n### HNSW构建优化\n\n通过BM25种子插入顺序优化,NornicDB将100万嵌入向量的HNSW索引构建时间从约27分钟缩短到约10分钟,实现了2.7倍的加速。这一优化通过减少构建过程中的遍历浪费实现,且没有改变核心质量参数。\n\n## 关键特性与差异化优势\n\n### 协议兼容性\n\nNornicDB提供了多协议支持,让不同背景的开发团队都能找到熟悉的接口:\n\n- Bolt + Cypher:完全兼容Neo4j协议,现有Neo4j驱动(Python、JavaScript、Go、Java、.NET)可直接使用\n- Qdrant gRPC:保留Qdrant风格的gRPC工作流,方便从Qdrant迁移\n- REST API:标准HTTP接口,便于Web应用集成\n- GraphQL:支持图查询的GraphQL接口\n\n### 智能功能原生集成\n\n与传统数据库"后期加装AI功能"不同,NornicDB将智能能力作为一等公民:\n\n- LLM推理:内置大语言模型推理能力\n- 嵌入生成:支持文本自动向量化\n- HNSW + 重排序:向量搜索结合BM25融合和可选重排序\n- 记忆衰减:模拟人类记忆的遗忘曲线,自动管理长期记忆\n- 自动TLP:自动事务生命周期管理\n- MCP支持:Model Context Protocol原生支持\n\n### 规范图账本模型\n\n对于需要严格审计和合规的场景,NornicDB提供了规范图账本模型,支持:\n\n- 版本化事实存储\n- 时间有效性窗口\n- 三时态事实建模\n- 历史时点读取(as-of reads)\n- 面向审计的变更追踪\n\n## 部署与使用\n\n### Docker快速启动\n\nApple Silicon用户可以通过以下命令快速启动:\n\nbash\ndocker run -d --name nornicdb \\\n -p 7474:7474 -p 7687:7687 \\\n -v nornicdb-data:/data \\\n timothyswt/nornicdb-arm64-metal-bge:latest\n\n\n启动后访问http://localhost:7474即可进入管理界面。\n\n### 代码示例\n\n使用Neo4j Python驱动连接NornicDB:\n\npython\nfrom neo4j import GraphDatabase\n\ndriver = GraphDatabase.driver(\"bolt://localhost:7687\")\nwith driver.session() as session:\n session.run(\"CREATE (n:Memory {content: 'Hello NornicDB'})\")\n\n\n## 适用场景\n\nNornicDB特别适合以下应用场景:\n\nGraph-RAG系统:结合向量语义检索和图关系推理,实现更准确的检索增强生成。相比传统的纯向量RAG,Graph-RAG可以利用实体关系进行多跳推理,回答需要综合多个信息源的复杂问题。\n\n智能体记忆系统:为AI智能体提供结构化的短期会话状态和长期语义记忆,支持记忆的自动衰减和关联检索。\n\n知识图谱应用:构建大规模知识图谱,支持复杂的图遍历查询和语义搜索的结合。\n\n审计密集型系统:利用规范图账本模型,实现不可篡改的数据变更历史追踪,满足金融、医疗等行业的合规要求。\n\n## 总结与展望\n\nNornicDB代表了数据库技术向AI原生架构演进的一个重要方向。它不是简单地将向量搜索插件化到图数据库中,而是从根本上重新设计了存储引擎,让图遍历、向量检索、时态查询和审计追踪能够在同一执行路径上高效运行。\n\n对于正在构建下一代智能应用的开发者来说,NornicDB提供了一个值得认真考虑的选项。它既保留了成熟图数据库的查询能力和生态兼容性,又原生集成了现代AI应用所需的向量检索和语义理解能力,在性能、功能和易用性之间取得了很好的平衡。\n\n随着项目的持续迭代,我们可以期待更多企业级特性(如分布式部署、更丰富的安全控制)的完善,届时NornicDB有望成为AI基础设施领域的重要玩家。

3

章节 03

补充观点 1

NornicDB:为AI原生应用打造的图向量融合数据库\n\n背景:为什么需要图向量融合数据库?\n\n在构建基于大语言模型的智能应用时,开发者往往面临一个架构难题:语义搜索需要向量数据库,而关系推理需要图数据库。传统的解决方案是将两者分开部署——用向量数据库存储嵌入向量进行相似性检索,用图数据库维护实体关系。这种架构不仅增加了系统复杂度,还导致跨库查询时产生显著的网络延迟。\n\nNornicDB的出现正是为了解决这一痛点。它是一款从零设计的原生融合数据库,将图遍历、向量检索和历史版本控制整合到单一执行引擎中,为知识图谱、智能体记忆、Graph-RAG等场景提供了统一的存储基础设施。\n\n项目概览:NornicDB是什么\n\nNornicDB是一款低延迟的图向量数据库,采用MVCC(多版本并发控制)架构,实现了亚毫秒级的写入性能和亚10毫秒级的HNSW向量搜索加图遍历性能。它最引人注目的特点是完全兼容Neo4j的Bolt协议和Cypher查询语言,同时保留了Qdrant风格的gRPC接口,让现有应用可以零改动迁移。\n\n该项目由orneryd团队开源,采用Go语言开发,支持多种硬件加速路径(Metal/CUDA/Vulkan),并提供完整的Docker镜像方案,包括预装嵌入模型的全功能版和自带模型(BYOM)的精简版。\n\n核心技术架构解析\n\n混合执行模型\n\nNornicDB采用了独特的混合执行策略。对于常见的遍历和聚合模式,系统使用专门优化的流式执行器;而对于复杂的查询,则回退到通用Cypher执行路径。这种设计在保证性能的同时,也确保了查询的完整性和正确性。\n\n在解析器层面,NornicDB提供了两种模式:默认的nornic解析器针对低延迟热路径进行了优化,而ANTLR模式则在需要严格语法验证和调试诊断时提供完整的解析树支持。内部测试表明,在某些查询场景下,两种解析路径的性能差异显著,这也是生产环境默认采用自定义解析器的原因。\n\nMVCC与快照隔离\n\nNornicDB在存储层实现了快照隔离机制。每个事务都锚定到特定的MVCC版本,这意味着点查询、标签扫描和快照可见的图遍历都在同一提交视图上解析。这种设计带来了几个关键优势:\n\n- 事务内的可重复读:事务能看到自己缓冲的写入,但看不到读快照之后提交的其他事务的修改\n- 提交时的冲突检测:对相同逻辑状态的并发图变更会返回标准化的ErrConflict错误,而不是静默覆盖新数据\n- 显式的历史读取:MVCC剪枝策略保留每个逻辑键的当前头部和保留下限,低于保留下限的请求会安全地返回ErrNotFound\n\n值得注意的是,向量搜索专注于当前状态,与历史MVCC状态是分离的,这种设计符合语义搜索通常只关心最新数据的实际需求。\n\nGPU加速与硬件适配\n\nNornicDB原生支持GPU加速,提供了Metal(Apple Silicon)、CUDA(NVIDIA)和Vulkan三种硬件加速路径。这对于需要高吞吐量的图计算和语义工作负载尤为重要。项目提供了针对不同硬件优化的Docker镜像:\n\n- timothyswt/nornicdb-arm64-metal-bge:latest —— Apple Silicon(含bge-m3嵌入模型)\n- timothyswt/nornicdb-amd64-cuda-bge:latest —— NVIDIA GPU环境\n- timethyswt/nornicdb-amd64-vulkan-bge:latest —— Vulkan兼容设备\n- timothyswt/nornicdb-amd64-cpu-bge:latest —— 纯CPU环境\n\n性能表现:基准测试数据\n\nLDBC社交网络基准测试\n\n在M3 Max(64GB内存)设备上进行的LDBC社交网络基准测试显示,NornicDB相比Neo4j有显著的性能提升:\n\n| 查询类型 | NornicDB | Neo4j | 加速比 |\n|---------|---------|-------|--------|\n| 消息内容查找 | 6,389 ops/sec | 518 ops/sec | 12x |\n| 好友近期消息 | 2,769 ops/sec | 108 ops/sec | 25x |\n| 城市平均好友数 | 4,713 ops/sec | 91 ops/sec | 52x |\n| 标签共现分析 | 2,076 ops/sec | 65 ops/sec | 32x |\n\n混合检索性能\n\n混合检索是NornicDB区别于纯向量数据库的核心能力。在本地基准测试中(67,280节点、40,921边、67,298嵌入向量,CPU-only HNSW索引):\n\nHTTP传输层:\n- 纯向量检索:14,950 req/s,平均延迟663微秒\n- 向量+1跳图遍历:11,523 req/s,平均延迟859微秒\n\nBolt传输层:\n- 纯向量检索:8,802 req/s,平均延迟1.13毫秒\n- 向量+1跳图遍历:7,977 req/s,平均延迟1.24毫秒\n\n远程基准测试(GCP 8 vCPU、32GB RAM)显示,P50延迟约为110毫秒左右,端到端延迟主要受网络RTT限制而非计算瓶颈。\n\nHNSW构建优化\n\n通过BM25种子插入顺序优化,NornicDB将100万嵌入向量的HNSW索引构建时间从约27分钟缩短到约10分钟,实现了2.7倍的加速。这一优化通过减少构建过程中的遍历浪费实现,且没有改变核心质量参数。\n\n关键特性与差异化优势\n\n协议兼容性\n\nNornicDB提供了多协议支持,让不同背景的开发团队都能找到熟悉的接口:\n\n- Bolt + Cypher:完全兼容Neo4j协议,现有Neo4j驱动(Python、JavaScript、Go、Java、.NET)可直接使用\n- Qdrant gRPC:保留Qdrant风格的gRPC工作流,方便从Qdrant迁移\n- REST API:标准HTTP接口,便于Web应用集成\n- GraphQL:支持图查询的GraphQL接口\n\n智能功能原生集成\n\n与传统数据库"后期加装AI功能"不同,NornicDB将智能能力作为一等公民:\n\n- LLM推理:内置大语言模型推理能力\n- 嵌入生成:支持文本自动向量化\n- HNSW + 重排序:向量搜索结合BM25融合和可选重排序\n- 记忆衰减:模拟人类记忆的遗忘曲线,自动管理长期记忆\n- 自动TLP:自动事务生命周期管理\n- MCP支持:Model Context Protocol原生支持\n\n规范图账本模型\n\n对于需要严格审计和合规的场景,NornicDB提供了规范图账本模型,支持:\n\n- 版本化事实存储\n- 时间有效性窗口\n- 三时态事实建模\n- 历史时点读取(as-of reads)\n- 面向审计的变更追踪\n\n部署与使用\n\nDocker快速启动\n\nApple Silicon用户可以通过以下命令快速启动:\n\nbash\ndocker run -d --name nornicdb \\\n -p 7474:7474 -p 7687:7687 \\\n -v nornicdb-data:/data \\\n timothyswt/nornicdb-arm64-metal-bge:latest\n\n\n启动后访问http://localhost:7474即可进入管理界面。\n\n代码示例\n\n使用Neo4j Python驱动连接NornicDB:\n\npython\nfrom neo4j import GraphDatabase\n\ndriver = GraphDatabase.driver(\"bolt://localhost:7687\")\nwith driver.session() as session:\n session.run(\"CREATE (n:Memory {content: 'Hello NornicDB'})\")\n\n\n适用场景\n\nNornicDB特别适合以下应用场景:\n\nGraph-RAG系统:结合向量语义检索和图关系推理,实现更准确的检索增强生成。相比传统的纯向量RAG,Graph-RAG可以利用实体关系进行多跳推理,回答需要综合多个信息源的复杂问题。\n\n智能体记忆系统:为AI智能体提供结构化的短期会话状态和长期语义记忆,支持记忆的自动衰减和关联检索。\n\n知识图谱应用:构建大规模知识图谱,支持复杂的图遍历查询和语义搜索的结合。\n\n审计密集型系统:利用规范图账本模型,实现不可篡改的数据变更历史追踪,满足金融、医疗等行业的合规要求。\n\n总结与展望\n\nNornicDB代表了数据库技术向AI原生架构演进的一个重要方向。它不是简单地将向量搜索插件化到图数据库中,而是从根本上重新设计了存储引擎,让图遍历、向量检索、时态查询和审计追踪能够在同一执行路径上高效运行。\n\n对于正在构建下一代智能应用的开发者来说,NornicDB提供了一个值得认真考虑的选项。它既保留了成熟图数据库的查询能力和生态兼容性,又原生集成了现代AI应用所需的向量检索和语义理解能力,在性能、功能和易用性之间取得了很好的平衡。\n\n随着项目的持续迭代,我们可以期待更多企业级特性(如分布式部署、更丰富的安全控制)的完善,届时NornicDB有望成为AI基础设施领域的重要玩家。