关于分层转储机制,以下说法错误的是______?

关于分层转储机制,以下说法错误的是______?
A. 每次转储都生成新的Mini SSTable,L0层可以同时存在多个Mini SSTable
B. L1层是L0层的多个Mini SSTable归并成一个Minor SSTable。通常,L1层会有多个Mini SSTable
C. L2层存放基线数据,将所有的动、静态数据(MemTable,L0,L1,L2)做归并,通常,L2层只会有一个Major SSTable
D. 当L0层Mini SSTable的个数超过配置项 minor_compact_trigger 的值时,将L0层的Mini SSTable合并为一个大的Mini SSTable。minor_compact_trigger 是租户级配置项,默认值为3

答案:AC

6 个赞

答案反了吧,不是BD么

3 个赞

BD

B 错误:L1 层是 L0 多个 Mini SSTable 归并为 Minor SSTable,而不是仍然存放多个 Mini SSTable。

3 个赞

感谢分享

3 个赞

网友的答案竟然这么大分歧 :joy:

4 个赞

感谢分享

4 个赞

到底哪个是对的

4 个赞

@论坛小助手 请回答一下

2 个赞

感谢分享

2 个赞

A选项和C选项描述有误。A选项,L0层确实可以同时存在多个Mini SSTable,这与描述相符;C选项,L2层主要存放基线数据,日常转储过程中Major SSTable保持只读,不发生实际compaction动作,因此不涉及所有动静态数据的归并。

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

  1. 转储管理概述
  2. 转储
  3. minor_compact_trigger
2 个赞

选择AC

A. :x: 错误

分层转储(LSM-Tree 架构)中,MemTable 满了才会转储生成 Mini SSTable 写入 L0 层,并非 “每次转储都生成新的 Mini SSTable”;且 L0 层的 Mini SSTable 是有序但可能重叠的,当数量达到阈值会触发合并,该描述的前提和细节均存在错误。

B. :white_check_mark: 正确

L1 层由 L0 层的多个 Mini SSTable 归并生成,归并后生成的是有序、不重叠的 Minor SSTable,L1 层通常会存在多个按 key 范围划分的 Minor SSTable,描述符合 LSM-Tree 分层合并逻辑。

C. :x: 错误

L2 层是基线数据层,归并的是 L1 层的 Minor SSTable,而非包含 MemTable、L0、L1、L2 的所有动静态数据(MemTable 是内存层,不会直接参与 L2 归并);且 L2 层通常是多个按 key 范围划分的 Major SSTable,并非只会有一个,描述完全错误。

D. :white_check_mark: 正确

当 L0 层 Mini SSTable 数量超过 minor_compact_trigger(租户级配置,默认值 3)时,会触发 Minor Compaction,将 L0 层的多个 Mini SSTable 合并为一个更大的 Mini SSTable 并写入 L1 层,描述符合 compaction 触发规则。

2 个赞

BD都错了,L1层只有一个Minor SSTable;minor_compact_trigger 默认值为2

2 个赞

感谢学到了

2 个赞

我感觉应该选择AC

1 个赞

:smile: :smile:

1 个赞

这是CA,还是CP?

1 个赞

应该是选BD

1 个赞

看小助手的吧

厉害了

邮件到你了