OceanBase数据库 v1.4 官方版 图标

OceanBase数据库 v1.4 官方版

v1.4

2019-11-11 19:01:19

OceanBase数据库 v1.4 官方版

OceanBase数据库是一个支持海量数据的高性能分布式数据库系统,实现了数千亿条记录、数百TB数据上的跨行跨表事务,OceanBase数据库多用于淘宝核心系统研发、运维、DBA、广告、应用研发等多种操作实例。

最新动态

作为“第11个双11”,今年双11再创速度奇迹。双11购物狂欢节开幕14小时21分27秒后,天猫成交额突破2000亿元,2018年达到这一成绩耗时22小时28分钟,今年比去年整整提前了8个小时。

今天下午,蚂蚁金服副CTO胡喜透露,今年天猫双11,支付宝自主研发的分布式数据库OceanBase每秒处理峰值达到6100万次。他表示,今年双11开始前15分钟“鸦雀无声”,没有状况出现,这是想要的最终效果。今年10月2日,数据库领域最权威的国际机构国际事务处理性能委员会(TPC,Transaction Processing Performance Council)在官网发表了最新的TPC-C基准测试结果。OceanBase以两倍于Oracle(甲骨文)的成绩,打破数据库基准性能测试的世界记录,成为全球数据库演进史的重要里程碑。过去数十年,TPC-C一直是海外传统数据库厂商竞技的舞台,而OceanBase是登上TPC-C排行榜前列、由中国公司完全自主研发的第一款大型数据库产品。据了解,OceanBase已在蚂蚁金服和阿里巴巴的业务系统中得到了广泛应用,是过去多年“双11”支付宝交易处理系统的守护神。数亿人能够随时随地网购、移动支付,背后靠的都是OceanBase数据库的力量。

使用实例

OceanBase是一个支持海量数据的高性能分布式数据库系统,实现了数千亿条记录、数百TB数据上的跨行跨表事务,由淘宝核心系统研发、运维、DBA、广告、应用研发等部门共同完成。在设计和实现OceanBase的时候暂时摒弃了不紧急的DBMS的功能,例如临时表,视图(view),研发团队把有限的资源集中到关键点上,当前 OceanBase主要解决数据更新一致性、高性能的跨表读事务、范围查询、join、数据全量及增量dump、批量数据导入。目前OceanBase已经应用于淘宝收藏夹,用于存储淘宝用户收藏条目和具体的商品、店铺信息,每天支持4~5千万的更新操作。等待上线的应用还包括CTU、SNS等,每天更新超过20亿,更新数据量超过2.5TB,并会逐步在淘宝内部推广。

软件亮点

许多公司的核心资产是各种各样的商业数据,例如淘宝的商品、交易、订单、购物爱好等等,这些数据通常是结构化的,并且数据之间存在各种各样的关联,传统的关系数据库曾经是这些数据的最佳载体。然而,随着业务的快速发展,这些数据急剧膨胀,记录数从几千万条增加到数十亿条,数据量从百GB增加到数TB,未来还可能增加到数千亿条和数百TB,传统的关系型数据库已经无法承担如此海量的数据。OceanBase解决不断增加的结构化数据存储与查询的问题。

从Eric Brewer教授的CAP(一致性C: Consistency, 可用性A: Availability,分区容错性P: Tolerance of network Partition)理论角度分析,作为电子商务企业,淘宝和其他公司的业务对一致性和可用性的要求高于分区容错性,数据特征是数据总量庞大且逐步增加,单位时间内的数据更新量并不大,但实时性要求很高。这就要求我们提供一套更加偏重于支持CA特性的系统,同时兼顾可分区性,并且在实时性、成本、性能等方面表现良好。

基本概念

1.sstable:一种数据存储格式,OceanBase用来存储一个或几个表的一段按主键连续的数据

2.tablet:一个表按主键划分的一个(前开后闭的)范围,通常包含一个或几个sstable,一个tablet的数据量通常在256MB左右

3.基准数据和动态数据:OceanBase以增量方式记录一段时间内的表格数据的增删改,从而保持着表格主体数据在一段时间内相对稳定,其中增删改的数据称为动态数据(通常在内存,也称为内存表),而一段时间内相对稳定的主体数据称为基准数据,基准数据和转储后(保存到SSD固态盘或磁盘)的动态数据以sstable格式存储

4.ChunkServer:保存基准数据的服务器,通常是多台,为了避免软件硬件故障导致的服务中断,同一份基准数据通常保存了3份并存储在不同ChunkServer上

5.UpdateServer:保存动态数据的服务器,一般是单台服务器。为了避免软件硬件故障导致的服务中断,UpdateServer记录commit log并通常使用双机热备

6.MergeServer:进行静态动态数据合并的服务器,常常与ChunkServer共用一台物理服务器。MergeServer使得用户能够访问到完整的最新的数据

7.RootServer:配置服务器,一般是单台服务器。为了避免软件硬件故障导致的服务中断,RootServer记录commit log并通常采用双机热备。由于RootServer负载一般都很轻,所以它常常与UpdateServer共用物理机器

8.冻结:指动态数据(也称为内存表)的更新到一定时间或者数据量达到一定规模后,OceanBase停止该块动态数据的修改,后续的更新写入新的动态数据块(即新的内存表),旧的动态数据块不再修改,这个过程称为冻结

9.转储:出于节省内存或者持久化等原因将一个冻结的动态数据块(内存表)持久化(转化为sstable并保存到SSD固态盘或磁盘上)的过程

10.数据合并(merge):查询时,查询项的基准数据与其动态数据(即增删改操作)合并以得到该数据项的最新结果的过程。此外,把旧的基准数据与冻结的动态数据进行合并生成新的基准数据的过程也称为数据合并

组成部分

客户端:用户使用OccanBase的方式和MySQL数据库完全相同,支持JDBC、C客户端访问,等等。基于MySQL数据库开发的应用程序、工具能够直接迁移到OceanBase。

RootServer:管理集群中的所有服务器,子表(tablet)数据分布以及副本管理。RootServer一般为一主一备,主备之间数据强同步。

UpdateServer:存储OccanBase系统的增量更新数据。UpdateServer一般为一主一备,主备之间可以配置不同的同步模式。部署时,UpdateServer进程和RootServer 进程往往共用物理服务器。

ChunkServer:存储OccanBase系统的基线数据。基线数据一般存储两份或者三份,可配置。

MergeServer:接收并解析用户的sQL请求,经过词法分析、语法分析、查询优化等一系列操作后转发给相应的ChunkServer或者UpdateServer。如果请求的数据分布在多台ChunkServer上,MergeServer 还需要对多台ChunkServer返回的结果进行合并。客户端和MergeScrver之间采用原生的MySQL通信协议,MySQL客户端可以直接访问MergeServer。

核心框架

UpdateServer:类似于DBMS中的DB角色,提供跨行跨表事务和很短的查询修改的响应时间以及良好的一致性。

ChunkServer:类似于云计算中的工作机(如GFS的chunk server),具有数据多副本(通常是3)、中等规模数据粒度(tablet大小约256MB)、自动负载平衡、宕机恢复、机器plug and play等特点,系统容量及性能可随时扩展。

MergeServer:结合ChunkServer和UpdateServer,获得最新数据,实现数据一致性。

RootServer:类似于云计算中的主控机(如GFS master),进行机器故障检测、负载平衡计算、负载迁移调度等。

更多