转储MemTable

对MemTable单次转储,最多只能生成一个mini SSTable 哈?

不会因为增删改太频繁,而单次转储MemTable生成多个mini SSTable ?


不知道这个图能否解答你的疑问

3 个赞

:+1:

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)
      - 存放多行数据
      - 被压缩

这个脑图是花了心思的,厉害

【学习笔记】思维导图 —— 转储与合并 - 社区问答- OceanBase社区-分布式数据库

谢谢这位大师