创建索引导入数据,storage报错edge conflict

  • nebula 版本:2.0
  • 部署方式:分布式
  • 硬件信息
    • 磁盘 ssd
    • CPU、内存信息
  • 问题的具体描述
  • 相关的 meta / storage / graph info 日志信息
E0407 15:14:47.159590 23672 AddEdgesProcessor.cpp:259] edge conflict 38:21:4efea57de5e9780f20f860526b5d51bc:-40:0:1626cf0f4282468831a7ed85fa6ce07e
E0407 15:14:47.159901 23672 AddEdgesProcessor.cpp:259] edge conflict 38:17:eb943c52652d376447f97c03ea0efe46:40:0:94a7300f21901d3920d9d8bdbe01fc3f
E0407 15:14:47.222155 23697 AddEdgesProcessor.cpp:259] edge conflict 38:10:d9bc951e22cf24d5b01e7d7cfaf69ff9:40:0:8809203579d43b378ac9433b00a8a9d1
E0407 15:14:47.339427 23680 AddEdgesProcessor.cpp:259] edge conflict 38:21:4efea57de5e9780f20f860526b5d51bc:-40:0:1626cf0f4282468831a7ed85fa6ce07e
E0407 15:14:47.339681 23680 AddEdgesProcessor.cpp:259] edge conflict 38:14:d91554f13cfe3ed4cb7b4eeb8b9ef41d:40:0:4efea57de5e9780f20f860526b5d51bc
E0407 15:14:47.441274 23665 AddEdgesProcessor.cpp:259] edge conflict 38:10:d9bc951e22cf24d5b01e7d7cfaf69ff9:40:0:8809203579d43b378ac9433b00a8a9d1

多个线程同时插入同一条edge 或者 同一个 vertex,storage是不允许同时这样的,所以会报conflict

1 个赞

@dingding 请问如果某个线程在插入某一个 vertex/edge 时发生 conflict,线程是直接退出?还是报错后继续插入后面的数据?

conflict的那个part的数据失败,其他的part继续

@dingding 利用 exchange 批量导入数据时,遇到了 conflict 错误。

请问将 tags 与 edges 分开不同的 exchange 作业导入,会造成 conflict 吗?
比如步骤是:1. 导入 tagA; 2. 导入 tagB;3. 导入 edge: tagA-edgeE-tagB

这样搞按说 server 接到的 request 不会重复, 是不会 conflict 的. 如果还有那就是 exchange 应该设置了 retry 机制?

1.例如flink两台节点插入同一个vertex时,storage报错vertex conflict,是会有一台节点成功插入,还是全部失败?
2.如果这次插入是批量插入的insert语句,失败的这次请求,是整批数据都失败还是只有这一个insert会失败?
语句例如:INSERT VERTEX User (gid, src) VALUES 1:(00000, 1);INSERT VERTEX User (gid, src) VALUES 2:(0000, 1);INSERT EDGE do (ttl) VALUES 55->66:(1629425833);INSERT VERTEX User (gid, src) VALUES 3:(00000, 1);INSERT VERTEX User (gid, src) VALUES 4:(00000, 1);
假如是第二条发生冲突

1.例如flink两台节点插入同一个vertex时,storage报错vertex conflict,是会有一台节点成功插入,还是全部失败?

一台会成功.

2.如果这次插入是批量插入的insert语句,失败的这次请求,是整批数据都失败还是只有这一个insert会失败?

应该说, 是包含这个的一部分 insert 失败.
具体过程是, 一个批量插入会按 partition 拆分到多台机器,
在某一台机器上的失败不会影响其他 partition,
但是在这个失败的 partition 上面的所有 request 都会失败.

1 个赞

这个原贴距离现在已经 4 个多月啦,所以这边先关掉了,你如果有新的问题,可以附上你之前问题的链接,新建一个帖子哈~