15 篇文章
Create Ann Index Ann Index Manager 在 Storage Daemon 中设计一个VectorIndexManager单例对整个 Storaged 中的 Ann Index 进行管理。 Ann Index 的生命周期: 创建:通过 CreateTagAnnIndex 请求创建 Ann Index。 除非删除,否则会一直在内存中维护,在退出时需要持久化到磁盘,同时重启系统后需要从磁盘中加载已经存在的 Ann Index。 使用:在查询时使用 Ann Index 进行加速。 删除:通过 DropTagAnnIndex 请求删除 Ann Index。 更新:通过 Up...
Implement DDL for Vector Type Implement CREATE TAG for Vector Type Thrift: Modify ColumnTypeDef Use type_lenght to indicate the dimension of the vector type.
The Process of DML for Vector Type(Insert for example) Overview Graphd Process Insert 语句首先由 Graphd 从 client 接收,Graph Service 将 Query、Session、Storage 等打包成 Request Context,随后将 Request Context 打包成 Query Context,创建 Query Instance 随后开始执行 parse、validate、optimize、execute 整个流程。 经过 Graphd 的 validate,进入 Plann...
Match for Vector Property Simplest match case MATCH (v) RETURN v LIMIT 3; Process MatchValidator 验证阶段 在验证阶段,节点 (v) 被识别为: 没有指定标签的节点模式 没有属性过滤条件 别名为 v,类型为 AliasType::kNode MatchPathPlanner 路径规划阶段 StartVidFinder 寻找起始点 在 MatchPathPlanner::findStarts() 中 // 遍历所有的 StartVidFinder for (auto& finder : sta...
WAL for Vector Type WAL Scenarios 场景 1: 新节点加入集群 初始状态 集群状态: - Leader: Node1 (term=5, lastLogId=100) - Follower: Node2 (term=5, lastLogId=100) - Follower: Node3 (term=5, lastLogId=100) - 新节点: Node4 (term=0, lastLogId=0) 重放流程 步骤 1: 新节点启动 // Node4 启动 void RaftPart::start(std::vector<HostAddr>&...
项目报告 项目名称:为 NebulaGraph 支持向量近似邻检索 项目导师:曹志鹏 申请人:刘芷溢 日期:2025.09.25 邮箱:lzy_CS_LN@163.com 项目信息 项目名称 为 NebulaGraph 支持向量近似邻检索 方案描述 在 NebulaGraph 分布式图数据库中原生集成向量数据存储与近似最近邻(Approximate Nearest Neighbor, ANN)检索能力。确保设计的语法兼容 NebulaGraph 现有的查询语言,查询语句兼容 OpenCypher 语法规范。 实现向量数据类型并支持其持久化。 实现新的数据类型 VECTOR 实现向量类型的存储,...
A Vertex Life in Nebula Graph Storaged 在 Nebula Graph 中,一个 Vertex 的生命周期从创建到删除,涉及到多个组件和流程。本文将详细介绍一个 Vertex 的生命周期,由此来借鉴实现 VECTOR 类型属性的存储和处理流程。 Vertex Creation 在 Nebula Graph 中,Vertex 的创建通常通过 AddVerticesProcessor executor 来完成。它会将 Vertex 要插入的数据已经元数据打包成 raft-wal log,提交到 Raft Part 中,最后在 Part::commitLogs()...
上篇:初识 Nebula Graph —— 向量类型支持 📚 本系列文章分为上中下三篇,记录了我在开源之夏项目中,开发 Nebula Graph 向量搜索功能的一些复盘和思考,希望可以给大家学习和开发类似系统时有一定的样本参考。希望大家多多关注和交流,大家一起进步 😊 欢迎订阅我的个人网站🚀 tom-jerr.github.io 上篇主要介绍 Nebula Graph 的整体执行流程,重点讲解向量类型的设计和向量存储的设计思路。 中篇主要介绍如何支持向量属性的 DDL 和 DML 语句(💀 走了很多设计的弯路)。 下篇主要介绍如何实现向量索引和向量搜索功能。 在真正开始对 Nebula...
修改nGQL语句,从解析器一直到执行器
Folly 异步编程框架
一条nGQL语句的前世今生
nebula中的Raft Wal
观察者设计模式
nebula中的内存管理
并发的 LRU 缓存