oceanbase是一个通用的分布式关系数据库,由阿里巴巴和蚂蚁金融服务完全自主开发,定位为商业企业级数据库。oceanbase可以提供金融层面的可靠性。目前主要用于金融行业,也适用于非金融行业场景。它融合了传统关系数据库和分布式系统的优势,利用普通PC服务器形成具有良好线性可扩展性的数据库集群。
oceanbase通过底层分布式引擎实现的Paxos多派协议和多副本特性,具有值得称道的高可用性和灾难恢复能力,不辜负“永不停机”数据库系统的声誉,能够完美支持多地多活、异地灾难恢复等高可用性部署。
oceanbase是一个面向SSD固态磁盘的独特读写分离架构和高效存储引擎的准内存数据库系统,为用户带来超高性能体验。
oceanbase定位为云数据库。通过在数据库中隔离多个租户,一个集群可以为多个租户提供服务,租户之间完全隔离,不会相互影响。
目前,oceanbase与MySQL完全兼容,用户可以以零成本从MySQL迁移到oceanbase。与此同时,oceanbase在数据库中实现了分区表和二次分区功能,可以完全取代MySQL常用的分库分表方案。
oceanbase的存储引擎:oceanbase本质上是一个基线增量的存储引擎,与关系数据库有很大不同。存储机制为LSM树,这也是大多数NoSQL使用的存储机制。oceanbase采用读写分离架构,将数据分为基线数据和增量数据,其中增量数据存储在内存中,SSD盘中的基线数据放置在SSD盘中。虽然不是故意设计的,但oceanbase确实比传统数据库更适合短时间突发大流量的场景,如双11、第二次杀戮和优惠券销售。
整个数据库以硬盘(通常是SSD)为载体。数据的修改是增量数据。它只写内存。内存中添加、删除和更改最近的数据(修改增量)。因此,DML是一个完整的内存操作,具有很高的性能。基线数据保存在硬盘上,因此oceanbase可以被视为准内存数据库。这样做的好处是:
1、在内存中写入事务(除了事务日志必须落盘外),大大提高了性能。
2、硬盘不随机书写,硬盘随机阅读不受干扰,高峰时段系统性能显著提高;对于传统数据库来说,业务高峰通常是大量随机写盘(刷脏页面)的高峰期。大量随机写盘消耗了大量IO,尤其是考虑到SSD的写入放大,这对读写性能有很大影响。
3、只读基线数据,缓存简单而有效的提升。
阅读数据时,内存中可能会有更新版本,持久存储中可能会有基线版本。有必要合并两个版本以获得最新版本。同时,BlockCache和Rowcache可以在内存中实现,以避免随机阅读基线数据。当内存的增量数据达到一定规模时,它将触发增量数据和基线数据的合并,并将增量数据落盘。同时,系统将在每晚的业余时间自动每天合并。
推荐阅读: