TiKV 中 raft-log-gc-size-limit 大于 region-split-size 会发生什么

What would happen raft-log-gc-size-limit is larger than region-split-size in TiKV

我有一个 TiKV 设置,它有一个 region-split-size 96MB,这是默认值,raft-log-gc-size-limit 是 144MB。对 TiKV 集群有什么影响。由于提到 raft-log-gc-size-limit 应该是 region-split-size 的 3/4。

你可能会浪费 space 来存储 raft 日志和浪费网络流量来恢复 Raft 状态。

一个Region由一个Raft group管理,当它的数据超过region-max-size时,它会分裂,例如Region [a,e)可能分裂成几个Region [a,b), [b, c), [c,d), [d,e) 和 [a,b), [b,c), [c,d) 的大小都在 region-split-size 左右。所以 TiKV 假设快照的大小也在 region-split-size 左右。

过时的节点通过快照或 raft 日志恢复状态。筏日志总是首选。如果我们存储过多的 raft 日志 (> region-spilt-size),可能会有两种结果:

  1. 浪费网络流量来恢复状态,
  2. 浪费 space 来存储 raft 日志,较旧的 raft 日志可能永远不会被提取和发送。