华泰证券分布式数据库的探索与应用

本文选自《交易技术前沿》第二十七期 (2017年6月)。前端

管文琦数据库

E-mail :guanwenqi@htsc.com后端

长期以来,Oracle数据库在国内券商业务系统中处于垄断地位,为响应国家“自主可控”的信息安全战略,打破券商行业对Oracle数据库的依赖,华泰证券公司在国内券商中率先大范围使用开源Mariadb数据库代替Oracle商用数据库,承载重要业务生产系统。缓存

2015年,华泰证券正式启动建设开源数据库平台,代替Oracle商用数据库,推行基于X86平台和非集中存储架构的关系型开源数据库建设方案,通过一年多的探索和实践,平台承载了大量重要生产业务系统,成功的支撑了业务的高速发展,华泰证券在积极探索自主可控道路上迈出了坚实一步。安全

1、平台建设背景服务器

国内传统金融行业的重要生产系统主要依靠‘IOE’平台提供技术支撑,即Oracle数据库运行在IBM小型机和EMC提供的集中存储之上。Oracle做为业内关系型数据库的翘楚,具备很强的SQL并发处理能力和良好的性能,优秀的高可用架构和数据安全保障。IBM小型机具备极其强大的单机处理能力,以目前高端的X86 PC服务器能力,也只能望其项背。EMC为表明的集中式存储服务器具备强大的吞吐能力,同时也可以为数据库提供强大的数据安全保证,同时也是RAC等高可用架构中的重要支撑组件。建设基于X86平台和非集中存储架构的关系型开源数据库,就必须达到以下目标:具备相似小型机的强大的处理能力;具备较强SQL处理能力;具备较好的高可用能力和数据安全保障;具备较好的IO能力。多线程

2、华泰证券现有分布式数据库平台架构架构

华泰证券公司选用MySQL的重要的社区版本Mariadb,做为数据库平台的基础组件。并发

一、利用数据库中间件实现水平扩展能力:框架

华泰证券公司开发应用了数据库中间件,实现了数据库的平行扩展能力。数据库中间件是一个实现了MySQL协议的Server,前端用户能够把它看做是一个数据库代理,用MySQL客户端工具和命令行访问,而其后端能够用MySQL原生(Native)协议与多个MySQL服务器通讯。其核心功能是分表分库,即将一个大表水平分割为N个小表,存储在后端MySQL服务器里。

数据库中间件拦截了用户发送过来SQL语句,首先对SQL语句作了一些特定的分析:如分片分析、路由分析、读写分离分析、缓存分析等,而后将此SQL发日后端的真实数据库,并将返回的结果作适当的处理,最终再返回给用户。

经过数据库中间件,能够大大增长数据库的水平扩展能力。经过增长数据库节点,实现处理能力的提高,IO吞吐能力的提升,承载更多的SQL并发,达到支撑业务发展的须要。

二、利用第三方开源Galera技术,实现数据安全及系统的高可用:

互联网行业广泛使用的高可用方案是:以主从复制及在此基础上的多线程半同步,而金融行业对数据要求较高,没法承担数据丢失风险。

通过技术调研,咱们在2015年选择了当时在国内较少使用的第三方开源技术,Galera同步复制技术,做为华泰证券主要的容灾技术。Galera具备先进的设计理念:真正的多主架构,任何节点均可以进行读写、同步复制,各节点间无延迟且节点宕机不会致使数据丢失、没有切换时间、支持InnoDB存储引擎等。

利用Galera技术结合华泰的数据库中间件,咱们建设同城的双活数据中心,经过在同城第三点建设仲裁节点,实现两个主要生产机房能够同时对外提供服务。让任意一个机房由于某种缘由不能对外服务时,第二个机房能够继续对外提供服务。

目前华泰证券已经有大量业务系统使用分布式数据库平台进行业务支撑,包括交易、客户财富、互联网金融等,业务系统单表记录数最高超过30亿条,响应延时保持在10ms之内,最大峰值TPS达到5000,有效支撑了业务的发展。

3、将来规划

随着业务的不断发展,对数据库平台的要求原来越高,数据库中间件加关系型数据库这种数据架构仍有诸多的局限性,怎样更好的支撑业务系统,成为咱们今年来的课题。

随着近年来大数据业务蓬勃发展,其分布式的先进理念获得了整个行业的承认,咱们也在探索如何将大数据的理念融合到关系型数据库中,实现快速的数据库弹性扩展。

通过一年多的技术调研,咱们在内部研究和初步使用了一种基于Google Spanner / F1论文实现的开源分布式NewSQL数据库–TIDB

它主要由三个组件组成:TIDB serverPDTIKV cluster,其逻辑结构以下:

TIDB具备不少特色如:SQL支持(和MySQL兼容的)、水平线性弹性扩展、分布式事务、跨数据中心数据强一致性保证、故障自恢复的高可用等。其中最主要的是:

一、水平扩展

理论上无限水平扩展是TiDB的一大特色,水平扩展包括两方面:计算能力和存储能力。TiDB Server负责处理SQL请求,随着业务的增加,能够简单的添加TiDB Server节点,提升总体的处理能力,提供更高的吞吐。TiKV负责存储数据,随着数据量的增加,能够部署更多的TiKV Server节点解决数据Scale的问题。

二、高可用

高可用是TiDB的另外一大特色,相似于大数据框架,TiDB/TiKV/PD这三个组件都能容忍部分实例失效,不影响整个集群的可用性。根据业务真实场景,搭建了ITDB集群,而且正在进行容灾、性能、可扩展性等测试,若是测试顺利并投入生产,预期将会给数据库在金融领域的应用带来里程碑式的变革。

展望将来,金融科技将进入一个加速发展的时代,对传统金融行业而言,金融科技带来的不只仅是挑战,还有机遇。华泰证券将牢牢抓住时代机遇,冲破国外大型厂商的垄断,借助金融科技实现平台技术转型和创新发展,支撑和促进业务的发展。