- nebula 版本:nebulagraph2.5.1
- 部署方式:分布式 / 单机
- 安装方式:源码编译 / Docker / RPM
- 是否为线上版本:Y / N
- 硬件信息
- 500G SSD 磁盘( 推荐使用 SSD)
- CPU 16核、32G内存信息
- 问题的具体描述
- 相关的 meta / storage / graph info 日志信息(尽量使用文本形式方便检索)
】FIND SHORTEST PATH FROM vid1 TO vid2 OVER {edge_list}这个命令,如果vid1与vid2之间不存在PATH时,耗时较高(1000ms+)
这两个实体之间不存在路径,PROFILE查看时蓝色块耗时较高
若查看存在PATH的两个实体的执行计划时,GetNeighbors算子不会有上图蓝色块
情况是FIND SHORTEST PATH命令查找不存在的数据的情况下,会去多查询一次(蓝色块执行计划、该次耗时较高)。
类似于该命令先去从库查数据,没查到再去主库查询数据(耗时较高);而能在从库找到数据的话就直接返回了。能帮忙看看Nebula有类似于这种查询策略的配置嘛?
目前没有这种配置,shortest path 采用的是双向BFS算法,可以考虑以下两种情况
1、 a和b 两点之间 没有路径,或者在用户指定的长度下 没有路径, 但是a和b两点都有其他边可以拓展出去, 这时需要拓展到用户指定长度时才会停止
2、a和b之间没有路径,并且拓展的时候没有边再去拓展,这时候会提前中止(已经在最新的master分支上有了这个功能)
3、针对nebula目前的 存储格式,不适合先使用 DFS方式 查找a和b是否联通,然后再使用BFS查找所有的路径
1 个赞
此话题已在最后回复的 30 天后被自动关闭。不再允许新回复。