OceanBase合并机制的具体原理是什么?
18 个赞
OceanBase 基于 LSM-Tree(Log-Structured Merge-Tree) 存储架构,将数据分为静态基线数据 (SSTable,磁盘)和动态增量数据 (MemTable,内存)两部分。随着增量数据不断写入磁盘,增量文件越来越多,读操作需要检索的文件也随之增多,读性能会下降。合并(Compaction)机制就是为了解决这个问题而设计的核心维护机制。
6 个赞
本质上就是LSMTree导致的
2 个赞
基于LSM-TREE架构
1 个赞
LSM tree。 好多DB都采用了这种方式 。
1 个赞
999
基于 LSM-Tree 存储架构, 将数据分为静态基线数据和动态增量数据两部分。
1 个赞
实践出真知,感谢分享实战经验
实践案例很有参考价值
经验分享很有价值
根据文档库中的信息,OceanBase数据库的合并机制主要涉及将动静态数据进行归并的过程。下面是更详细的说明:
合并概述
- 数据分类:在OceanBase数据库中,数据被分为动态数据(MemTable)和静态数据(SSTable)。当MemTable达到一定大小时,会转储为SSTable。
- 合并过程:合并是将当前大版本的SSTable与MemTable同前一个大版本的全量静态数据合并,产生新的全量数据。
合并触发方式
- 自动触发合并:系统依据一定的策略自动执行。
- 定时触发合并:按照设定的时间计划执行。
- 自适应合并:从V4.1.0版本开始支持,基于用户查询、写入行为等信息智能调度合并任务,以优化性能。
- 手动触发合并:由DBA或管理员手动操作启动。
合并类型
-
全量合并:
- 将所有静态数据读出并与动态数据合并。
- 耗时较长且消耗大量IO和CPU资源。
-
增量合并:
- 仅处理发生变化的数据块。
- 通过复用未改变的数据块减少工作量,这是默认使用的算法。
-
渐进合并:
- 分多轮次逐步完成整个数据集的重写。
-
并行合并:
- 数据分割后由不同线程并行处理来加速整个过程。
压缩技术
- 在合并过程中应用两层压缩方法:
- 第一层:基于数据库内部语义的编码压缩。
- 第二层:使用如lz4等通用压缩算法进一步减小存储占用。
- 压缩不仅节约了空间,而且提高了查询效率;对于采用LSM-Tree结构设计的OceanBase来说,这几乎不影响写入速度。
更多关于合并的具体配置及相关操作,请参阅合并管理概述 → 相关文档。
详情请参考:
期待更多分享
宝贵的经验分享,谢谢!
期待更多分享
收藏了