table、region、列簇与LSM Tree的关联?

我先说一下我的理解,如果有不对的地方,欢迎各位大佬指正。
首先,table、region以及列簇都是逻辑概念,LSM Tree是物理概念(底层rocksDB存储的数据结构)。table即是我们在关系型数据库中常用的表,但是在tidb数据库中,是以KV键值对的形式存储的;region是将table按照一定的规则(如hash、range)分成了多个数据子集合,是tidb数据调度的最小单位;列簇是内存数据(block cache、memtable等)与磁盘数据(LSM tree)的集合概念,一个或多个表可以存储在同一个同一个列簇中。
一个table对应一个或多个region;一个table对应一个列簇;一个table对应一个LSM tree。
一个region一般对应一个table;一个region对应一个列簇;一个region对应一个LSM tree?那region的有序性如何保证?
一个列簇对应一个或多个table;一个列簇对应一个或多个region;一个列簇对应一个LSM tree。
求大佬解惑:pray:

table 和 region 有逻辑关系

列簇是 rocksdb的实现,Lsm Tree 是 rocksdb 对于数据处理的一种算法,或者机制的实现

table -> meta Data 是逻辑上的定义,会有列的描述,长度等等定义

region 是 table 调度的最小单元,每一行数据都会存储 region中,实际上查询 table 数据的时候,会从region 中获取;

这样描述可以帮到你么?

一个table对应多个LSM tree,一个region对应一个LSM tree

1 个赞

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