如果某个 store merge target 不存在的情况下,进行 region merge

如下图,region1->region2 进行 merge,但在 store4 上不存在 region1,store1 上不存在 region2,这种情况下 merget target 是 region2,store1 和 store4 会发生什么。
store2 和 store3 是不是会,先把 region1 复制拷贝到 region2,然后删除对应的 peer,这是两个操作,前者是怎么实现的,snapshot?后者呢。

谢谢

参考这儿:

Region 是如何进行分裂的?

Region 不是前期划分好的,但确实有 Region 分裂机制。当 Region 的大小超过参数 region-max-sizeregion-max-keys 的值时,就会触发分裂,分裂后的信息会汇报给 PD。

Region merge

Region merge 指的是为了避免删除数据后大量小甚至空的 Region 消耗系统资源,通过调度把相邻的小 Region 合并的过程。Region merge 由 mergeChecker 负责,其过程与 replicaChecker 类似:PD 在后台遍历,发现连续的小 Region 后发起调度。

具体来说,当某个新分裂出来的 Region 存在的时间超过配置项 split-merge-interval 的值(默认 1h)后,如果同时满足以下情况,该 Region 会触发 Region merge 调度:

1 个赞

除了上面推荐的源码阅读系列。

https://xieyu.github.io/blog/tikv/merge_region2.html

这个博客也推荐一下。其他人自己整理的。可以对照着看。

很有帮助,谢谢

1 个赞

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