近年,国内分布式数据库发展迅速,成为了各行业核心业务替换海外产品的主要技术。但分布式数据库并不总是可靠的,大部分产品依然存在单点风险,为系统安全埋下严重隐患。易鲸捷在银行核心交易系统实施过程中意识到这些风险,通过彻底去中心化的技术实现,打造架构更安全的分布式数据库QianBase xTP,让企业可以放心的对核心关键业务系统进行技术替换。
一、分布式数据库的单点问题分析
在分布式1.0分库分表时代,分布式架构大都以Mysql(或PostgreSQL)为基础进行二次开发。这样实现的“组装型”分布式数据库,如果想要进行全局的数据管理,实现事务一致性,就必须配置多个管理角色,其中最重要的就是全局事务管理节点(GTM)。所有计算节点在进行数据操作时,必须先去访问GTM,获得一个全局递增的数值作为事务标识的一部分。一旦多个事务发生冲突时,能通过携带的标识信息判断其先后关系,从而决定正确的执行顺序。GTM一般会采用一主多备的部署方式,主服务发生故障后,备用服务切换需要经过故障识别、角色切换两个过程,往往需要数分钟的时间成本。
图-一种典型的分库分表架构数据库
当GTM一旦发生故障,即便数据节点全部存活,此时的数据库也会处于瘫痪状态,无法对外提供服务,因为事务都在等待从GTM获得完整的身份标识。
当然,分库分表的架构还有很多更严重的缺陷,例如不支持复杂SQL、应用不透明,众多Mysql之间主从复制管理困难、可靠性低,跨中心容灾能力不足等,以至于数据库厂商在构建分布式2.0(原生分布式)时,都在围绕以上缺陷进行优化,很少有精力去处理其单点问题。并且,有的用户也能接受在部分非核心类业务系统中偶尔出现分钟级别的停机故障。
二、核心系统必须要更安全的分布式数据库
目前,重要行业机构都在探索核心系统技术替换,其中不仅包括数据库技术,还有芯片、服务器、操作系统等。然而国内芯片、整机技术的成熟度和稳定性与海外产品相比还存在巨大差距。在这样的设备环境下,带有单点风险的分布式数据库,所带来的系统故障就不再是偶尔发生。
在金融、能源、工业等关键行业核心系统中,1分钟的系统瘫痪都可能影响成千上万居民的衣食住行,这些系统如果不能稳定、安全运行,何谈国计民生的长久发展。基础硬件设备的迭代周期太长,其稳定性短期难有大幅提升,所以核心业务在有限时间内完成技术改造,就必须采用更安全的分布式数据库。
过去因为技术原因,不得不采用GTM/GTS的单点事务服务模式,然而现在技术已经形成了跃迁,一种彻底无中心架构的分布式数据库已经成为现实。
三、QianBase xTP的去中心化实现
QianBase xTP是易鲸捷研发的一款分布式2.0架构原生分布式数据库,所有节点全部对等部署,不存在任何管理节点。易鲸捷在某银行核心交易系统全栈国产替换实施中,经过大量测试验证,意识到了国产基础设备存在故障率较高的问题,不得不提升自身数据库软件的可靠性,以保证银行核心交易业务的连续、稳定。
QianBase xTP通过HLC(混合逻辑时钟)实现了一种多节点多活的分布式事务授时方案,替换了GTM全局事务管理的单点架构。每个节点本地都具有一个HLC时钟服务,为连接到该节点的会话操作分配事务时间戳,这个时间戳包括两部分组成:物理时间(L)和逻辑时间(C)。在初始状态下,物理时间(L)与该节点的服务器时间(Pt)时刻保持一致,逻辑时间(C)则是由连续递增的数值组成。
图-混合逻辑时钟组成与时钟回调应对策略
数据中心的服务器需要定期进行时钟同步,偶尔会造成本地时间回调的情况。当节点本地物理时间发生回调使Pt < L时,事务时钟的物理部分L则保持不变,逻辑部分C进行“+1”,从而使“L,C”组成的混合时钟只能持续增大。
那么跨节点的分布式事务如何判断前后关系呢。这依赖于一个客观的物理事实,即“信息的接收端接到信息的时间,必然晚于发送端信息发出的时间”,通过这样的因果关系,我们管理多节点的HLC时钟服务。当发生分布式事务时,会话发起的节点A(即该会话的协调节点)在进行跨节点访问数据的同时,会将当前事务的时间戳“LA1,CA1”发向参与节点B;B接收到这个时间戳以后,会与本地当前时间戳“LB1,CB1”进行比较,从而获得本地下一个混合时钟“LB2,CB2”。
图-HLC混合逻辑时钟受分布式事务影响示意图(箭头代表该事务执行路径)
HLC仅仅是一种分布式多点授时方案,从方案到分布式事务应用,还需要极其复杂且庞大的工程设计与实现,并不是一般的数据库厂商能够轻易实现的。然而在QianBase xTP中这已经成为现实,并得到银行核心交易系统的充分验证,支撑分布式事务的强一致性和数据100%准确率,以及在国产芯片服务器环境下业务系统依然达到6个9的可靠性。
图-QianBase xTP 无中心架构
易鲸捷通过这一技术实现,打造出一个彻底去中心化的分布式数据库,一个没有单点风险的数据库。QianBase xTP中应用可以连接任意节点,并通过分布式一致性协议保证数据多副本存储,任何服务器设备故障都不会影响数据库稳定的对外提供连续服务。同时QianBase xTP还支持一套数据库跨多中心容灾部署,每个备中心能够分别设置同步复制、异步复制,以及“同步/异步”自动切换的灵活容灾模式,完美支持两地三中心、同城两中心的核心业务容灾需求,是架构安全可靠、能够快速实施全栈国产化替换的分布式数据库解决方案。
图-QianBase xTP 跨多地部署、数据互联互通
另外,QianBase xTP这种去中心的架构设计,在分布广、层级深、业态复杂的大型机构(例如央国企、大型制造业机构)业务需求中,支持一套数据库跨多地部署,每个数据中心通过本地HLC服务处理各自业务,无需跨中心访问GTM主服务获取事务标识,做到各个分支中心在本地就能高性能处理自身业务的同时,还能实现全局数据互联互通、总部统一监督管理。QianBase xTP是一款能够面向未来全球区域部署的先进分布式数据库。
易鲸捷简介
易鲸捷公司成立于2015年,专注于新一代融合型分布式数据库核心技术研发。公司核心团队源自天腾公司,曾创造过NonStopSQL等全球领先的数据库产品,核心技术完全自主可控。经过多年技术沉淀,易鲸捷已形成自主可控、国产可信、安全高效的三条完整分布式数据库产品线:QianBase xTP/QianBase TP/QianBase MPP,可面向不同行业应用提供完整的一站式解决方案,在金融、运营商、智能制造、5G等重点行业获得广泛应用。
地址:贵阳市高新区长岭南路160号高科1号C座24楼
北京易鲸捷信息技术有限公司
地址:北京朝阳区北辰东路8号汇宾大厦A座1302室
电话:010-84983409
上海易鲸捷信息技术有限公司
地址:上海市浦东新区金科路2889弄1号长泰广场A座6层03单元
电话:021-5082211