我应该怎么知道图空间什么时候创建好?

  • 我拷贝图空间的时候我不清楚什么时候创建好图空间,导致一直插入数据失败,是否有什么语句?

SHOW SPACES 看下是否成功,再插入数据呢?

立刻尝试使用刚创建的图空间可能会失败。因为创建是异步实现的。为确保数据同步,后续操作能顺利进行,请等待 2 个心跳周期(20 秒), 修改心跳间隔为heartbeat_interval_secs,如果要修改,建议大于等于5秒,过短的心跳周期可能会导致分布式系统中的机器误判对端失联。

1 个赞

我是单机的,我试过10秒,但还是有的时候可以有的时候不行 :pleading_face:

一般大概需要 2 个心跳,你可以试试过个半分钟再看(两个心跳默认是 20s)。

心跳时间我可以设置吗


storage 的配置里面有,不过你如果缩短了的话,会增加通信成本。所以,看你需求吧。

我的心跳是 heartbeat_interval_secs=1
但是使用 show spaces 后是查得到该空间,实际插入的时候没报错,但是插入后查询不到

插入之后立马查询没有,过一段时间还是没有吗?

1.首先可以提供一下nebula的版本号
2.拷贝图空间后看一下新的space的tag和edge以及index是否和原space一致
3.新的space无法插入的话,看看被拷贝的旧的space能否成功插入

1 个赞

1、version: 3.2.0
2、拷贝后是一致的
3、当我拷贝后通过 show spaces 查询出来图空间存在后我马上进行插入tag和edge,但是没有出来,过了5秒后再重新将数据插入一次后才有.

我等了1分钟还是没有,我后面再重新插入就有了

拷贝图空间后,也是需要等待心跳的,直接插入数据可能会有问题的,你可以试着拷贝图空间后,先进行两个心跳的等待,再进行插入操作,应该就没问题了,Schema的操作都需要等心跳

但是我设置的心跳时间只有1秒,而且用户不太可能等超过20秒的请求.

如果过了1分钟,还是不能用呢,可能是其它的bug

心跳一秒的话,你拷贝完space后有没有等心跳?严格来说的话应该是4个心跳,如果你的心跳设置的很短的话,防止语句刚好在心跳的时候

但是没有语句能让我知道什么时候创建完该空间,我不知道要等待什么时候

这个目前貌似还没有,如果不想多等的话,可以在代码里反复的insert and check,成功后再继续。
欢迎提issue给研发

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