对MemTable单次转储,最多只能生成一个mini SSTable 哈?
不会因为增删改太频繁,而单次转储MemTable生成多个mini SSTable ?
对MemTable单次转储,最多只能生成一个mini SSTable 哈?
不会因为增删改太频繁,而单次转储MemTable生成多个mini SSTable ?
mini->minor->major三个级别转储,最后一个阶段是按照参数设置规则进行合并
这个我知道,谢谢。
不太能,谢谢
自己的总结,脑图是另一个同学分享的。
- 大合并
- 流程动作: MemTable-->冻结-->合并-->覆盖SSTable基线静态数据
- 层级: MemTable、[Minor]、Major
- 缺点:
- 集群性
- 高耗能
- 时间长
- 小转储(解决大合并的缺点)
- MemTable做小版本冻结,单独写到磁盘不做SSTable合并。
- 只和上一次转储的数据做合并,到一定数量才会与Minor SSTable的做合并,转储文件最终会合并到Major SSTable中。
- 流程动作: MemTable-->冻结-->转储Mini-->合并Minor-->Major合并。
- 层级: MemTable、[Mini]、Minor、Major。
备注:
- 这里阿里的双11并发实现原理, ob写入不停的转储,再到02:00低谷时进行compaction合并整理。
- 三节点轮转合并。
- SSTable是什么?
- 宏块: 写IO的基本单位(2MB)
- 微块: 读IO的最小单位(16KB)
- 存放多行数据
- 被压缩
这个脑图是花了心思的,厉害