文 北京银行
软件开发部 于振华 怀文佳
近年来,国家不断提高对信息技术安全可控的战略要求,银行业希望在快速发展业务的同时不断降低经营成本。这不仅促使商业银行积极提升自主掌控能力,同时,对基础软件的服务能力、软硬件升级成本控制也提出了新的要求。商业银行信息系统采用的传统数据库一体化解决方案,在面对高并发量实时交易和大数据量处理时,遇到了明显的性能瓶颈,而想提升系统性能只能靠替换式的硬件升级,成本昂贵。在这种背景下,引入一种高性能、可弹性扩展、能够支持OLTP场景的分布式数据库成为各家银行系统建设的优先选择方案。
分布式事务数据库采用多种模式实现数据的分散存储,将数据库压力分散到不同服务器上。与集中式数据库相比,分布式数据库可以均衡交易负载,并采用高并发的架构提升系统的交易处理能力,而其统一的资源管理机制也使得数据库的性能扩展不再是设备的替换式升级,而是通过增加存储或计算节点来实现弹性升级,极大地节约了升级成本。
目前,分布式事务数据库在互联网应用场景下的探索取得了良好的成效和大量的实战经验,积累了很多成熟的技术应用经验。但由于金融行业对风险的高要求,以及在交易复杂度、业务实时一致性等方面要求不同于互联网企业,商业银行对数据库的迁移和转型必须非常谨慎,要充分论证技术方案,制定相关的技术标准和评测体系来促进向分布式数据库的稳步转型。
一、评测体系建设的必要性
相比于传统数据库架构,分布式事务数据库架构更加复杂,组成部件更多。通常,分布式事务数据库可分为中间件层、数据存储层和控制调度层。中间件层负责将数据按既定规则分发到多个数据存储节点上,并保证跨存储节点分布式事务的一致性;数据存储层用于数据的实际存储,执行原子SQL操作和本地事务控制;控制调度层主要负责数据导入导出,备份恢复功能,以及对数据库集群的统一维护和管理。分布式事务数据库架构如图1所示。
在这样的架构下,对于OLTP的场景,分布式事务数据库进行一次事务操作比传统数据库要复杂得多,需要面临诸多挑战。
1.事务ACID特性
ACID是事务的四个基本特性,包含原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability),也是关系型数据库的核心。商业银行信息系统处理的每一笔交易都必须具有ACID特性,才能保证交易处理的正确性。ACID特性伴随关系型数据库产生,在传统数据库一体化解决方案中非常成熟、稳定,但在分布式事务数据库中,由于数据分布在不同的存储节点,跨节点的ACID都需要引入新的理念、架构和算法才能得以实现。目前各产品均有各自不同的实现方案,缺少行业性评测规则。
2.高可用性
分布式事务数据库一般采用x86服务器进行组建,其硬件故障率远高于商业银行采购的高端服务器。为保证高可用,通常采用双机主备或冗余多数据副本的设计模式。当遇到硬件故障、网络故障时,备机或者数据副本的接管能力自然成为了重要的待测指标。
3.透明性原则
在数据分片中,通常利用Hash、Range等算法对全量数据进行拆分,使之存储于不同的数据存储节点,进而达到均衡的数据负载。而对于访问数据库的应用,分布式事务数据库应该能够屏蔽此种分片规则,让使用者好像面对一个单一数据库。因此需要评测中间件层是否可以按照多个维度进行数据寻址,避免将分片规则引入到应用层,降低应用开发的复杂度。
4.多副本数据同步算法
为保证高可用和数据安全,分布式事务数据库通常采用冗余多副本的存储策略,如何做到副本之间数据的一致性,成为行业内研究的重点内容。近几年,业内产生了很多用以实现副本一致性的算法,例如Paxos、Raft等,多个数据库产品对一致性算法展开了工程实现。但这些新兴的算法还未能在工程实践中接受大规模、长时间的检验,因此进行同步算法性能的相关评测非常有必要。
5.产品化程度
传统数据库软件经过几十年的发展,产品化程度非常高,周边可对接的服务应用也非常丰富。而分布式事务数据库发展时间较短,在完整产业链的构建、产品整体化提升上还有很多工作要做。
此外,要实现分布式事务数据库在商业银行的应用,除了以上谈到的硬性指标之外,还要求能够提供例如监控、数据迁移等附加功能。
从技术发展的生命周期来看,分布式事务数据库还处于成长阶段,产品本身还需不断演进,有待工程实践的检验;而从架构上看,其工程实现难度非常高,需要面临许多技术挑战,是否具备从理论走向现实的条件还需验证。综合以上两点,我们认为建设一套完备、针对性强的评测体系,用以检验迁移分布式事务数据库的可行性十分有必要。
二、分布式事务数据库评测体系结构
北京银行建立评测体系有两个目标:一是实现对分布式事务数据库的全面评测,从多角度建立、健全指标项,再逐一对指标项进行验证,得到评测结果。二是验证数据库迁移本地化可行性,提出“标准化交易”概念,我们将生产实际运行的典型交易迁移到开放式平台,用典型交易对分布式事务数据库进行测试,测试指标包括TPS、QPS和响应时间等性能指标。同时,利用“标准化交易”进行多场景组合,再对第一步提出的评测指标进行回测验证。
1.构建分布式事务数据库评测指标
在当前数据库主流评测指标的基础上,结合商业银行关注要点,北京银行自主提出了一套“分布式事务数据库评测指标”,包含六大项评测指标、二十一项细分功能指标。六大项包括算法性能指标、可靠性指标、安全备份能力、个性化功能、数据库支持能力和兼容性指标,如图2所示。通过细分功能指标,使得评测标准更加具体化,评测结果更加客观化。
2.提出标准化交易概念
在评测过程初期,我们对测试工具进行了调研,选取已有开源工具对分布式事务数据库进行OLTP性能测试,开源多线程测试工具Sysbench可以用于检测TPS、QPS和响应时间等性能指标。但随着对工具的实际应用和深入研究,我们发现Sysbench对OLTP的性能测试存在较大的局限性,其测试脚本以及SQL编排方案与金融行业实际的应用场景存在较大差异,例如,Sysbench中一个事务只操作、访问一张表,逻辑过于简单,而在真实的银行交易中,通常要操作、访问数十张表。也正因为其逻辑过于简单,很难进行二次开发来满足对评测指标的回测。
在这种情况下,为保证本地化评测的有效性,需要建立能够匹配商业银行交易复杂度、应用场景的评测工具——标准化交易。其建立过程为:对银行现有系统运行中的交易进行分析之后,按照发生频度、使用范围选取一组典型的交易场景,利用开源数据库连接池和JDBC框架,把这些交易从封闭系统迁移到开放平台,形成“标准化交易”。针对不同银行的特点,可以按照实际场景,对数据库进行相同数据规模、相同交易逻辑、相同粒度的访问、操作,通过标准化交易的执行数据对比新老平台的差异。如图3所示,选取交易发生量较大的转账场景作为一个标准化交易。
为了避免测试场景的单一化、模式化、常规化,对标准化交易评测从三个维度进行丰富和扩充,以标准化交易中的转账场景为例:
(1)分布式事务数据库能否应用在OLTP场景上,其核心就是能否支持ACID特性。为此对标准化交易转账模型进行场景设定,按断点划分,如图3中断点A、断点B和断点C可按评测需求在断点处设置不同处理结果,即控制Commit和Rollback操作,用以检验原子性、一致性和持久性,利用多线程中的标准化交易及不同断点的处理结果设定,检验隔离性级别。
(2)建立多只标准化交易组成标准化交易组,进行按比例混合测试,例如转账、建立客户、余额查询三只标准化交易按3∶2∶5进行混合测试,具体比例建议按照现有生产系统交易比例进行配置。通过这种方式,极大程度地还原了实际应用场景,使得本地化评测更加真实、有效。
(3)利用标准化交易对提出的二十项评测指标中部分指标进行回测。标准化交易高度还原了现有系统交易功能,利用标准化交易以及更加贴近生产环境的混合场景对指标中部分指标进行回测,保证评测结果的准确性。
三、结语
分布式事务数据库作为未来金融行业技术更新的集中发力点,已逐渐成为各方重点发展的方向。未来,相信会有更多的金融机构将采用分布式事务数据库的架构设计进行建设布局,这也必将加快整体产业结构的发展,所以与此相对应的标准化评测手段变得必不可少,只有经过完善的评测才能保证分布式事务数据库与金融行业信息系统的全面匹配。
随着金融产品的多样化发展,金融企业现有应用规模非常庞大,在这种情况下,进行分布式事务数据库的落地可行性分析及性能评测,全面的评测指标、标准化交易概念的引入及本地化多场景验证,是我们认为合理且行之有效的手段。抽象出的标准化交易及多场景混合搭配,具备了测试案例的多样性,进而保障了数据库迁移工作的顺利进行。在性能评测上,选用标准化交易,在同等数据规模、同样的应用逻辑基础上进行测试,结果更为真实准确。
北京银行在完成对分布式事务数据库相关产品特性调研后,就把工作重点转移到了对它的评测体系建设中。本文提到的评测体系,源于分布式事务数据库实际的建设过程。通过这套评测体系的指引,北京银行使用六台PC服务器完成了多个分布式事务数据库产品的评测工作。第一轮评测我们采用标准化交易及多场景混合搭配得到了TPS、QPS和响应时间等主要性能指标;第二轮通过标准化交易和模拟场景,对我们提出的分布式事务数据库21项指标逐一进行了评测。在一些关键指标上,此套评测体系有效地反映出不同产品的特性及优劣势,为未来的分布式事务数据库迁移工作打下了坚实的基础。
北京银行在分布式事务数据库的建设过程中,立足于经典数据库理论,发展了分布式事务数据库的评测指标,从多个维度检验了数据库产品。在本地化策略上,提出了标准化交易及多场景结合的实践思路,保证了未来数据库迁移的安全性和可靠性。希望此套评价体系可以为更多的金融机构提供一种新思路,其他同业机构也可以用标准化的流程进行分布式事务数据库评测。借此北京银行愿与各同业机构携手并进,为推动数据库产业升级贡献自己的一份力量!
《中国金融电脑》2018年第 1 期
¥25
欢迎订阅
领取专属 10元无门槛券
私享最新 技术干货