本文主要介绍 mini minor merge 的触发条件和相关控制参数。
buffer minor merge 是一种特殊的 compaction 类型,是将某个指定时间点之前的数据合成一个 buffer minor SSTable,其数据格式和 major SSTable 的一样,不包含多版本数据和未提交事务数据。
buffer minor merge 产生的原因
在频繁插入删除的场景中,SSTable 中数据量会比较大,查询会变得很慢,buffer minor SSTable 可以去掉 SSTable 中已经被删掉的数据,加速查询,缓解写放大的问题。
buffer minor merge 和 major merge 的区别
major merge 是一个全局的快照,是一个比较重的操作,每个 zone 生成的 major SSTable 是一模一样的;buffer minor merge 是可以随时触发的,不受全局的影响,每个 zone 生成的 buffer minor SSTable 可以不一样。
buffer minor merge 和 mini minor merge 的区别
两种 minor merge 都是将多个 SSTable 合成一个 SSTable。mini minor merge 输出的 SSTable 是 mini SSTable 或 minor SSTable,包含多版本数据和未提交事务信息,主要是为了减少 SSTable 数量;buffer minor merge 输出的是 buffer minor SSTable,不包含多版本数据和未提交事务信息,主要是为了解决用户频繁插入删除时,导致 SSTable 数据膨胀影响查询性能的问题。
触发机制
由后台调度线程触发
如何使用
将表的 table_mode 指定为 queuing:ALTER TABLE table_name TABLE_MODE = 'queuing';
适用版本
OceanBase 数据库 V2.2.77 及以后的所有版本。