【 使用环境 】测试环境
【 OB or 其他组件 】
【 使用版本 】4.0
【问题描述】清晰明确描述问题
【复现路径】问题出现前后相关操作
【问题现象及影响】
https://open.oceanbase.com/activities/4921877?id=4921912
在观看视频时,作者有提到当某一level 存储数据量达到阈值时 会触发跟下一层的合并。
这个阈值是多少? 有参数控制么
【附件】
【 使用环境 】测试环境
【 OB or 其他组件 】
【 使用版本 】4.0
【问题描述】清晰明确描述问题
【复现路径】问题出现前后相关操作
【问题现象及影响】
https://open.oceanbase.com/activities/4921877?id=4921912
在观看视频时,作者有提到当某一level 存储数据量达到阈值时 会触发跟下一层的合并。
这个阈值是多少? 有参数控制么
【附件】
谢谢。
请教下 一个Mini SSTable的大小是不是等同freeze trigger配置的大小啊?
比如你文中配置的是 0.3G,那么当memstore使用达到0.3 触发冻结 生成Frozen Memtable,再刷新到MiniSSTable,是不是这个minisstable 就是 0.3G内存的数据量?
是如你所说的
是的,我目前也是这样理解的
你好,我想请问下当内存使用超过阈值即将触发转储时,是当前机器当前租户管理下的所有表一起转储吗,例如当前租户有两张表,一张表内存持续写入,另一张表内存只有两条数据,由于第一张表prepare数据持续写入触发转储,是否会带着第二张表一起生成两个mini sstable,此外转储后不可变的MemTable何时回收,是否有缓存预热之类的机制。
感谢大佬的回复,还想请问一下Slog文件在转储合并中的作用,如果没有SLog,对转储合并会有什么影响
slog有点类似转储合并的redo log
是的,他记录了创建sstable修改超级快等元数据的操作,意思是数据修改是实时的但是元数据宏块是异步的吗,这样设计的目的是什么嘛
这就是最基础的wal原则了, 元数据也是数据
但是因为这部分是没法走clog的, 所以会有slog这一套机制
所以在记录了slog后,元数据应该没有实际刷盘吧,实际刷盘要等到下次做checkpoint的时候,这段时间内一直使用的都是内存中的元数据吧,话说大佬的名字一天一个样
嗯 差不多可以这么理解
或者说在下次重启的时候, 这个元数据是没法直接拿到的, 必须通过checkpoint + slog回放来找到
嗯,最近在学习合并的代码发现slog是在dag调度finish task的时候写的,这块dag拆分一个合并任务分成三部分主要目的是什么,dag会减少资源冲突吗
拆任务是为了并行