You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

NebulaGraph 3.3中KVStore与KVEngine的区别及交互机制咨询

Nebula Graph 3.3中KVStore与KVEngine的关系及交互逻辑

两者的核心区别与定位

  • KVEngine:是底层存储引擎的抽象接口层,RocksEngine.cpp是该接口针对RocksDB的具体实现。它的职责是统一封装不同KV存储引擎的底层操作,对外提供标准的KV读写、扫描、持久化等接口,直接对接RocksDB的原生API,只处理纯存储层面的逻辑,不关心上层的图业务。
  • KVStore:是面向图业务的上层逻辑封装层,它是业务层直接调用的入口,各类图数据的CRUD操作都通过它发起。它负责处理分片路由、事务管理、图数据与KV键值对的编码/解码、一致性保证等业务相关逻辑,是连接图业务和底层存储的中间层。

KVStore与底层数据库的交互流程

  1. 实例关联:KVStore在启动阶段,会根据配置加载指定的KVEngine实现(比如RocksEngine),通过工厂模式初始化KVEngine实例,建立起上层逻辑和底层存储的关联。
  2. 上层逻辑处理:当业务层发起请求时,KVStore先完成自身的业务逻辑处理:
    • 根据顶点/边的ID计算对应的分片,定位到目标存储节点;
    • 处理事务的开启、提交或回滚逻辑;
    • 将图结构数据(如顶点属性、边关系)按照Nebula的编码规则,转换为符合KVEngine要求的键值对格式。
  3. 调用底层接口:完成上述处理后,KVStore会调用KVEngine提供的标准接口(如put()、get()、scan()等),将处理后的键值对请求传递给KVEngine实例。
  4. 底层执行与结果返回:KVEngine(如RocksEngine)接收到请求后,直接调用RocksDB的原生API完成磁盘读写操作,再将执行结果返回给KVStore。KVStore会把结果解码为业务层需要的图数据格式,最终返回给调用方。

内容的提问来源于stack exchange,提问作者user19733404

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 16:40:38