自适应合并问题

当租户开启自适应合并后,还有MINI SSTable MINOR SSTable MAJOR SSTable 吗?自适应合并产生的归一 SSTable,可以取代合并产生的 Major SSTable是什么意思?

1 个赞

@论坛小助手

当租户开启自适应合并后,仍然会有MINI SSTable、MINOR SSTable 和 MAJOR SSTable。自适应合并实际上是通过系统适时地对有需求的分区发起分区级合并任务,这些分区级合并任务与传统的分区级合并任务类似。也就是说,自适应合并可以看作是一种更智能的分区级合并策略,它会根据实际情况选择合适的时机和方式来执行合并操作。因此,自适应合并产生的归一 SSTable 可以视为一种优化过的 Major SSTable,它们在功能上是一致的,但自适应合并更加灵活和高效。

详情请参考:

  1. 手动触发合并
  2. MAJOR 和 MINOR
1 个赞

MEDIUM SSTABLE 和 Major SSTable 会同时存在吗?还是只保留其中一个?@论坛小助手

1 个赞

根据文档片段,MEDIUM SSTABLE (分区级合并) 和 Major SSTable (租户级合并) 是可以同时存在的。在分层转储结构中,Mini SSTable 会先形成 L0 层,然后通过下压生成 L1 层的 Minor SSTable。而 Major SSTable 则是在合并过程中生成的,作为基线数据存在。因此,在系统中通常会同时存在不同层级的 SSTable,包括但不限于 MEDIUM SSTABLE 和 Major SSTable。

详情请参考:

  1. 转储管理概述
  2. V$OB_COMPACTION_SUGGESTIONS
1 个赞

同一个分区 的 MEDIUM SSTABLE 和 Major SSTable 会同时存在吗?还是只保留其中一个? @论坛小助手

1 个赞

根据文档描述,同一个分区的 MEDIUM SSTABLE 和 Major SSTABLE 会同时存在。在每天配置的业务低峰期,系统会将所有的 MemTable、L0 层 Mini SSTable 和 L1 层 Minor SSTable 合并成一个 Major SSTABLE,但在合并前,这些 SSTable 仍然存在。因此,在某些时间段内,可能会同时存在 MEDIUM SSTABLE 和 Major SSTABLE。

详情请参考:

  1. OceanBase 数据库整体架构
  2. 转储管理概述
1 个赞

MEDIUM SSTABLE 在LSM tree结构中,在L2层吗? Major SSTABLE 是基线数据,MEDIUM SSTABLE也基线数据吗? 到底使用哪个基线数据?@论坛小助手

根据文档描述,OceanBase数据库的存储层采用了分层存储的结构,包括 MemTable、L0 层 Mini SSTable、L1 层 Minor SSTable 以及 Major SSTable。这些层级分别对应不同的转储阶段:

  • L0 层 Mini SSTable:被冻结的 MemTable 会直接 Flush 为 Mini SSTable。
  • L1 层 Minor SSTable:多个 L0 层 Mini SSTable 达到阈值后会合并成 Minor SSTable。
  • L2 层 Major SSTable:在每天配置的业务低峰期,系统会将所有的 MemTable、L0 层 Mini SSTable 和 L1 层 Minor SSTable 合并成 Major SSTable,作为基线数据。

从上述描述中可以看出,不存在 MEDIUM SSTABLE 的概念。Major SSTABLE 是基线数据,在合并时产生,是所有数据的最终版本。因此,MEDIUM SSTABLE 不是基线数据,也不属于 L2 层。

具体信息可参考以下文档:

  1. OceanBase 数据库整体架构
  2. 转储管理概述
  3. 转储
1 个赞

:face_holding_back_tears: :face_holding_back_tears: :face_holding_back_tears: