TIDB的sst文件与region 如何理解

【 TiDB 使用环境】生产环境 /测试/ Poc
【 TiDB 版本】
【复现路径】TIDB的sst文件与region 如何理解,之间有什么关系
【遇到的问题:问题现象及影响】
【资源配置】进入到 TiDB Dashboard -集群信息 (Cluster Info) -主机(Hosts) 截图此页面
【附件:截图/日志/监控】

sst文件是rocksdb的存储数据的文件,至于region是tidb逻辑概念,和物理存储没啥关系

region里面的数据应该都可以在sst文件里面找到吧?我理解sst文件是很多region数据的物理存储吧

region 是逻辑存储单元
sst 这不是物理存储文件吗

都是key:value的组合,但是sst是物理存储,一般是顺序的,但是region是逻辑的,例如:sst1里面假设有100个键值对,其中有10个可能是region1的,10个是region2的,而sst2里面假设也有100个键值对,其中也有region1的和region2的。

整个tikv是一个key的范围,存储从 “” 到 “” 的key,可以理解成能存下所有的key
然后逻辑上把这些key分成了一组一组的。比如说从 “” 到AAAA是一组,从 AAAA到 “” 是一组。这就是region。

至于sst,是rocksdb的存储在磁盘上的文件。

是这样的吗? :flushed:

SST文件是用于存储RocksDB中MemTable的持久化数据的文件 ,而Region则是TiKV中数据存储的逻辑划分单元 。SST文件关乎数据的持久化,而Region的管理则直接影响到整个分布式数据库的负载均衡和扩展性。具体如下:

  1. SST文件(Sorted String Table)
  • 在RocksDB中,SST文件是由内存中的MemTable在达到一定条件后被Flush到磁盘上形成的。
  • SST文件是有序的,它内部的数据是根据Key进行排序的,这样可以提高读取效率。
  • SST文件的大小可以通过配置文件进行设置,当文件大小超过设定的阈值时,会触发Compaction操作,合并多个SST文件以减少文件数量,优化读写性能。
  1. Region
  • 在TiKV中,数据被逻辑上划分为多个Region,每个Region负责一部分Key Range的数据存储。
  • Region是PD(Placement Driver)调度的最小单元,PD负责Region的分配和调度,确保数据的均衡分布。
  • Region的大小是可以配置的,当Region中的数据量过大或者过小时,PD会根据配置自动进行Region的分裂(Split)或合并(Merge)操作,以维持系统的高效运行。
1 个赞

楼和房间

都是键值对集合。
SST是物理概念,Region是逻辑概念,TiKV中是一对多。

1,SST文件是存储数据的实际文件 ;2,Region是多个相关的数据文件在被管理时的一个逻辑单元概念。
两个名词维度不一样,没有直接关系

老师们,备份的时候每一个region都有对应一个SST吗?

SST 文件是存储在 TiKV 中的数据文件格式,而 Region 则是将数据划分和管理的单元,它们共同构成了 TiDB 分布式存储和查询的基础。

1 个赞

是对应的,每个sst文件文件名都包括了一个regionID

1 个赞

@all 感谢大家的回复

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