金融业分布式数据库:SequoiaDB、GoldenDB、OceanBase等原理、POC性能对比及选择是怎样的?

以上三种数据库大家都多少有了解,也是在金融业都有实践的,可能很多金融业朋友选择分布式数据库的时候都会接触以上三个数据库中的一个或几个。 不知道是否有银行通过POC测试测试过其中的数据库?测试数据又是怎样的呢?还望不吝讲解一番,一下几点我想是有不少人所关心的问题: 1...显示全部

以上三种数据库大家都多少有了解,也是在金融业都有实践的,可能很多金融业朋友选择分布式数据库的时候都会接触以上三个数据库中的一个或几个。
不知道是否有银行通过POC测试测试过其中的数据库?测试数据又是怎样的呢?还望不吝讲解一番,一下几点我想是有不少人所关心的问题:
1、分布式的实现,是通过中间件实现分布式,还是源码级别引入分布式算法实现的?
2、分布式事务支持以及在超大事务下的性能下降幅度?
3、大查询(亿级)下各数据库的性能如何?
4、对于从Oracle平迁至分布式数据库,除去存储过程等力不可抗拒因素外,其他的难度如何?有无便于使用的平迁工具?
5、分布式部署的高可用性:节点挂掉的数量对整个集群的服务能力、处理性能影响是怎样的?
6、集群增加节点后,对于整个集群的影响有哪些?增加节点后的数据平迁是否会对业务造成较大的影响?
7、搭建完成后,对于DBA运维来讲,各家有无工具能便于运维的条件?

若有实践过的,遇到同样问题的朋友,还望不吝赐教,感谢,感谢。

收起
参与74

查看其它 9 个回答Amygo的回答

AmygoAmygo  DBA , 分布式事务数据库

1、分布式的实现,是通过中间件实现分布式,还是源码级别引入分布式算法实现的?

解答:

(1) 分布式数据库 是至少由 计算节点、存储节点、管理平台、备份还原程序 四个部分组成,从数据库系统理论知识上说分成:全局自治 和场地自治 ,也粗略认为: 全局可理解为计算节点、场地可理解为存储节点

(2)这个问题的标题 “中间件实现分布式 还是源码级别引入分布式算法”  这个说法存在误导性,修改为 : 存储节点自主研发数据库存储引擎 还是采用 市场上存在的数据库产品为数据库存储引擎。只要知道通信协议,存储节点可以是任何集中式数据库产品

(3)存储节点自主研发:SequoiaDB、OceanBase 是属于自主研发数据库存储引擎

(4)存储引擎采用已有数据库产品:TiDB(存储引擎是开源KV的RocksDB)、HotDB(MySQL开源数据库,从知识产权能看寻到自主研发的存储引擎HotDB Engine)、GaussDB T(PostgreSQL开源数据库)、GoldenDB( MySQL开源数据库 )、TDSQL( MySQL开源数据库 )

2、分布式事务支持以及在超大事务下的性能下降幅度?

解答:

(1) 超大事务下的性能下降幅度

采用sysbench的方式太简单了,意义不大。这个问题需要采用相同的硬件环境、数据环境、业务场景,对比测试才能回答。信通院正组织厂商在测试模拟银行传统核心业务场景的性能测试。另外,从网络上拿到的信息:6000万账户基础数据、每笔业务96条SQL(也即一个数据库事务是96条SQL组成)、随机两个账户转账,HotDB 能做到 12000笔 转账业务 /秒、平均响应时间 78毫秒/笔转账业务、成功率100%;TiDB能做到  2200笔 账业务 /秒、平均响应时间 315毫秒/笔转账业务、成功率99.3%

( 2) 分布式事务支持

分布式事务支持分成两块:采用NOSQL架构的 乐观锁 还是  集中式数据库的 悲观锁、分布式事务等同集中式数据库的能力。如下:

(2.1) 采用NOSQL架构的 乐观锁 的产品:SequoiaDB、GoldenDB、TiDB

(2.2) 采用 集中式数据库的 悲观锁 的产品:OceanBase、HotDB、GaussDB T

   (2.3)  分布式事务等同集中式数据库的能力 : OceanBase和 HotDB 完全等同 集中式数据库 的事务能力,其他产品都需要借助 “管理协调节点”来完成,所以在事务透明、实时一致等方面存在困难,还无法等同。

3、大查询(亿级)下各数据库的性能如何?

解答:这个看是否复杂JOIN,还只是简单SELECT,对于基于NOSQL技术架构的TiDB、 SequoiaDB在数据分析方面占优,OceanBase、HotDB、 GoldenDB等其他产品基本上只专注OLTP业务场景。

4、对于从Oracle平迁至分布式数据库,除去存储过程等力不可抗拒因素外,其他的难度如何?有无便于使用的平迁工具?

解答:主要是要修改只有Oracle才有的SQL特性、函数等,现在 GoldenDB在做深入兼容Oracle,HotDB、 GoldenDB能兼容函数、序列等基础SQL语法而已。

5、分布式部署的高可用性:节点挂掉的数量对整个集群的服务能力、处理性能影响是怎样的?

解答:分布式数据库产品的高可用性 需要看这个产品由那几部分组件构成及参与业务系统的数据服务的组件模块,例如如下

(1)HotDB:参与业务系统的数据服务必备组件为 计算节点(负责全部的SQL语句执行、事务控制、存储节点存活探测、高可用切换、死锁检测、死锁解除等)、存储节点(负责数据存储、场地SQL执行)

(2)GoldenDB:参与业务系统的数据服务必备组件为 计算节点 (负责全部的SQL语句执行 )、存储节点 (负责数据存储、场地SQL执行) 、管理协调节点(负责分布式事务等)、管理节点(负责存储节点存活探测、高可用切换等)

(3)TiDB: 计算节点 (负责全部的SQL语句解析、转发 等)、存储节点 (负责数据存储、场地SQL执行) 、管理协调节点(负责分布式事务、 存储节点存活探测、高可用切换 等)

.............................其他类似

所以一款产品每个组件都必须无单点,且确认组件是否属于有状态的,对有状态的组件因涉及全局信息同步故是要特别对待的,例如:HotDB的计算节点是有状态、 TiDB 管理协调节点 PD 是有状态 等

6、集群增加节点后,对于整个集群的影响有哪些?增加节点后的数据平迁是否会对业务造成较大的影响?

解答:

(1) TP业务 跟AP业务在集群增加存储节点  对业务的影响是不同,或 增加计算节点类似

(2 ) TiDB、 SequoiaDB、OceanBase、HotDB、 GoldenDB在增加计算节点时对业务无影响

(3) TiDB、 SequoiaDB、OceanBase 、 HotDB 在增加存储节点时对业务无影响, GoldenDB 暂不清楚

7、搭建完成后,对于DBA运维来讲,各家有无工具能便于运维的条件

解答:从各家对外发布的信息看,HotDB产品在运维工具方面或者说产品化方面做最好,其次是 OceanBase .....微信群里看到的两张HotDB产品截图如下

银行 · 2020-03-15
  • (3) TiDB、 SequoiaDB、OceanBase 、 HotDB 在增加存储节点时对业务无影响, GoldenDB 暂不清楚 这一条,我仔细看了中信银行丁总的演讲和材料,Goldendb是做不到的,它的宣传材料里的概念和Tidb/OB不一样,他的计算节点,实际上是dbproxy,数据节点,其实是完整的MySQL,并没有类似TiKV/SequoiaDB的独立存储集群。
    2020-09-22

回答者

Amygo
DBA分布式事务数据库
擅长领域: 数据库服务器分布式系统

Amygo 最近回答过的问题

回答状态

  • 发布时间:2020-03-15
  • 关注会员:22 人
  • 回答浏览:11218
  • X社区推广