|
|
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建立上述存储引擎的重要理论根据这完全背叛了我介入马拉松活动的初心。 |
|