首批通过分布式安全可靠测评,为关键业务系统打造
转储
更新时间:2026-04-10 11:58:01
转储包含两个过程:Mini Compaction 和 Minor Compaction。
Mini Compaction
当 MemTable 的大小超过一定的阈值时,需要将 MemTable 中的数据转存到 Mini SSTable 中以释放内存,该过程称为 Mini Compaction。
Mini Compaction 的核心就是释放内存和数据日志。内存中的 Frozen MemTable 通过 Mini Compaction 变成磁盘上的 Mini SSTable,是数据日志的一个 checkpoint。Mini Compaction 结束后,其对应的 Frozen MemTable 和 Log 可以被释放。
Minor Compaction
随着用户数据的写入,Mini SSTable 的数量会逐渐增多,在查询时需要访问的 Mini SSTable 数量就会增多,会影响查询的性能。Minor Compaction 就是将多个 Mini SSTable 合成一个 SSTable,其主要目的是减少 SSTable 的数量。当 Mini SSTable 的数量超过阈值时,后台会自动触发 Minor Compaction。
根据 SSTable 的分层策略,Minor Compaction 可以细分为如下两类:
L0 -> L0
Tiered 类型的 Compaction,系统将若干个 Mini SSTable 合成一个 Mini SSTable,放置于 L0 层。

L0 -> L1
Leveld 类型的 Compaction,系统将若干个 Mini SSTable 与 Minor SSTable 合成一个新的 Minor SSTable,放置于 L1 层。

转储触发
转储有两种触发方式:自动触发与手动触发。
当一个租户 Active MemStore 内存的使用量达到 freeze_trigger_percentage * memstore_limit(其中,memstore_limit = 租户内存 * memstore_limit_percentage)时,就会自动触发冻结(转储的前置动作),然后系统内部再调度转储。
您也可以通过以下的运维命令手动触发转储。
说明
memstore_limit_percentage 用于设置租户使用 MemStore 的内存占其总可用内存的百分比。有关该配置项的详细介绍,请参见 memstore_limit_percentage。
示例:
集群级别转储
对
sys租户发起的转储obclient> ALTER SYSTEM MINOR FREEZE TENANT = sys;对所有用户租户发起的转储
obclient> ALTER SYSTEM MINOR FREEZE TENANT = all_user;对所有 META 租户发起的转储
obclient> ALTER SYSTEM MINOR FREEZE TENANT = all_meta;
租户级别转储
obclient> ALTER SYSTEM MINOR FREEZE TENANT= prod_tenant;
相关文档
更多转储操作请参见 转储。