金融分布式事务数据库白皮书.pdf
金融分布式事务数据库白皮书 中国信息通信研究院 云计算与大数据研究所 中国支付清算协会金融科技专业委员会 2018年 4月 版权声明 本白皮书 版权属于 中国信息通信研究院 云计算与大数据研究所 和中国支付清算协会 金融科技专业委员会 共同 所有 ,并受法律保护 。 转载、摘编或利用其它方式使用 本白皮书文字或者观点的,应 注明 “ 来 源: 中国信息通信研究院 云计算与大数据研究所 、支付清算协会 金融 科技专业委员会 ” 。违反上述声明者,本 院 将追究其相关法律责任。 牵头编写单位 及人员 : 中国信息通信研究院云计算与大数据研究所 :魏凯、姜春宇、马鹏玮 中国支付清算协会金融科技专业委员会 :丁华明、颜勇 参与编写单位 及人员 : 中信银行 : 陈蓓、刘文涛、童庆峰 北京银行 : 马晓煦、 于振华、怀文佳 建设银行 : 刘征宇 、 舒展 、 邢磊 、 白彧斐 、 刘海 、 安兴朝 光大银行 : 赵雪枫 民生银行 :郝庆运 华为技术有限公司 :叶涛、李海丰、朱松 中兴通讯股份有限公司 : 罗圣美 、 钱煜明 、 邹海丽 、 张丽 、 周日明 蚂蚁金融服务集团 : 蒋志勇 、 徐岩 、 李阳 PingCAP: 余军 、 郑万波 、 房晓乐 广州巨杉软件开发有限公司 :郝大为、孙伟、李方舟 上海热璞网络科技有限公司 :金官丁、 黄小慧,刘小成,魏晗清 腾讯云计算(北京)有限责任公司 : 潘安群 、 孙康 、 刘峰 、 苏强 、 吴月玲 上海爱可生信息技术股份有限公司 : 李恒、梁广涛、陈书俊、张翔、王松强 前 言 当前, 金融 信息化建设主要依托原有集中型 IT 架构进行维护扩 展 ,系统规模及复杂程度呈指数级增长, 各类瓶颈 逐渐暴露 , 日益 增长的数字金融需求同旧式的系统架构缺陷之间的矛盾愈加凸显。 中国 人民银行、 中国银行保险监督管理委员会 等金融监管部门 逐渐 推出分布式转型政策要求 ,金融 企业 开始兴起 分布式转型浪潮 。 本白皮书首先阐述了分布式事务数据库的发展 状况 与相关技术 体系,之后以金融 业务 为 背景,从金融业务对分布式事务数据库的 能力要求、分布式事务数据库对现有金融业务影响、金融业分布式 事务数据库迁移方法三方面进行分析论述,力求梳理金融业应用分 布式事务数据库全流程概念及方法。 白皮书结合当前应用现状及问 题 ,提出了金融分布式事务数据库发展的策略建议。 由于时间 仓 促, 水平所先 , 错误 和不足之处在所难免 , 欢迎 各位读者 批评指 正 ,意见建议请 发送 至 。 目 录 版权声明 . 2 一、分布式事务数据库概述 . 1 (一)信息系统向分布式转型的趋势 . 1 (二)分布式数据库发展历程 . 2 (三)分布式事务数据库的核心属性和能力 . 6 (四)分布式事务数据 库的技术架构 . 7 (五)集中式事务数据库与分布式事务数据库对比 . 10 二、金融行业事务数据库现状概述 . 11 (一)金融行业业务需求分析 . 11 (二)金融数据库系统现状及痛 点分析 . 12 (三)分布式事务数据库成为转型必由之路 . 15 三、金融关键业务对分布式事务数据库的要求 . 16 (一)基本功能 . 17 (二)兼容能力 . 17 (三)管理能力 . 18 (四)高可用能力 . 18 (五)扩展能力 . 19 (六)安全能力 . 19 四、分布式事务数据库对金融业务设计的改变 . 19 (一)业务系统组件化、服务化改造 . 20 (二)数据库模式设计,满足扩展需求 . 20 (三)数据库 SQL 能力评估及业务开发注意事项 . 21 (四)系统容量评估及弹性方案 . 22 (五)高可用及容灾方案 . 23 (六)系统运维方案 . 24 五、金融分布式事务数据库迁移策略 . 25 (一)指导原则 . 25 (二)实施策略 . 26 (三)典型问题和误区 . 29 六、结论与建议 . 31 (一)建立技术标准体系 . 31 (二)开展技术试验与测试 . 31 (三)在金融机构开展试点 . 32 (四)完善支撑配套体系 . 32 金融分布式事务数据库白皮书 中国 信息通信研究院 &中国支付清算协会 1 一、 分布式事务数据库概述 (一) 信息系统向分布式转型的趋势 互联网 业务 爆发式 发展 催生 信息 系统 架构转型 需求。 电子商务的 迅速发展引发全民购物狂欢浪潮,互联网金融让日常支付更加便捷, 用户 形成了从 现金 付款 到 数字货币 结算 的 消费 习惯 。 这 为银行业、支 付机构和金融监管机构带来海量的小额资金 交易 笔数,衍生出海量活 跃用户、数据 以及 并发 量 的业务场景 。据统计, 淘宝网“双十一”交 易量从 2009 年的 0.52 亿元增加到 2017 年 1682 亿元, 8 年时间增长 了大约 3000 倍 ,而 在 2011-2014 年“双十一”过程中, 16 家上市银 行 中 8 家网银支付出现 拥堵现象。 业务信息系统急需适应当前业务 海 量用户的数据服务和存储处理 需求 。 从 集中式 架构向 分布式 系统 架构 转型探索 取得积极进展 。 当前 大 型企业如金融 银行等 ,大都采用 集中式 的数据库 架构 ,多采用 scale- up,即增加单机硬件性能,增加处理能力上限 。 而随之摩尔定律的逐 渐失效, scale-up 方案出现瓶颈。 新兴互联网企业因为成本和性能等 原因 , 绝大部分 开始 了自主探索分布式数据库架构的道路。 以支付宝 为例, 2013 年全线下架 IBM 小机和 EMC 存储设备,改用廉价 X86 服务器, 2014 年使用自研数据库方案替换 Oracle 数据库,完成传统 IOE 集中式架构向分布式架构转型过程,并成功经过了 2015-2017 年 三年的线上业务考验。据报道,相应软硬件成本下降大约 60%,而性 能提升数十倍。 故 通过多年的实践经验和验证,分布式架构的数据库 已经可以支撑当前互联网企业的大规模、高并发、多模式的业务类型, 金融分布式事务数据库白皮书 中国 信息通信研究院 &中国支付清算协会 2 形成了极具价值的参考经验。 金融 监管机构相关文件指出了 金融 信息系统向 分布式架构转型 的 方向 。 2017 年 6 月,中国人民银行 中国金融业信息技术“十三五” 发展规划指出 在传统金融机构 在新技术应用和分布式架构转型方面 进展较慢,提出在“十三五期间”,要“在巩固集中式架构安全稳定 运行的基础上,综合成本、效率、资源等方面,以业务适用性为原则, 研究分布式架构应用的可行性”。 2016 年 7 月,原中国银监会发布 中国银行业科技“十三五”发展规划监管指导意见 (征求意见稿) 也明确提出,要“提升技术架构的精细化水平,基于开放性强、透明 度高、适用面广的信息技术提升架构设计和管控能力,鼓励合规使用 开源技术和正版软件,鼓励使用创新的分布式架构。” (二) 分布式数据库 发展历程 数据库 (Database)是按照 数据结构 来组织、 存储 和管理数据的仓 库,它产生于距今六十多年前,随着 信息技术和市场的发展而不断演 化。从分布式化角度,目前已经 历经 4 个主要的技术 发展 阶段 ,即分 析型系统与事务型系统分离阶段、硬件提升带动数据库能力阶段、非 关系型数据库发展阶段,分布式事务数据库发展阶段。本白皮书 同时 预测未来分布式数据库将会朝着分析事务混合型技术阶段演进。 金融分布式事务数据库白皮书 中国 信息通信研究院 &中国支付清算协会 3 图 1 分布式数据库发展历程 首先 在 1960 年代 , 数据管理系统已经得到了一定程度的应用 。 伴随着关系数据库理论和技术的诞生和普及,以最初的技术创始和发 展者为主的 IBM 和 Oracle 公司及相关的数据库科学家和研发人员 逐渐开始在各种数据库学术及产业会议上,使用联机事务处理 OLTP (Online Transaction Processing) 来定义关系数据库的主要应用 场景,于此相配套产生了针对分析型业务场景的定义,即联机分析处 理 OLAP (Online Analytical Processing)。这样的理论定义共识和 产业标准公司,使得市场在应用关系数据库的时候,有了清晰的应用 场景区分的定义。从而对于关系 型 数据库本身的技术分类和专业化, 场景化方向发展,起到了巨大的推动作用。 相应的 OLTP 与 OLAP 业务 场景对比如下表所示。 表 1 OLTP 与 OLAP 对比 OLTP OLAP 时延要求 实时 大部分不需要实时 业务类型 高频的海量小事务 低频的大规模数据分析 保障能力 实时高可用能力 可以适当降低高可用特性 金融分布式事务数据库白皮书 中国 信息通信研究院 &中国支付清算协会 4 并发特性 大用户量、高并发 小用户量、低并发 热数据特性 热数据随机分布 热数据集中分布 索引特性 索引依赖 大部分不依赖 数据管理 需要生命周期管理 不需要生命周期管理 至此产业内形成了关系数据库体系和非关系数据库两种主要应 用场景的清晰的划分。数据库理论体系 、 工程化及产业体系,在关系 数据库的基础上,针对这两大场景,开始了半个世纪的理论和技术实 践创新。并围绕着这两个场景,产生了细分领域和细分技术,使得关 系数据库产业 得到 技术专业性的革命性的提升。因 IBM 和 Oracle 等 公司 在商业上的推动策略,早期绝大多数关系数据库 管理系统均 针对 OLTP 联机事务处理场景 研发 ,典型的 OLTP 场景包括银行核心事务 和交易,零售核心数据处理等。 其次 从 1990 年代开始,随着互联网的崛起,海量数据的处理, 海量数据的计算和分析需求越来越普遍,在各种计算机应用场景中, 对于关系数据库系统不断提出新的挑战和要求,关系数据库系统技术 面临着理论升级和技术升级的迫切需求。 此时关系数据库主要依靠纵 向提升数据处理硬件能力上限,即“ scale up”方式,满足逐渐增高 业务场景需求。 接下来 2000 年代 , 随着 谷歌公司 三篇围绕大数据相关的论文的 发表以及以 Hadoop 技术为代表的非结构化大规模数据处理技术的 崛起,在 OLAP 领域,数据库系统似乎找到了如何在海量数据,海量 增长,性能,维度等多方面要求下,突破原有单机物理限制,迈向以 分布式处理为核心思路的进化方向。这得益于对传统关系数据库的数 金融分布式事务数据库白皮书 中国 信息通信研究院 &中国支付清算协会 5 据模型的 重新认识 、 挑战和取舍。在一段时间内,包括大数据在内的 NoSQL (Not Only SQL) 思想和技术大行其道。其解决大规模数据管 理,操纵和处理的核心思路是: a) 利用 X86 架构的计算设备横向扩展,突破单设备物理限制 ; b) 妥协甚至抛弃关系 型 数据库 管理系统 的关系模型,聚焦在这 对非结构化数据模型下的数据处理需求。 而在联机事务数据库 OLTP 数据库 领域,利用产业界已有的分布 式计算和存储体系,横向突破 单机本身的 计算和存储 容量 限制则成为 一个非常有挑战性的课题。这些问题集中在: a) 遵从 现有的关系数据模型遵从的前提下,在一个分布式架构 中, 如何 实现标准数据库事务处理的原子性,一致性和完整 性 ; b) 如何在分布式系统的 CAP( Consistency、 Availability、 Partition tolerance) 约束下,达成对业务一致性和可用 性的平衡 ; c) 如何建立性能和存储这两个核心的 OLTP 数据库 诉求的设计 策略。 综上所述,分布式事务数据库的发展,是 在 传统联机事务关系数 据库 基础上, 遇到了比联机分析处理数据库 OLAP 数据库 更具有挑战 性的来自理论和工程实践的要求。而业界在实现分布式事务数据库技 术的历程中也经过了若干的技术演进阶段,采用了不同的思路和手段。 经过 10 多年的数据库学术界和产业界的共同努力,业界通过将分 金融分布式事务数据库白皮书 中国 信息通信研究院 &中国支付清算协会 6 布式计算这个独立学科与数据库学科的有机结合,交叉影响和推动 。 到今天 为止 ,新一代分布式事务数据库无论在理论体系和工程实践上 已逐步完善和健全,成为下一个 10 年数据库大发展的基石。 ( 三 ) 分布式事务数据库的核心属性和能力 目 前 , 业 界 还 没 有 分 布 式 事 务 数 据 库 ( Distributed Transactional Database)的权威 定义 。本白皮书认为,分布式事务 数据库应具备的属性和能力可概括如下: ( 1) 3 大核心属性 : a) 事务数据库属性。即数据库核心数据逻辑管理模型具备事 务能力,遵从完整的 ACID(原子性、一致性、隔离性、持 久性) 属性要求 ; b) OLTP 联机交易能力属性。 即能够完整处理联机事务处理 负载的 关系数据库管理系统 ; c) 分布式架构属性。计算和存储均通过分布式技术分布于不 同的节点上。 ( 2) 6 个核心能力: a) 计算和存储能够 基于 X86 等工业 标准硬件 实现 ; b) 遵从事务 数据库 的关系模型,完全满足事务的 ACID 的要 求 ; c) 支持高并发 OLTP 工作负载 ; d) 原生支持标准的 SQL (标准查询语言) 数据操纵界面 ; e) 自动化故障自愈与切换的 高可用性保障 ; 金融分布式事务数据库白皮书 中国 信息通信研究院 &中国支付清算协会 7 f) 支持跨数据中心站点级别的集群 弹性 横向水平 扩展能力 。 ( 四 ) 分布式事务数据库的技术架构 业界在这几个方面通过各种尝试和技术手段,不断进行问题求解 和进化。数据库理论界,陆续的提出新的数据管理模型,试图 根本解 决相关问题 。而数据库产业界,通过各种工程化研发手段,在数据库 的设计架构上寻求突破,综合过去 10 年内,在分布式事务数据库领 域的学术和产业界工作,可以梳理出 以下几种 发展 方向 : 表 2 分布式事务数据库技术方案 一级分类 二级分类 三级 分类 特征 典型 产品 基于单机 事务数据 库 基于 业务改造 业务层人为实现分布式相 关特性,对业务层强侵入 基于 Oracle 的 业务流程改造 基于 中间 件改造 嵌入应用层 的中间 层 实 现分布式相 关特性 对业务层一般侵入 开源 TDDL 独立的中间 件实现分布 式相关特性 对业务层弱侵入 开源 MyCAT 基于新型数据库理论 新型计算存储算法 及工程 实现分布式相关特性,对 业务层弱侵入 谷歌 Spanner 1、 基于单机事务关系数据库的业务分布式事务改造方案 利用原有单机事务处理数据库的成熟度优势,通过在独立应用层 面建立起数据分片和数据路由的规则,建立起一套复合型的分布式事 务处理数据库的架构。 此类方式需要 DBA( Database Administrator) 手动控制应用流量的分发和管理,业务层侵入较严重,但能够缓解单 金融分布式事务数据库白皮书 中国 信息通信研究院 &中国支付清算协会 8 一集中式数据库存储和计算能力不足的劣势。 图 2 基于单机事务处理系统的分布式架构 2、 基于单机事务关系数据库的分布式管理组件方案 将原有的单机事务数据库的引擎层设计架构 进行改进 ,利用 独立 的分布式 控制 逻辑单元 实现自动路由策略,同时通过 一致性方面的配 套理论和算法,解决分布式事务数据库的一致性问题 。主要有嵌入式 中间件方式与独立中间件方式 两种实现方式 。 嵌入式中间件方式,以 DAL( Data Access Layer,数据访问层) 管理数据分片规则和路由策略。这里的 DAL 层并非独立的中间件,更 近似于嵌入业务方的中间层模式,通常以 Jar 包方式提供给应用系统 进行调用。这里以开源 TDDL 架构为例。 金融分布式事务数据库白皮书 中国 信息通信研究院 &中国支付清算协会 9 图 3 开源 TDDL 架构 示意 独立中间件方式。以代理 服务器 机制管理数据分片规则和路由策 略。中间件通常为独立逻辑或物理处理系统结构,与业务层和数据存 储计算层隔离,聚焦数据分布管理功能。这里以开源 MyCAT 架构为例。 图 4 开源 MyCAT 架构 示意 3、 最新 分布式数据库理论和工程实现架构 金融分布式事务数据库白皮书 中国 信息通信研究院 &中国支付清算协会 10 该类 数据库 通常 由数据库驱动、计算节点集群、数据节点集群、全 局管理节点 四 个部分组成。数据 的多个副本 按 定制化或自动优化的 策 略存储在数据集群的多个节点上,数据节点之间不共享数据 ,各副本 之间通过自动一致性算法实现同步 。计算节点负责分布式查询处理和 全局事务控制。全局管理 节点 是实现分布式事务一致性 和维护分表分 区、拓扑关系 的必要部件。节点之间通过高速互联的网络通讯,完成 对应用数据请求的快速处理和响应。 抽象该类数据库架构图如下所示。 图 5 基于新一代理论的分布式架构 ( 五 ) 集中式事务数据库与分布式事务数据库对比 此处从几个大致的方面对分布式事务数据库与集中式事务数据 库进行一个大概的对比,从而明确分布式事务数据库相对现有集中式 事务数据库的优势和区别 。 注明此处的分布式事务数据库指代能够 实 现自动化分布式相关特性的技术方案,不包含手工实现分布式相关控 金融分布式事务数据库白皮书 中国 信息通信研究院 &中国支付清算协会 11 制的技术方案。 表 2 集中式与分布式对比 1 集中式事务数据库 分布式事务数据库 业务支撑能力 经济性 软硬件价格昂贵 合理可控 灵活性 /兼容性 应用 新业务限制较多 灵活方便 扩展性 /伸缩性 只能垂直扩展 可以大规模水平扩展 可用性、一致性和可靠性 可用性 存在单点隐患 分布式备份 一致性 /可靠性 单机事务可靠 强 /最终 一致性保障 运维和故障恢复能力 维护性 简单集中管理 需要实现自动化管控 业务恢复 异步备份切换 无感知自动切换 二、 金融行业事务数据库现状概述 (一) 金融行业 业务需求分析 当前,随着普惠金融、数字金融的快速推进,数据能力 已经 成为 金融 机构 在新时代业务 能力的重要抓手。 与此同时, 移动互联网和电 子支付业务的蓬勃发展,给 金融行业的典型应用场景,例如核心账户 与账务交易、在线支付 /移动支付交易业务、 实时交易监控与指标分 析 等 ,带来了新数据形态下 金融系统 能力需求。 一是金融行业的数据急剧增长,这对数据存储和管理提出了更高 要求。 以大型商业银行为例,通常拥有成百上千个业务系统以及上亿 用户的海量数据,且数量呈现指数 级增长,从 TB 级别增加到 PB 级 1 参考金融级分布式架构公众号集中式架构与分布式架构比较文章 金融分布式事务数据库白皮书 中国 信息通信研究院 &中国支付清算协会 12 别,未来很快就会增加至 EB 级别,这些都需要有效的管理以及实现 实时访问。 二是金融行业对 业务连续性能力 更加重视。 当前,金融行业对 IT 端安全可控要求不断提升,在确保数据不丢失的同时,还要做好数据 的容灾备份以及核心数据系统的 “双活 ”, 即在两个数据中心实时进行 备份,一旦失去一个中心,所有业务可以及时切换中心继续运行。 三是需要面临高并发业务和高用户量带来的系统压力。 随着互联 网金融业务的开展,金融行业用户量和用户自身应用权限不断增加, 持续面临高并发业务和高用户量带来 的系统压力。比如,过去银行主 要通过柜面接收账单查询,现在则主要依托移动端用户自助查询,在 某一峰值的操作量就可能超过过去一整天业务操作量的总和。 四对移动应用响应速度要求更快。 在移动互联网用户应用需求迅 速增加的背景下,用户对移动应用的响应速度有了更高要求,移动端 响应必须做到秒级以下。除此之外,金融行业自身也需要提升数据技 术能力和业务价值,增强自身运营管理能力。 五是技术层面的国产化需求。 近年来,金融行业在技术方面正在 积极进行国产化改造。金融业在稳定性和安全性上对数据产品要求近 乎严苛,但海外产品和开源技术不能 完全满足国内用户需求,所以亟 需能满足核心系统需求的真正国产 自主 数据 库 产品。 ( 二 ) 金融 数据库系统现状及痛点分析 数据库系统 作为 IT 基础架构 的重要组建 , 在几十年的发展过程 中,已经成为 上层金融业务架构高效建设与发展的支撑组件, 以及 顶 金融分布式事务数据库白皮书 中国 信息通信研究院 &中国支付清算协会 13 层愿景和战略顺利实施的重要保障。 在数据库技术生态和服务体系发 展过程中,金融行业内逐渐形成以集中式架构事务数据库为主的格局。 首先在硬件方面,以 IBM、 HP 为主的大型机和小型机拥有较大 的市场份额。 其中根据金融机构自身规模及业务的不同,各种硬件产 品占比有较大差异。在国有大型银行中 , 以 AS390 为代表的大型机 能够达到一定数量占比, 数量在 百 台左右, 用于保障现有业务的性能 及稳定性。而在中等规模的股份制银行或城商行中,业务量相对国有 大型银行 较小 ,同时成本影响因子有所提升,故以 AS400 为代表的 小型机为主要硬件机型,数量在千台以下级别,负责绝大部分金融业 务,部分银行也会同时配置数量较少的大型机用于核心业务的处理。 同时,各银行仍会使用一定比例的 X86 服务器,用作外围业务的支撑 扩展。 其次在软件方面,目前各类业务主要运行在以 Oracle、 DB2 为主 的商用数据库软件系统上。 据统计,各类数据库在金融体系内占比如 下图所示。其中, Oracle 以其稳定性、功能黏性、服务保障体系完善 性占据大比例市场份额,而 DB2 以一体机捆绑销售方式,也根植于 银行现有数据库体系中。而开源 MySQL、 PostgreSQL 数据库近些年 开始服务于 大量互联网核心业务或传统 金融 外围业务 ,正在加速扩张。 同时随着大数据业务在金融领域的发展, Greenplum、 Teradata 等 MPP 和数据仓库类系统也开始占据一定比例。 金融分布式事务数据库白皮书 中国 信息通信研究院 &中国支付清算协会 14 图 6 银行各类数据库占比 2 但由于新时代下金融业务的发展更新,数据库技术能力也面临多 方面的发展 需求 。 第一,亟需提升管理弹性。 当金融 机构 系统内数据量急剧增大时, 系统需要弹性地扩容以应对 PB 级别以上的数据管理,这种弹性容量 调整可以实现让所有数据保持在线。 第二,亟需提升 处理 性能。 针对客户的实时需求,金融 机构 数据 库系统需要满足高并发业务操作需求,实现海量数据超高性能读写以 及实时访问查询。 第三,亟需升级 可靠性 能力 。 数据安全不仅仅是简单的备份,除 了实现数据的持续高可用外,还应支持异地容灾甚至数据中心“双活”, 进而保障数据安全。 第四,亟需满足多类型数据处理需求。 在跨业务的融合中,亟需 实现对多模数据的统一管理,从结构化数据到半结构化数据再到非结 构化数据,进而实现不同类型的数据统一融合管理,从而大大提升系 2 数据来源:中国信息通信研究院云计算与大数据研究所 金融行业云计算技术调查报告 金融分布式事务数据库白皮书 中国 信息通信研究院 &中国支付清算协会 15 统效率。 第五,亟需 增强 开发运维 能力 。 随着应用的增多,更需要强大数 据库运维能力的支持,进行数据分区管理,实现业务有效隔离。同时, 保持系统的弹性、兼容性,大大简化运维开发。 第六,亟需有能力支撑核心业务系统的自主可控产品。 除了数据 安全的要求和“技术先进”,对于核心业务,更重要的是对产品代码 级具有控制力,这样可以保证产品针对用户共性需求不 断进行迭代更 新,也带来产品稳定性以及高效强力的技术支持。 ( 三 ) 分布式事务数据库 成为 转型必由之路 随着互联网行业在自身业务场景的探索与实践, 分布式事务数据 库 开始 广泛应用在各种高并发,大数据量,联机事务工作负载( OLTP 及 OLTP/OLAP 混合负载 ) 要求强一致性且需要强大横向扩展能力 的业务场景。 分布式事务数据库采用多种模式实现数据的分散存储,将数据库 压力分散到不同服务器上。与集中式事务数据库相比,分布式事务数 据库可以均衡交易负载,并采用高并发的架构提升系统的交易处理能 力,而其统一的资源管理机制也使得数据库的性能扩展不再是设备的 替换式升级,而是通过增加存储或计算节点来实现弹性升级,极大地 节约了升级成本。 概括应用分布式事务数据库的几大优势如下: a) 高性能:分布式事务数据库能轻松面对海量数据和高并发的请 求处理,做到数千以上并发、数万以上连接、数万 TPS、数十 金融分布式事务数据库白皮书 中国 信息通信研究院 &中国支付清算协会 16 万 QPS 等; b) 弹性扩容:分布式事务数据库通过提 供在线扩容、在线迁移等 多种弹性扩容方式,应对业务变更及不定期扩容缩容要求; c) 多中心:分布式事务数据库 能够 实现单个机房内数据同步并保 持数据一致 以及 数据机房级容灾, 主要 借助分布式数据库的跨 数据同步组件 技术 ; d) 低成本:分布式事务数据库无需引进昂贵的存储设备,国产标 准化 x86 服务器, SATA、 SSD 本地硬盘存储即可, 同时 对于 网络要求带宽 也适度降低 ; e) 无绑定:当前分布式事务数据库在国内外蓬勃发展,相应的服 务提供商数量正在快速增长,所以并未出现严重的服务厂商绑 定现象,应用方选择权扩大。 根据上述分析, 分布式事务数据库能够解决当前 金融业 数据库无 法解决的问题,故金融业数据库向分布式转型已经成为必由之路。 三、 金融关键业务对分布式事务数据库的要求 为满足金融关键 业务场景的核心诉求 ,分布式事务 数据库 首先必 须 有准确的产品定位、可持续演进的整体架构、清晰的应用场景。 当 前业内尚未对分布式事务数据库的基准能力拥有统一认识, 大部分 企 业仍然 使用 传统事务数据库能力 范围对 分布式事务数据库 进行 能力 适配 和验证, 这种方式 无法适应新环境下分布式事务数据库的选型、 规划、应用。 中国信息通信研究院云计算与大数据研究所与 中国 支付清算协 金融分布式事务数据库白皮书 中国 信息通信研究院 &中国支付清算协会 17 会 金融科技专业委员会 共同成立金融分布式事务数据库工作组,联合 金融机构、研究组织、产业专家共同制定大数据产品 分布式事务 数据库 第一部分:技术要求,梳理了分布式事务数据库 6 项 核心 能力要素,为分布式事务数据库的应用与发展提供 了 理论基础和 依据 。 (一) 基本功能 首先,金融分布式事务数据库应该能够具备事务数据库系统的传 统基本功能,从而在最大限度简化当前业务系统和业务人员的适配工 作的同时,保障数据库业务的正常运转。同时,金融分布式事务数据 库需要能够体现分布式基本能力,为性能扩展和新架构运维等做好技 术准备。 基本功能 指标 包括( 1)通用数据类型、操作符、字符集、函数、 SQL 语法 等 的支持能力( 2)数据分片操作、 分区操作、 分布式事务、 隔离级别设定的支持能力( 3)执行计划、表分区、索引的支持能力 。 ( 二 ) 兼容能力 兼容能力代表了金融分布式事务数据库与现有业务系统和通用 数据库硬件、软件工具的衔接能力,这一项衡量了金融分布式事务数 据库落地 后 对现有业务生态造成的影响大小。 兼容能力 指标 包括( 1)支持 ODBC、 JDBC 等通用连接方式的连 接( 2)数据类型隐式转化能力( 3) 传统数据库中 异构数据全量迁移 能力( 4)能够使用其他数据库进行远端连 接操作的外部表能力( 5) X86 等主流硬件的支持能力 。 金融分布式事务数据库白皮书 中国 信息通信研究院 &中国支付清算协会 18 ( 三 ) 管理能力 完整而友好的管理能力能够为金融分布式事务数据库运维工作 提供支撑,从而使相关数据库 DBA 管理人员、数据库业务负责人、 相关应用支撑团队拥有对数据库的良好掌控能力。 管理能力 指标 包括( 1)友好的安装部署、配置管理、升级能力( 2) 能够进行节点和数据的实时监控、统计分析,并以多种形式通知告警 ( 3)能够具备无死锁或死锁处理能力( 4)能够对系统节点和数据的 元信息一致性检测( 5)具备在线 DDL 命令、管理命令支持的能力( 6) 能够对各类日志进行管理、查看、处理( 7)能够对数据以定时、增 量、全量等多种方式进行备份和恢复工作 ( 8)能够对集群内资源进 行定制化隔离 分组 。 ( 四 ) 高可用能力 金融业务的稳定性受到了监管机构的严格规定,所以金融分布式 事务数据库作为核心业务的基础支撑设施,高可用能力必须得到保障, 从而满足金融企业的业务和监管要求。 高可用能力 包括 ( 1)电源掉电、硬盘故障、网络闪断、机房 失联 等硬件事故下的数据库服务 能力 ( 2)主副中心数据备份和同步过程 中故障下的数据库服务能力( 3) CPU 资源过载、 I/O 资源过载、内存 资源过载、磁盘空间过载等操作系统软件层事故下的数据库服务能力 ( 4)数据文件损坏、数据节点损坏、系统表损坏等数据库服务故障 下的数据库服务能力( 5)应用连接丢失、外围系统错误引发的应用 金融分布式事务数据库白皮书 中国 信息通信研究院 &中国支付清算协会 19 故障下的数据库服务能力 。 ( 五 ) 扩展能力 分布式事务数据库必须提供 在线 scale-out 水平 扩展能力 。 在客户 业务扩容过程无明显感知的基础上,满足客户业务增长的需求,解决 现有系统在磁盘容量、性能等方面逐渐出现的瓶颈问题。 扩展能力 具体指标包括( 1) 读写 业务 的计算 资源能够在集群中各 服务器间进行 自动均衡 的能力 ( 2) 存储数据 能够按照业务方定制化 需求进行均衡的能力( 3)集群的在线扩容 能力, 从而 在不影响业务 正常运行 情况下解决资源使用瓶颈( 4)集群的在线扩 容、 缩容能力, 从而在不影响业务情况下达到资源的合理规划利用 。 ( 六 ) 安全能力 完整的安全能力能够使金融分布式事务数据库稳定承担业务负 载,防止敏感数据泄露, 杜绝 误操作 行为 ,从而防范金融风险的发生。 具体指标包括( 1)对数据库中库级别、表级别数据操作的权限验 证能力( 2)对接入数据库用户身份认证能力,能够实现白名单、黑 名单审核( 3)对数据库内各类操作的审计回溯工作,从而能够定位 分析关键问题( 4) 具备数据库流量控制能力,从而防止某突发业务 流量造成数据库系统故障,影响其他业务的正常运行 。 四、 分布式事务数据库对金融业务设计的改变 金融业务架构 从集中 式架构 转型为 分布式 架构具有重大 意义 。 在 转型 过程中, 底层 数据库存储也从原先的单节点的商业数据库变成 多 金融分布式事务数据库白皮书 中国 信息通信研究院 &中国支付清算协会 20 节点分布式数据库。相对于分布式 系统中的其他组件, 分布式数据库 作为底层基础架构,具有强重要性和较大改造压力。 本章力图分析分布式数据库改造后将会对现有金融信息系统设计 模式带来的变化,从而指导相关人员从业务设计和实际操作等方面完 成意识认知和过渡。 (一) 业务系统组件化、服务化改造 对 业务系统进行分层解耦, 确定 应用层、服务层及数据 层的 边界 , 以适应 系统弹性扩展的需求 。对承上启下的 服务层 进行 服务化改造, 提供 “ 去 中心化 ”的服务 调用 , 并以 “ 弹性 ”扩展 计算能力为 主要衡量 指标。 ( 二 ) 数据库模式设计,满足扩展需求 在 数据库模式设计的过程中, 主要 关注 如下 几个方面: 扩展性需求 。 随着 业务的快速发展,数据量 会 急剧增大 ,在 模式 设计的时候 要充分 考虑 , 通常要对 数据 进行分区,比如按照时间做 Range 分区 、 按照 记录 的某个特征值做 Hash 分区。 保持 每个分区的 大小适中, 对系统 的负载均衡 、调度 以及扩展性都有帮助。 性能需求。 分布式 数据库系统的节点数 通常 从几个到 几 百个不等 , 对 数据 的 访问需要路由 。 在 进行数据库 模式设计的时候, 需要结合 数 据常用的访问模式,来确定分区键, 以便根据 SQL 语句就可以 准确 地路由 , 减少二次转发带来的性能损失。 同时,尽管 大多数的分布式 数据库系统都支持分布式事务, 但是 相对于单机事务, 性能有 一定的 金融分布式事务数据库白皮书 中国 信息通信研究院 &中国支付清算协会 21 损耗, 所以在 模式设计的时候, 也 需要考虑 不同 表数 据的亲和性, 把 可能 会被 一起 访问的数据放在 同一个 节点上, 减少 分布式事务的比例。 此外 , 由于 多 维度 访问数据的需求,有可能需要 创建 全局索引, 相对 于 单机 数据库 系统 而言 ,在分布式数据库中维护全局索引 会 产生分布 式事务, 对 性能也有较大影响 , 所以要平衡 全局 索引带来的查询性能 提升和维护成本 增大 。 全局一致性快照 。 有 的分布式事务数据库系统只实现了 单个 节点 上的一致性快照,而没有实现全局的一致性快照 , 在 一条 语句中访问 位于不同节点上的数据时, 这些 数据 可能 不属于同一个快照点。 这种 行为的一个后果是无法保证 不同 连接上操作的因果序, 会给 业务 带来 一定的困扰。 为 避免这种情况, 在 模式设计的时候 告诉数据库 系统 相 关 联数据的 亲和 性,以便数据库系统在调度的时候 将这些 数据聚合起 来。 ( 三 ) 数据库 SQL 能力评估及业务开发注意事项 目前 分布式 事务 数据库系统并 未 形成统一标准, 产品 之间 SQL 能 力差异性比较大 , 而传统 金融 业务 开发多 基于 DB2、 Oracle 等商业数 据库系统, 或多 或少利用了 商业 数据库 特性 , 这些 特性在分布式事务 数据库中 有 的是功能不支持,有的是性能 上 有损耗, 需要 在设计中加 以考虑,并进行适当取舍。 典型的特性 如下: Sequence(序列) 支持。 有些业务使用 数据库的 sequence 功能 来 产生 记录的唯一键, 是否 支持该功能以及 在 分布式系统中 获取 sequence 的 性能对 系统有 较大的影响。 金融分布式事务数据库白皮书 中国 信息通信研究院 &中国支付清算协会 22 强一致性事务 及事务 隔离 级别支持。 对于 金融 核心 业务, 必须 有 强一致 性 的事务支持 。分布式 关系数据库 通常 都支持 read committed (读已提交) 隔离 级别,如果有其他隔离级别的需求 , 需要在系统设 计过程中结合数据库能力加以考虑 。 复杂 查询支持。 相对于 单节点数据,分布式数据库 优化器 生成 最 优 计划 面临 更大挑战 。 对包含多表联接 以及复杂 子查询的语句, 能否 确定 合适 的联接 顺序, 将 联接和计算更多的下降到 每一个 节点,减少 节点间的数据传输, 不仅仅 是功能性问题,也是性能问题。 ( 四 ) 系统容量评估及弹性方案 分布式事务 数据库 的 一个重要 特性 是 扩展性 好 , 可以方便地对系 统容量进行弹性 伸缩 。 在 系统设计的 时候 , 要 对系统容量进行 评估 , 以便 确定 数据库 系统的 硬件 资源需求 。 在 容量 评估过程中, 除从 系统 总 的 TPS/QPS(每秒事务能力 /每秒查询能力) 角度去 估算以外,还要 关注热点账户等关键特征, 以便 在 资源和负载均衡等方面 有 一个更全 面的考虑 。 在完成对 日常场景 的 容量评估 后 , 还 需要对诸如 “双 十一 大促 ”、 “春节 红包 ”、 “秒杀 ”等特定事件 触发的 流量 峰值规划弹性方案 , 上述场景大多 是有计划的, 可以 提前进行 容量 规划和 根据预估 峰值流 量进行扩容 ; 当该特定 事件 结束后,系统要 相应 地进行 缩容 以便释放 多余资源。 扩容 和缩容都应该是在线 的 ,不影响正常