nebula-python连接创建图空间时,需要很长时间

在服务器上安装了nebula 2.6.0,用python创建图空间时,需要等待很久才能执行"submit job stats"
代码如下:

user1.client.execute(f'CREATE SPACE IF NOT EXISTS {spacename} (vid_type=FIXED_STRING(30));')
time.sleep(5)
user1.client.execute(f"USE {spacename}")
tag_nGQL = f"CREATE TAG {tag_name}(name string)"
edge_nGQL = f"CREATE EDGE {edge_name}(name string)"
user1.client.execute(tag_nGQL)
user1.client.execute(edge_nGQL)
time.sleep(10) # 如果这个时间太短,在后台show stats时会提示job is not finished
user1.client.execute("SUBMIT JOB STATS")

请问大家这是什么问题导致的

submit 的 job 完成之后你才能执行 show stats 命令,参考:https://docs.nebula-graph.com.cn/2.6.2/3.ngql-guide/7.general-query-statements/6.show/14.show-stats/

job 完成的时间可能和你的当前图空间需要统计的数据量有关。

就是我想创建一个新空间,在建完tag和edge之后,需要等个10s左右才能执行submit job stats,不然就会是job is not finished,按理说新建的空间应该没有多大呀,里面还没有插入数据

那我理解了,应该是数据同步需要一个时间周期,一般是 2 个心跳(默认一个心跳是 10s)。你可以阅读下这个文章 图数据库 Nebula Graph 集群通信:从心跳说起

请问这个问题是由nebula-python导致的吗,因为我直接在数据库中创建图空间,tag,edge,submit整个流程都很快,不需要这么久

:joy: 估计是通信时间?我问问研发同学哈 cc @Aiee

嗯嗯,谢谢您了 :blush:

1 个赞

和 python 没关系

请问是什么原因导致的呢?以及应该怎么解决呢 :thinking:

等待10s执行submit job stats是等待ddl改动在各个storage生效,这个是基于设计的,没有特殊的原因;你在图数据库中创建理应是一样的。这个暂时没有什么“解决”。

当然你可以立即执行submit job stats但此时可能会统计没有项的空数据,也会显示没有执行完job(实际上是执行了,但没有数据)

啊,我在图数据库中直接创建好像就只用大概1秒 :weary,好奇怪呀

巧了是有可能的比如创建完刚好心跳。

我试过挺多次的,在用python进行创建的时候,整个流程大概稳定是13-17s,而在图数据库中进行创建的时候,只需要几秒钟,感觉应该不是巧合 :dizzy_face: :dizzy_face: :dizzy_face:

此话题已在最后回复的 30 天后被自动关闭。不再允许新回复。