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建立上述存储引擎的重要理论依据。
推荐阅读:旗龙网
(正文已结束)
免责声明及提醒:此文内容为本网所转载企业宣传资讯,该相关信息仅为宣传及传递更多信息之目的,不代表本网站观点,文章真实性请浏览者慎重核实!任何投资加盟均有风险,提醒广大民众投资需谨慎!