TiCI 的设计考量

主要介绍 TiCI 的一些实现。

TiCI 的设计考量

写入路径

  • 确定 Compaction 的策略
  • Compaction vs Split
  • S3 的 SlowDown

MetaService

Shard

在 shard 的大小上,我们默认设置为 4 GiB,这样对于 80 TiB 的集群规模,会有 20k+ 个 shard。一个 shard 中有多个 fragment,fragment 之间是可以 overlap 的,我们也按照传统方法引入了 leveled compaction。

过多(小)的 shard 和 fragment,对于查询是不利的:

  • 过多的 fragment,会导致每个 fragment 中的词典会很小,压缩率不高
  • 此外,一个查询如果覆盖多个 fragment,就需要按照每个 fragment 的词典都过滤一遍,再 merge,这样并发上不去