暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

OceanBase概述

Ty3306 2023-01-04
1202

概述
OceanBase是阿里巴巴和蚂蚁金服完全自主研发的通用的分布式关系型数据库,定位为商用企业级数据库。OceanBase能提供金融级别的可靠性,目前主要应用用于金融行业,同时也适用于非金融行业场景。它融合传统关系数据库和分布式系统的优势,利用普通的PC服务器组成数据库集群,拥有出色的线性扩展性。

通过在底层分布式引擎实现的Paxos多数派协议和多副本特性,OceanBase拥有了令人称道的高可用和容灾能力,不负“永不停机”的数据库系统的盛名,可以完美支持多地多活、异地容灾等高可用部署。

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

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

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

OceanBase的存储引擎
OceanBase本质上是一个基线加增量的存储引擎,跟关系数据库差别很大。 存储机制是LSM树(Log-Structured Merge Tree,日志结构合并树),这也是大多数NoSQL使用的存储机制。OceanBase采用了一种读写分离的架构,把数据分为基线数据和增量数据,其中增量数据放在内存里(MemTable),基线数据放在SSD盘(SSTable)。虽然不是刻意设计的,但OceanBase确实比传统数据库更适合像双十一、秒杀以及优惠券销售等短时间突发大流量的场景:

短时间内大量用户涌入,短时间内业务流量非常大,数据库系统压力非常大
一段时间(几秒钟、几分钟、或半个小时等)后业务流量迅速或明显回落

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

写事务在内存(除事务日志必须落盘外),性能大大提升。
没有随机写硬盘,硬盘随机读不受干扰,高峰期系统性能提升明显;对于传统数据库,业务高峰期通常也是大量随机写盘(刷脏页)的高峰期,大量随机写盘消耗了大量的IO,特别是考虑到SSD的写入放大,对于读写性能都有较大的影响。
基线数据只读,缓存(cache)简单且效果提升。
读数据的时候,数据可能会在内存里有更新过的版本,在持久化存储里有基线版本,需要把两个版本进行合并,获得一个最新版本。同时在内存实现了Block Cache和Row cache,来避免对基线数据的随机读。当内存的增量数据达到一定规模的时候,会触发增量数据和基线数据的合并,把增量数据落盘(称为转储,又叫minor freeze)。同时每天晚上的空闲时刻,系统也会自动每日合并(简称合并,major freeze)。

OB为何采用这种特殊架构,简要来说,就是基于这样一条理论基础——尽管数据库本身的数据量越来越大,记录数越来越多,但每天的增删改数据量并不大,仅仅只占数据库总量一个很小的比例。 这个情况不只是对支付宝的支付数据,对其它大部分数据库实际应用情况也适用,是OB建立上述存储引擎的重要理论基础。



原文链接:https://blog.csdn.net/fuzhongmin05/article/details/118196626

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论