暂无图片
暂无图片
暂无图片
暂无图片
暂无图片
OceanBase 数据库系统概念之七.pdf
252
19页
6次
2023-02-23
免费下载
OceanBase 数据库的储引擎基于 LSM Tree 架构,将数据分为静态线数据(放在 SSTable 中)和动态增
量数(放在 MemTable)两部分,其中 SSTable 是只读的一旦生成就不再被修改,存储于盘;
MemTable持读写,存储于内存。据库 DML作插入、更新、删除等先写入 MemTable等到
MemTable到一定大小时转储到磁成为 SSTable。在进行查时,需要分别对 SSTable MemTable
进行询,并将查询结果进行归并,返给 SQL归并后的查询结果同时在内存实现了 Block Cache 和
Row cache,来避免对基线数据的随机读
当内的增量数据达到一定规模的时候会触发增量数据和基线数据的合,把增量数据落盘。同时每天晚
上的闲时刻,系统也会自动每日合并
OceanBase 数据库本上是一个基线加增量的存储引擎在保持 LSM-Tree 架构优点的同时也鉴了部分
统关数据库存储引擎的优点
传统据库把数据分成很多页面,OceanBase 数据库也鉴了传统数据库的思想,把数据件按照 2MB
基本度切分多一个个宏块,个宏块内部继续拆多多个变长的微块; 而在合并时数据会于宏块的粒度
行重,有更新的数据宏块不会重新打开读取,样能够尽可能少合并期间的写放大,较于传统
LSM-Tree 架构数据库显著降合并代价。另外,OceanBase据库通过轮转合并的机制把常服务和合并
时间开,使得合并操作对正常用户请完全没有干扰
由于 OceanBase 数据库采用基线加增量的设计一部分数据在基线,一部分在增,原理上每次查询都是
既要基线,也要读增量。为此,OceanBase 数据库做很多的优化,尤其是针对单行的化。OceanBase
数据内部除了对数据块进行缓存之外也会对行进行缓存,行缓存会极加速对单行的查询性能。对于不
存在的“查”,我们会构建布隆过滤器,并对隆过滤器进行缓存。OLTP 务大分操作为小查询,
通过查询优化,OceanBase据库避免了传统数据库析整个数据块的开销,达到了接内存数据库的
能。外,由于基线是只读数据,而且部采用连续存储的方式,OceanBase 数据库可以采用比较激进的压
缩算,既能做到高压缩比,又不影响询性能,大大降低了成本。
结合鉴经典数据库的部分优点,OceanBase 数据库提了一个更为通用的 LSM-tree 架构的关系型数据
存储擎, 具备下特性:
低成,利用 LSM-tree 写入数据不再新的特点,过自研行列混编码叠加通用压缩算法, OceanBase
数据的数据存储压缩率能够相较传统据库提升 10+ 倍。
易使,不同于其他 LSM-tree 数据库OceanBase据库通过支持活跃事务落盘保证用户的大事务/
长事的正常运行或回滚,多级合并和储机制来帮助用户在性能和空间找到更佳的平衡。
8.8.
8.1. 8.1.
OceanBase 数据库 存储架构
> 档版本:20220304 304
高性,对于常见的点查,OceanBase据库提供了多 cache 加速来保证极的响应延时,而对于范
围扫,存储引擎能够利用数据编码特支持查询过滤条件的计算下压,提供原生的向量化支持
高可,除了全链路的数据检验之外,用原生分布式的优势,OceanBase 数据库还会在全局合并时通过
多副比对以及主表和索引表比对的校来保证用户数据正确性,同时提后台线程定期扫描规避静默
误。
从功模块划分上,OceanBase 数据库存储引擎可以大致分为以下个部分。
数据
和其 LSM-tree 据库一样OceanBase据库也将数据分为内存量数据(MemTable)和存储静
数据SSTable)两个次,其中 SSTable 是只读的,一旦生成就再被修改,存储于磁盘;MEMTable
支持写,存储于内存。数据库 DML作插入、更新、删等首先写入 MEMTable,等 MEMTable 达
到一大小时转储到磁盘成为 SSTable。
另外 OceanBase 数据库内,SSTable 会继续细为 Mini SSTableMinor SSTable、Major SSTable 三
类,MEMTable 储后形成我们称为 Mini SSTable,多个 Mini SSTable 会定期 compact为 Minor
SSTable而当 OceanBase 数据库特有的每日合并开始后,每分区所有的 Mini SSTable Minor
SSTable整体合并为 Major SSTable
存储
在 OceanBase据库中,个分区的本存储单元是一个个的 SSTable,而所有存储的基本粒度是宏块,
数据启动时,会将整个数据文件按照 2MB长大小切为一个个宏块,每个 SSTable 质就多个
块的合。
每个块内部又会继续切分为多个微块微块的概念和传统数据库的 page/block 概念比较类似, 但是
助 LSM-Tree 的特性OceanBase据库的微块是做过压缩长的,微块的压缩前大小可以通建表的时
候指 block_size 确定
而微根据用户指定存储格式可以分别 encoding 格式或者 flat 格式存储,encoding 格式的微块,
数据以行列混合模式存储;对于 flat式的微块,所有数行则是平铺存储。
压缩
OceanBase 数据库对微块内的数据会根据用户表指定模式分别进行编码和压缩。当用表打
encoding 时,个微块内的数会按照列维度分别进行列内的编,编码规则包括字典/游程/常量/差值
等,一列压缩结束后,还会进一步对列进行列间等值/子串等规则码。编码不仅能帮助用户对数据
进行幅压缩,同时提炼的列内特征信还能进一步加速后续的查询速度
在编压缩之后,OceanBase据库还支持进一步对微数据使用用户指定的通用压缩算进行无损
缩,一步提升数据压缩率。
转储
OceanBase 数据库中转储即 Minor Compaction 念可以理和其他 LSM-tree 架构数据
Compaction 念类似,要负责 MEMTable 盘转 SSTable及多个 SSTable 之间的 Compaction
策略择以及动作。OceanBase 数据库中采用的是 leveled 结合 size tired 的 Compaction略,大致
以分三层,其中 L1 和 L2 就是固定的 leveled 层次,L0 层是 size tired,L0 内部还会继续根据写放
数以 SSTable数进行内部 Compaction作。
合并
OceanBase 数据库 存储架构
> 档版本:20220304 305
of 19
免费下载
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文档的来源(墨天轮),文档链接,文档作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论

关注
最新上传
暂无内容,敬请期待...
下载排行榜
Top250 周榜 月榜