查询什么时候回去读sstable 什么时候回去读基线sstable

查询什么时候回去读sstable 什么时候回去读基线sstable

读取数据不会管它是那个sstable,当生成新基线sstable会读取基线和非基线的sstable,应该是这样

查询路径:memory->mini sstable->minor sstable->major sstable
也就是sql查询的时候就会查询基线数据的

1 个赞

我理解是这样:
查询会读取 SSTable 的场景包括:数据未命中 MemTable、全量查询或范围查询、缓存未命中。
查询会读取 基线 SSTable 的场景包括:每日合并后的数据、轮转合并后的数据、历史数据查询。

读取顺序好像是:memory->mini sstable->minor sstable->major sstable

memtable应该是写入变更用到的,读应该首先走KV Cache吧

memtable 存储的是最新的增量数据,也有读写服务,而 sstable 存储的是较旧的基线数据,只读。如果查询需要获取最新的数据版本,必须访问 memtable。
上面提到的也是不同场景下的:
如果查询的数据命中了 kv cache 或其他缓存(如 row cache 或fuse row cache),则直接从缓存中返回结果,无需访问 memtable 或 sstable。
如果缓存未命中,则需要分别查询 memtable 和 sstable,并将结果归并后返回。

1 个赞