您的位置: 财富时代网主页 > 资讯 > 正文 >

OceanBase简要概述及存储引擎

发布时间:2023-03-29 10:19:09   来源:互联网   阅读:-

OceanBase是阿里巴巴和蚂蚁金服自主研发的通用分布式关系数据库,定位为商业企业数据库。OceanBase可以提供财务级的可靠性。目前主要应用于金融行业,也适用于非金融行业场景。它结合了传统关系数据库和分布式系统的优点,使用普通PC服务器组成数据库集群,具有优良的线性伸缩性。

OceanBase在底层分布式引擎中实现了Paxos多数协议和多副本特性,具有值得称道的高可用性和容灾能力,无愧于永远在线数据库系统的美誉,可以完美支持多站点、多站点、容灾等高可用性部署。

OceanBase是一个准内存数据库系统,其独有的读写分离架构和SSD高效存储引擎,为用户带来超高性能体验。

OceanBase定位为云数据库。通过在数据库内实现多租户隔离,一个集群可以服务多个租户,租户之间完全隔离,互不影响。

OceanBase目前完全兼容MySQL,用户可以零成本从MySQL迁移到OceanBase同时,OceanBase实现了数据库中的分区表和二次分区功能,完全可以替代MySQL中数据库和表划分的常用方案。

OceanBase的存储引擎

OceanBase本质上是一个基线加增量的存储引擎,与关系数据库有很大的不同。存储机制是LSM(日志结构合并树),这也是大多数NoSQL使用的存储机制。OceanBase采用读写分离架构,将数据分为基线数据和增量数据,其中增量数据存储在内存(MemTable)中,基线数据存储在SSD磁盘(SSTable)中。虽然不是刻意设计,OceanBase确实比传统数据库更适合双十一、秒杀、优惠券销售等短期突发流量场景:

短时间内大量用户涌入,短时间内业务流量很大,数据库系统压力很大。

一段时间后(几秒、几分钟或半小时等)),业务流量快速或明显下降。

OceanBase基线数据(硬盘)”+“修改增量(内存)”的架构,如下图所示。

整个数据库以硬盘(一般是SSD)为载体,所有的数据修改都是增量数据,只写在内存中,新增、删除、更改的数据(修改增量)都在内存中,所以DML是一个完整的内存操作,性能非常高。基线数据存储在硬盘上,所以OceanBase可以看作是一个准内存数据库。这样做的好处是:

事务写在内存中(除了事务日志必须下载),所以性能大大提高。

没有硬盘随机写入,硬盘随机读取不受干扰,高峰期系统性能明显提升;对于传统数据库来说,业务高峰期通常是大量随机写盘(脏页被刷)的高峰期,大量随机写盘会消耗大量IO,尤其是考虑到SSD的写放大,对读写性能影响很大。

基线数据只读,缓存简单,效果提升。

读取数据时,数据可能在内存中有更新版本,在永久存储中有基线版本。有必要合并两个版本以获得最新版本。同时在内存中实现块缓存和行缓存,避免随机读取基线数据。当内存中的增量数据达到一定规模时,会触发增量数据和基线数据的合并,将增量数据转储(称为dump,也称为minor freeze)。同时,系统会在每晚空闲时间自动合并(简称大冻结)

OceanBase简而言之,为什么采用这种特殊的架构,是基于这样一个理论基础——虽然数据库本身的数据量越来越大,记录的数量也越来越多,但是每天增加、删除、修改的数据量并不大,只占整个数据库的很小比例。这种情况不仅适用于支付宝的支付数据,也适用于其他大部分数据库的实际应用,是OceanBase建立上述存储引擎的重要理论依据。


推荐阅读:叶紫网

(正文已结束)

免责声明及提醒:此文内容为本网所转载企业宣传资讯,该相关信息仅为宣传及传递更多信息之目的,不代表本网站观点,文章真实性请浏览者慎重核实!任何投资加盟均有风险,提醒广大民众投资需谨慎!

关于我们 - 联系我们 - XML地图 - 网站地图TXT - 版权声明
Copyright.2002-2023  财富时代网 版权所有 本网拒绝一切非法行为 欢迎监督举报 如有错误信息 欢迎纠正