OceanBase 是国产数据库的骄傲吗?

追梦者的部落格 2019-05-12

互联网底层存储软件一般都是国外软件,如:Oracle、Mysql、Postgresql、Microsoft SQL Server等,全都是外国货甚于美国货。

国内自主研发关系型数据库的企业、单位基本上都是发源于上世纪90年代的,而且都是以大学、科研机构为主。到今天,有代表性的厂商有:

达梦 – 由华中理工冯玉才教授创办,完全自主研发。以Oracle为参照、追赶对象。

人大金仓 – 由人民大学王珊教授创办,自主研发。普通的关系型数据库。

神舟通用 – 神舟集团与南大通用合作开发的关系型数据库。更多地用于数据分析领域。

南大通用(Gbase 8a)- 南开大学的背景,2010年左右自主研发的,基于列式存储的,面向数据分析、数据仓库的数据库系统。

说实话这些产品在市场上少有耳闻,这是事实。

这是为什么?

个人认为走模仿的道路很难有出路,无人敢用!

直到OceanBase的出现稍有改观,官方将其定义为:完全自主研发的金融级分布式关系数据库。

OceanBase为什么能够成功?因为它有别传统数据库。

系统架构

整体架构图如下:

OceanBase 是国产数据库的骄傲吗?

OceanBase由如下几个部分组成:

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

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

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

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

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

OceanBase支持部署多个机房,每个机房部署一个包含RootServer、MergeServer、ChunkServer以及UpdateServer的完整OceanBase集群,每个集群由各自的RootServer负责数据划分、负载均衡、集群服务器管理等操作,集群之间数据同步通过主集群的主UpdateServer往备集群同步增量更新操作日志实现。客户端配置了多个集群的RootServer地址列表,使用者可以设置每个集群的流量分配比例,客户端根据这个比例将读写操作发往不同的集群。

OceanBase是完美的的形象吗?

在商业的路上或许正走在成功的道路上,但在开源的路上完全就是虎头蛇尾。

自2013年开源以来,开源版本尚停留在0.42版本,不像一个真正的开源软件所为。

相关推荐