goldendb mysql_陆天炜: GoldenDB事务一致性处理机制优化历程

中兴通讯的GoldenDB是一款金融级分布式数据库,针对金融行业关注的事务一致性问题,进行了优化实践。GoldenDB的架构包括计算节点、数据节点、全局事务管理节点和管理节点,提供实时一致的分布式事务控制、同城异地容灾和备份恢复等功能。通过一阶段提交和自动回滚补偿机制确保事务原子性,采用全局事务管理器GTM实现事务隔离性。在事务处理中,通过预锁机制、批量请求和组提交等方式优化性能,保证了在高并发场景下的数据一致性。
摘要由CSDN通过智能技术生成

原标题:陆天炜: GoldenDB事务一致性处理机制优化历程

前言:GoldenDB 是中兴通讯推出的一款自研的金融级交易型分布式数据。针对金融行业关注的数据库事务一致性问题,中兴通讯 GoldenDB 分布式数据库架构师陆天炜,在DTCC2019数据库大会上做了干货分享,重点介绍了 GoldenDB 的解决方案和对应的优化实践。

380899a8d6aa7f2e4f2b836acdbf5e67.png

▲中兴通讯GoldenDB分布式数据库架构师 陆天炜

众所周知,中兴通讯的主航道产业是5G通信,但是各行各业都会使用数据库,中兴通讯提交给客户的通讯设备上面也都使用了大量的数据库,为了给客户提供更好的交付体验,大部分都是自研的产品。

从2002年开始,中兴通讯推出EBASE文件数据库,2007年推出EBASE-MEM内存数据库,做到2011年的DHSS分布式数据库,开始有了一个雏形。2014年的时候,中兴通讯开始研发了GoldenDB这个金融级的数据库,2015年的时候已经有第一个商业版本GoldenDB 1.0,并在中信银行的北京营业厅的冠字号业务上开始使用。到2016年的时候,已经在多个银行不同业务等级的生产系统上做了商用投产。2017年,中兴通讯做了另外一件事情,和中信银行一起在总行的账务系统上做了一个核心下移的测试验证,并且验证通过了,性能超过40000TPS。当时客户就决定要在2019年的时候,把核心业务的数据库,从基于小机的DB2上迁移到基于X86平台的GoldenDB上。

GoldenDB分布式数据库总体架构是什么?

b4cc56ecdf4c9db3a97a04a7e175c9cc.png

GoldenDB分布式数据库总体架构分成四个重要部分:

第一部分,是计算节点集群,是多点读写模式,因为计算节点没有状态,所以可以做到横向扩容。

第二部分,是数据节点集群。在一套GoldenDB里面,可以有多个数据节点集群去承载多个不同的业务,每个数据节点集群是可以做到物理隔离的。每个集群内部根据对应的业务流量,还有存储压力,去做分片,做负载均衡。每个数据分片都是一主多备的结构,每个备机可以做容灾和读负载能力的扩展。

第三部分,全局事务管理节点,用来管理全局分布式事物的一个生命周期。它跟计算节点做交互,提供全局事务ID的分配、回收,以及全局活跃事物列表的查询功能。

第四部分,是管理节点,主要包含几个重要功能:第一,提供了一个Web控制台页面,在控制台上可以做自动的安装、更新,集群的组建,主备切换,备份恢复等各种与运维相关的操作;第二,管理节点里面还包含了元数据管理器,源数据管理器存了两部分信息,第一部分信息是GoldenDB拓扑的组网信息,包括各个集群的设备信息,主备信息、IP信息等,第二部分就是业务数据库的源数据,包括DDL、库表结构、分布状态、分布规则;第三,管理节点还提供了监控,可视化告警等与管理相关的功能。

这就是GoldenDB数据库的整体架构,对外连接业务,提供的是MySQL的标准协议。

GoldenDB现在正在做的一个事情是,在2019年底的时候要把中信银行的DB2给替换掉。下面总结了GoldenDB数据库满足金融核心功能的一些关键需求。

第一,实时一致的分布式事务控制;在做分布式事务控制的时候,能够做到实时一致,并且事务处理不影响业务原来的业务逻辑,业务原来的代码迁到GoldenDB上的时候是不需要做逻辑变更。他们原来的代码是RPG的代码,直接通过工具改成Java代码,业务开发的工作量非常少。

第二,支持同城异地容灾和一致的备份恢复,符合异地监管的一致性。GoldenDB契合金融的两个三中心架构,能够做到同城RPO为0。无论是一致的备份恢复,还是异地接管的恢复,在做备份的时候各个节点单独备份,但恢复的时候能够能恢复到全局一致的状态。所以,异地做接管的时候,虽然会有数据丢失,但是接管后的数据也是一个一致的状态,更加方便

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Goldendb 接口是一个数据库管理系统,它提供了一套用于管理和访问数据库的接口。这个接口可以让用户通过代码调用不同的函数和方法来执行数据库操作,例如插入、更新、删除和查询数据等。使用 Goldendb 接口,用户可以方便地与数据库进行交互,实现对数据库的增删改查操作。 Goldendb 接口的设计简洁而灵活,支持多种编程语言,如C++、Java、Python等。用户可以根据自己的编程语言偏好选择合适的接口,并根据接口文档了解如何正确使用各个函数和方法。 Goldendb 接口的核心功能是数据管理。它提供了一系列方法来操作数据库中的数据,比如插入新数据、更新现有数据以及删除数据等。用户可以通过调用这些方法来实现对数据库的数据管理。另外,Goldendb 接口还提供了丰富的查询功能,用户可以根据特定的条件来查询数据库中的数据,并获取所需的结果。 除了数据管理和查询,Goldendb 接口还支持数据库事务和并发控。用户可以通过接口中提供的事务方法来实现对数据库的事务管理,保证数据的一致性和完整性。同时,接口还提供了并发控的方法,可确保多个用户同时对数据库进行操作时能够进行正确的同步和冲突处理。 总之,Goldendb 接口是一个方便、灵活和强大的数据库管理系统接口,通过调用接口提供的函数和方法,用户可以轻松地进行数据库的管理和操作。无论是进行数据的增删改查,还是处理数据库的事务和并发控,Goldendb 接口都能够提供强有力的支持。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值