- nebula 版本:2.6.1
- 部署方式:分布式
- 安装方式:RPM
- 硬盘 500G x 2
- CPU 16G x 2
- 内存 64G x 2
问题描述
问题背景
在图中进行查询前,需要添加一些辅助的边来帮助搜索,当前使用的方法是INSERT EDGE,客户端为 nebula2-python,使用中通过python中的while语句监控插入是否执行成功来决定是否进入下一步搜索操作。
问题
我们遇到的问题是,即使python中的while语句已跳出,nebula中依然查询不到被插入的边信息,只有手动执行插入语句才能出现想要的结果。
猜测
我们看到有关心跳周期的解释,猜测是不是我们的插入动作在nebula中也会受到心跳周期的影响,但是文档中并没有提到心跳周期会影响INSERT EDGE,所以我们想来论坛中问一问开发者有没有能解释这个现象的理由。
代码
execute_res = False
while not execute_res:
# 需要手动执行该语句才能保证成功插入
execute_res = nebula.execute(head_ngql).is_succeeded()
steam
2
一般来说,大概需要 1-2 个心跳可以查询到刚刚插入的数据,大概是 10-20s
元数据才需要心跳吧,点边数据应该插入了就能查到才对,是不是因为toss的原因
你用python插入语句的时候,有看过graph的log吗 有接收到插入语句吗
虽然我们没有看过graph的log,但是在这个语句之前以及之后的语句(都是查询类语句),都能够正常运行,所以理论上我们发送的语句都是被接收并运行了的,所以我们猜测可能是插入数据的动作需要经过几个心跳周期才能被查询到。
steam
8
我刚去问了研发,研发同学说,如果用了全文索引,那就是我说的,数据需要个心跳时间才能查到,如果你没用全文索引,那就是上面 @sworduo 说的,插入就可以立马查到。
steam
10
感觉可以骗解决方案了,你如果觉得我的回复解决了你的问题,可以勾选我的回复为解决方案哈,这个问题就算完结了(七天之后就会关闭——你有新的问题可以开新的帖子)
system
关闭
11
此话题已在最后回复的 7 天后被自动关闭。不再允许新回复。