扩容之后原有节点是否会把之前balance出去的数据删掉

刚开始集群三台机器,加节点之后,发现原先的三台机器 storaged 存储占用并没有减少;
nebula会去删从该节点balance出去的数据吗?

1 个赞

会的

可是。。我发现这个节点上占用的存储并没有减少呀。。balance data之后还要别的操作吗?

好问题,:+1:
目前还没有删除这部分已经balance的数据,这个功能后面会完善下。
感谢你的问题。

1 个赞

请问什么时候会完善呢

@pandasheeps

目前在需求列表里面,优先级不是很高。

你好,Storaged实例的数据存储什么情况下会存在同一目录存储多个图空间数据的情况,我现在遇到一个问题,在结点扩容后,集群反复重启测试发现,leader metad实例被调度到原结点和新结点会有不同的元数据信息,比如调度到原结点时会有一个图空间A,调度到新结点时图空间A消失了,变成了图空间B,然后两个图空间实际都具有相同的图空间id,也共用同一个存储目录,但我目前不知道这个bug是怎么触发的,因为我做了大量的操作,比如快照创建,快照文件迁移,图空间删除和创建,结点扩容,结点平衡等等,但不知道具体是哪个步骤出了问题导致出现元数据不一致的情况,所以我想知道Storaged实例的数据存储什么情况下会存在同一目录存储多个图空间数据的情况。1

你好,看了下里面的balance的代码,在balance 后,是调用rocksdb 的delete 去删除对应的part, rocksdb中delete 是标记为删除的,没有释放空间。那我调用了下compact 就可以将存储空间清理出来呢?不知道这么理解有没有问题,求解答

你nebula-storaged.conf下面的data_path 参数下面会会存放多个space实例数据的

应该不可以。
比如如下情况,假如就一个part 从机器1到机器2
因为compact的时候,机器1都不进行compact。

这个我们后面会进行处理。

你好,不太理解为啥part1 机器都进行compact,是指part1 机器下线了吗?如果part1机器还在工作的,发送compact请求不是所有的机器的rocksdb engine都会进行compact 的吗?

compact 的时候,是按照该space在的机器,去对应的机器进行compact的。

哦哦,了解了,不过一般如果是扩容的的,当前的机器上一般还是会存在该space的其它part,可以部分缓解这个情况?

@pandasheeps 您好,我看到这个贴子同样有几个疑问想确认:

  • 扩容的之后,balance data 是把原集群里面的partition 类型cp 到新的节点上,而不是mv?

  • 如果扩容成功,原先的partition 数据不删除,这是不是意味着replica_factor 变多了?

    - 如果不是,那原先partition 数据如何清除?

1) 是cp到远程的
2) part cp到远程的其他机器上后,本机器的part信息没有了。因此该part无效了。
这个我们后面会将无效的数据删除的。

好的,明白了,谢谢。这个大概要哪个版本release?

优先级不高,后面会做的。到时候看release note吧