兰陵王某人
#1
关于分层转储机制,以下说法错误的是______?
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
B 错误:L1 层是 L0 多个 Mini SSTable 归并为 Minor SSTable,而不是仍然存放多个 Mini SSTable。
3 个赞
论坛小助手
#10
A选项和C选项描述有误。A选项,L0层确实可以同时存在多个Mini SSTable,这与描述相符;C选项,L2层主要存放基线数据,日常转储过程中Major SSTable保持只读,不发生实际compaction动作,因此不涉及所有动静态数据的归并。
具体信息可参考以下文档:
- 转储管理概述
- 转储
- minor_compact_trigger
2 个赞
没落的星辰
#11
选择AC
A.
错误
分层转储(LSM-Tree 架构)中,MemTable 满了才会转储生成 Mini SSTable 写入 L0 层,并非 “每次转储都生成新的 Mini SSTable”;且 L0 层的 Mini SSTable 是有序但可能重叠的,当数量达到阈值会触发合并,该描述的前提和细节均存在错误。
B.
正确
L1 层由 L0 层的多个 Mini SSTable 归并生成,归并后生成的是有序、不重叠的 Minor SSTable,L1 层通常会存在多个按 key 范围划分的 Minor SSTable,描述符合 LSM-Tree 分层合并逻辑。
C.
错误
L2 层是基线数据层,归并的是 L1 层的 Minor SSTable,而非包含 MemTable、L0、L1、L2 的所有动静态数据(MemTable 是内存层,不会直接参与 L2 归并);且 L2 层通常是多个按 key 范围划分的 Major SSTable,并非只会有一个,描述完全错误。
D.
正确
当 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 个赞