TiKV中Region为什么选择96M作为默认大小?

您好,我读了关于TiDB的论文,
https://dl.acm.org/doi/pdf/10.14778/3415478.3415535
有一个疑问,为什么TiKV中的Region大小默认是96M?我的理解是一个Region会有个对应的一个Region Group,由此对应一个Raft 状态机进行一致性管理。 为什么Region要设置这么小的容量?难道不会带来因为Raft状态机过多,额外开销更大的后果?
期待大家的回答

96MB 是兼顾调度速度、scan 并发度、分片个数的综合经验值。

分片过多的问题现在主要通过 hibernate region 来解决。

tikv的读性能是跟region的分片数有关吗,分片数多了并发性是不是好了啊,没有找到太确定的理论支撑,最近在测试一个tikv的性能,每次读取固定数量的kv,发现数据量多了之后性能反而更好,并且在数据写入完成后超过12小时后再测试,性能也比刚写入完成后scan操作要好很多,这个数据写入完成后这段时间是会有数据下刷过程吗,还是region又做了均衡调度呢,也没有找到理论支撑

  1. 读性能和 Region 数多不多没有必然联系,但是确实存在一些情况会以 Region 为单位进行并发;
  2. 这里观察到的性能变化的情况和放置之后性能变好的现象,和 RocksDB 的 compaction, MVCC 数据的 GC (即清理不再需要的历史版本数据),以及均衡调度都可能有关。

谢谢,我再分析一下