RocksDB中 Level 0层的数据是单一排序存储吗?

【 TiDB 使用环境】生产\测试环境\ POC
【 TiDB 版本】
【遇到的问题】
【复现路径】做过哪些操作出现的问题
【问题现象及影响】
【附件】

  • 相关日志、配置文件、Grafana 监控(https://metricstool.pingcap.com/)
  • TiUP Cluster Display 信息
  • TiUP CLuster Edit config 信息
  • TiDB-Overview 监控
  • 对应模块的 Grafana 监控(如有 BR、TiDB-binlog、TiCDC 等)
  • 对应模块日志(包含问题前后 1 小时日志)

若提问为性能优化、故障排查类问题,请下载脚本运行。终端输出的打印结果,请务必全选并复制粘贴上传。

level 0 和 Immtable 中的数据一致,无序的

从level 0 到 level 1,才会执行排序和压缩…

也就是 level 1 的数据才是有序的

Level0 直接由 Immutable Memtable Flush 得到,文件的K / V不会排序
对于Level-0层文件,RocksDB总是选择所有的文件进行Compact操作,因为Level-0层的文件之间,可能会有key范围的重叠。
对于Level-N (N>1)层的文件,会先按照文件大小排序(冒泡排序),选出最大的文件,并计算这个文件Key 的起止范围,通过这个范围查找Level-N+1层文件,把选出的Level-N 文件和Level-N+1 文件做为输入,并且在Level-N+1新建一个或多个SST文件作为输出。

L0中单个SST文件内部有序,SST文件之间可能存在重叠的key,因此可认为L0的数据全局是无序的

讲解清晰,谢谢

此话题已在最后回复的 60 天后被自动关闭。不再允许新回复。