OceanBase是阿里巴巴自主研发的高性能分布式关系数据库。它支持完整的ACID特性,与MySQL协议和语法高度兼容,可以使用高性能、可扩展和持续可用的分布式数据服务,而迁移成本最低。阿里云oceanbase实现了数千亿条记录、数百TB数据的跨行跨表业务,支持天猫大部分OLTP和OLAP线上业务。

阿里云oceanbase特性

阿里云oceanbase最初是为了处理淘宝的大规模数据而产生的。传统的Oracle单机数据库无法支持数百TB的数据存储和数十万的QPS,硬件扩展成本过高。

淘宝已经用MySQL代替了Oracle,但是需要存储在不同的数据库和表中,也有很多缺点。按子数据库和子表添加节点比较复杂,查询时可能需要访问所有分区的数据库,所以性能很差。

淘宝甚至考虑过HBase,但是HBase只能支持单行交易查询,不支持ACID功能,只支持最终一致性。淘宝的业务必须支持跨行、跨表业务,部分订单信息需要支持强一致性。

基于以上原因,需要开发一种新的数据库,不仅具有良好的可扩展性,而且能够支持跨行、跨表交易,于是OceanBase应运而生。

阿里云oceanbase具有以下特性:

1、高可扩展性

传统的关系型数据库(如Oracle或MySQL)虽然特性完善,但数据库扩展性差。随着数据量的增加,需要将它们存储在不同的数据库和表中。查询时,需要将相应的SQL解析到指定的数据库中。数据库管理员需要花费大量的时间来扩充数据库,对维护人员的技术要求也比较高。他们要掌握分布式处理中的数据读写分离、垂直拆分、水平拆分等技术。

而阿里云oceanbase采用分布式技术和无共享架构,数据自动分布到多个数据库主机,使用廉价的PC服务器作为数据库主机,可以自由扩展整个分布式数据库系统,既降低了成本,又保证了横向扩展的无限性。

OceanBase又称云数据库,具有云存储随机扩展的特点。

2、高可靠性

阿里云oceanbase数据库系统使用的廉价PC服务器。这些服务器不可靠,容易出故障。但是,OceanBase必须保证任何时候任何硬件故障都不会影响业务。

因此,OceanBase引入了Paxos协议来保证分布式事务的一致性,即一个数据库系统中的数据以备份的形式存储在多台机器中。当其中一个失败时,其他备份仍然可以使用,并且可以根据系统日志恢复失败前的数据。

3、数据准确性

阿里云oceanbase是一个新的关系数据库,它支持事务的ACID特性。这在电商、金融等领域非常重要。这些领域对数据的准确性要求非常高,比如电子商务中的支付数据。这些数据应该是一致的,不应该丢失任何数据。

OceanBase在设计的时候,读事务基本是分布式并发执行的,而写事务是集中式串行的,任何一个写事务在最终提交之前对其他读事务都是不可见的,所以OceanBase具有很强的一致性,可以保证数据的正确性。

4、高性能

数据库的总量非常大,每天增加、删除、更改的数据只是其中的一小部分,是增量数据。

阿里云oceanbase将数据分为基准数据和增量数据。基准数据是保持不变的历史数据,可以存储在磁盘上,保证数据的稳定性;增量数据是最新修改的数据,存储在内存中。这种添加、删除、更改记录的存储方式大大提高了系统写事务的性能,增量数据冻结后会转移到SSD,依然会提供高性能的读取服务。阿里云oceanbase将在系统低负载期间合并数据,以避免对业务造成不利影响。