线上业务保证数据一致性问题。

  • nebula 版本:v2.0.0
  • 部署方式:分布式(3台)
  • 硬件信息
  • 磁盘:SSD
  • CPU、内存信息:8核、64g

计划将nebula用于线上业务,每天计算出数据源增删改的数据然后增量同步到nebula,但是为了保证nebula数据和数据源数据的一致性需要每个月进行一次全量更新,如果先删除数据再全量导入会造成线上业务有一段长时间的不可用,请问有没有什么办法可以在全量更新数据的同时减少对线上业务的影响。
比如:是否可以创建两个图空间,空间A用于线上业务,每次全量更新先更新空间B的数据,等空间B更新好后直接把数据同步到空间A。

@wey

您的这个思路是可行的,不过两个空间的数据同步实际上没有 Nebula 内部的机制,也是只能借助 nebula exchange 比如Nebula Spark Connector 写逻辑从外部去做,您考虑用两个空间的情况是出于哪方面考虑呢?

为了按照您的思路做最终一致性不知道这个思路能否满足需求?

  1. 把数据的 TTL 定义为大于全量更新,比如两个月(防止有删除操作没有得到保证造成垃圾残留)
  2. 每月全量更新的写入在同一个空间,通过 a. 如果存在闲时则在闲时快速导入 ;b. 如果不存在闲时,则控制写入速率到不影响线上查询业务(nebula 重复插入相当于更新);去做全量更新保证。
2 个赞

这个方法应该可以满足需要,谢谢!

1 个赞

该话题在最后一个回复创建后7天后自动关闭。不再允许新的回复。