最近和朋友聊到分布式核心数据库的发展和应用情况以及人行发布的金融数据库规范标准,聊到早在2018年有一份《金融分布式事务数据库白皮书》,其中详细介绍了分布式数据库的发展趋势和必然性,本文就对这份白皮书做一次解读。
金融机构信息系统向分布式架构转型,有内在因素也有外在因素:
分布式数据库发展主要经历4个技术阶段:
分布式事务数据库具备3大核心属性和6大核心能力:
分布式事务数据库有以下几种发展方向:
1)基于单机事务关系数据库的业务分布式改造,即在应用业务层面建立数据分片和数据路由规则此类方式业务侵入方式较为严重
2)基于单机事务关系数据库的分布式管理组件方案,也就是在计算层通过分布式中间件实现自动路由策略,并通过一致性方面的配套理论和算法,解决分布式事务一致性问题
3)分布式数据库理论和实现架构,由数据库驱动、计算节点集群、数据节点集群和全局管理节点组成
集中式事务数据库与分布式事务数据库对比如下所示:
相较而言,分布式事务数据库在软硬件成本、扩展性和伸缩性上对比集中式事务数据库有很大优势;同时利用分布式架构的优势,在可用性和可靠性上也有足够的保障支撑,满足监管RTO和RPO要求。
随着移动互联业务场景的发展及业务场景的丰富,金融行业在新形态下有新的业务需求:
1)金融行业数据激增,对数据库存储和管理提出了更改要求
2)金融行业对业务连续性更加重视
3)面临高并发业务和高用户量带来的系统压力
4)对移动应用响应速度要求更快
5)技术层面的国产化需求
金融行业的数据库技术在几十年的发展过程中,形成了以集中式事务数据库为主的格局:
1)硬件方面
2)软件方面
3)新时代金融业务发展需求
与集中式数据库相比,分布式数据库可以实现数据非分散存储,将数据库的压力分散在不同的服务器上,同时可以实现交易均衡负载,并采用高并发的架构提升交易的处理能力。分布式数据库的几大优势如下:
金融分布式事务数据库技术标准共有50项技术指标,分为6大类:基本功能18项、兼容能力6项、管理能力14项、高可用能力4项、扩展能力4项和安全能力4项。
金融业务架构从集中式到分布式转变过程中,底层的数据存储也从单节点变成多节点的分布式存储。因此底层基础设施架构的改变,对业务系统的设计模式和操作方法也会带来变化:
1)业务系统组件化、服务化改造
2)数据库模式设计,满足扩展需求
3)数据库SQL能力评估及业务开发注意事项
4)容量系统评估及弹性方案
5)高可用及容灾方案
6)系统运维方案
金融分布式事务数据库从集中式架构迁移改造过程中,要基于可持续发展、透明开放以及代价可控原则。
1)可持续发展:当前分布式事务数据库还处于起步阶段,迁移过程中充分考虑分布式事务数据库架构的可持续发展,以满足中长期的发展需求
2)透明开放原则:以透明开放的原则进行各种任务的规划和要求,保证透明和开放度
3)代介可控原则:在对业务和系统的架构调整优化中,选择总体迁移代价最优的路线
1)知识传递先行:在实施阶段,首先需要执行知识的传递和转移
2)测试评估价值体系的建立:在实施启动前,需建立有效的测试评估评价体系
3)上线方案和上线实施:按照业务重要性、业务安全性以及流量压力,对自有存量和增量业务进行分级分类,按照一定顺序逐步验证实施分布式事务数据库
4)实施的阶段性计划
1)转型过程中的应用过度适配和改造
适配分布式事务数据库的技术特性,如分布式事务控制、分布式数据库表关联以及一致性控制等,对应用进行局部调整。但过度的应用侧改造调整,降低了灵活性,耦合度的增加对整体扩展能力以及运行维护成本控制都有负面影响
2)使用旧管理策略约束分布式事务数据库
以整个分布式事务数据库集群的可用性作为核心指标,对于单个节点的故障应采取更加符合分布式事务数据库机制的运维管理流程进行管理
3)不重视基础网络环境建设
分布式事务数据库本质上是分布式计算与存储系统,对网络吞吐和网络延迟有非常高的依赖性和要求。
金融行业分布式架构转型是必然趋势,而分布式事务数据库是分布式架构转型的难点,因此需要金融行业、技术提供商以及学术界和研究机构一起建立标准、开展试点测试验证,完善技术生态圈。
1)建立技术标准体系,以标准带动产业,实现业务共识
2)开展技术试验与测试
3)完善支撑配套体系
1)数据缓存节点和数据持久节点结合
2)计算节点和存储节点组合
3)应用层和路由层耦合
4)三种技术架构优劣总结
像主流厂商GoldenDB和TDSQL等基于第二种技术方案实现的。
1)金融分布式数据库生态的选择
基于以上评分标准主流的厂商基于MySQL基础上进行自研和优化改造,比如TDSQL、GoldenDB、OceanBase等
2)分布式事务数据库的扩缩容能力
在北京金融科技产业联盟编制的《分布式数据库金融应用评价模型》中,节点的扩缩容能力占比权重为50%,说明在分布式数据库功能中,扩缩容能力是一项很重要的考量指标,也是分布式数据库相较于传统集中式数据库的一大优势。
3)分布式数据库集群处理能力
集中式数据库单集群可以存储几十T甚至上百T的数据量,在分布式数据库X86部署架构中以单节点500G存储为例,20T的集中式架构需要40台数据节点服务器,加上计算节点和管理节点,分布式架构单副本至少需要60台服务器。
4)高可用架构对比
从单副本的集群数量可以知道,5副本的集群需要的服务器将会是数量级的增加,随之带来的是集群服务器数量的庞大以及运维压力的增大。从各厂商在同业的建设情况,这些只读副本似乎也只是用作高可用的可靠性,并没有进一步用途比如读写分离以减少主副本的流量压力。而以计算节点+存储节点结合的架构,最后的读写压力都会加载到主库上。至于分布式数据库的同城双活也没有成熟的方案可以参考。
5)分布式事务数据库运维
其它有关分布式核心数据库运维的问题和困难不一一赘述了。
从2018年4月《金融分布式事务数据库白皮书》到2020年11月26日人行的《分布式数据库技术金融应用规范》系列标准发布,国内的分布式核心数据库发展的是如火如荼,以中信和平安银行为代表的商业银行的核心业务系统也分别进行了分布式架构改造并成功投产。集中式数据库架构到分布式核心数据库架构的演进是势在必行,也是大势所趋。