文 / 广发证券信息技术部
来源 / 金融电子化
随着信息技术应用创新试点范围不断扩大,能否胜任更多业务场景,是各行各业当前阶段选型数据库的关键。早在 2019 年,广发证券即开启对分布式架构的数据库产品进行调研,并经历了单主从读写分离、多套单机主从的分库分表,以及原生分布式数据库等不同的产品形态。
2021 年底,广发证券通过估值系统应用架构分布式升级,同时使用 OceanBase 原生分布式数据库,落地证券行业首个信息技术应用创新产业估值系统。新一代估值系统为长期业务增长打下坚实基础,同时对行业内估值系统的全面升级改造起到借鉴和推动作用。此次“广发证券基于 OceanBase 分布式架构的新一代估值系统”项目凭借对整个估值核算效率显著提升,以及多项技术创新,荣获“2022 第十三届金融科技应用创新奖”。
单体架构升级为分布式架构
证券行业核心的两类场景分别是集中撮合交易与估值核算处理。由于单体架构先天限制,在容量和性能遇到瓶颈时无法横向动态扩容,制约了这两类场景中系统的整体处理能力。随着业务发展,广发证券估值系统旧有的单体架构和强依赖于 Oracle 特性的计算服务,在清算、核算批量执行时 CPU 已经接近满负荷,单纯依赖提高服务器配置已经无法较好满足业务发展需要,必须从系统整体架构上进行升级改造。
新一代估值系统整体采用微服务技术平台开发,通过以下的改造优化,充分发挥分布式架构的横向能力,实现系统性能整体提升,在大数据量的环境下,大幅降低批处理时间,提高向基金管理人提供估值核算数据的及时性。
-
一是“化整为零”,将原有系统中的大事务分拆为小事务,并实现数据批处理内存化。通过拆解大事务,尤其是拆解大数据量的 DML 语句,确保系统可以并行处理。同时,将原有复杂的数据库 SQL 逻辑,通过数据加载到内存中处理,利用内存低延时的特点,大幅提升处理效率。
-
二是“分而治之”,通过优化表结构设计,使得数据便于分库、分表、分片。优化程序设计,结合单元化的思想,将参数依赖、服务依赖等外部依赖分解,优化处理流程,提升并行效率。
-
三是“化繁为简”,通过简化业务逻辑,适应分布式数据库的特点。通过“异步化+定时校对+补偿”的柔性事务设计,减少甚至避免产生分布式事务,提升系统处理的吞吐量。
-
四是“借力使力”,发挥分布式数据库自身的能力。如分区、表组等特性,多管齐下,降低系统架构优化的设计难度和开发难度,提升研发效率。
另外,金融行业对系统灾备能力有着极高的要求,系统的部署架构设计是对灾备应对期望(RTO 和 RPO)的体现,同时受机房数量、网络情况的影响。广发证券新一代估值系统应用服务采用分布式部署,同时引入原生分布式数据库,需要延续证券行业一贯的灾备规范以及使用习惯。 分布式部署架构天然能够消除机房内单点故障,同时分布式数据库在集群内高可用基础上也实现了集群间的“主备库”,通过物理日志的复制和数据压缩,降低对机房间网络带宽的要求。借助分布式数据库集群内多副本多活,集群间可灵活选择同步强度等级的特点,实现 switchover 计划内切换、failover 故障切换,以及备库独立运行三种灾备切换能力,满足证券行业常见的机房灾备切换、日常演练等要求。
估值系统的原生分布式实践
从数据库整体路线建设的视角看,本次新一代估值系统引入原生分布式数据库,给广发证券带来了基于多租户能力的 DBaaS 体系,即在一套数据库集群内,秒级交付逻辑隔离的数据库资源,快速响应业务对数据库的使用需求,并且租户规格可在线灵活调整,应对不同等级、不同规模的业务系统数据库资源整合。
广发证券在前期选型验证中曾测试过,租户规格的扩展可分为垂直扩展(增加单元资源配额)与横向扩展(增加单元数量)两种,分别应对不同业务场景的需求。对于需要更多计算资源的大事务 SQL,增加 CPU 与内存配额能够支持更大的并行度,从而让数据处理速度跟上数据增长;对于并发数可能增加的在线交易类业务,以及存储容量突破单机瓶颈的 level2 行情数据类业务,则可以增加租户的单元数量,让更多硬件节点共同承载租户压力,应对业务增长。
除此之外,早期分布式形态的数据库产品,通常具备读写分离、分库分表等能力,券商的部分业务场景对这两种使用方式有一定经验,引入新的原生分布式数据库,需要了解类似场景业务如何衔接过渡。
对于读写分离,在 OceanBase 产品体系中,无需额外引入中间件,通过 OBProxy 即可开启“弱读”,将事务以外的 select 请求发到非 leader 的租户副本;在行情、消息推送等读多写少并且存在读写时间差的场景,该功能能够发挥各个数据副本的算力,提升系统性能容量上限;对于分库分表,OceanBase 的分区表模式与早期的分库分表方案有些许相似,也有其特有优势。
-
相似之处在于:对于单个表而言,需要指定分区键,该表的数据才具备被分布到不同硬件节点的条件,由应用根据实际情况决定是否需要分布式。
-
不同之处在于:OceanBase 本身是一个分布式形态的数据库,因此具备全局统一的视图,数据能够在不同节点分布,正是因此具备了表组(TableGroup)能力,以及在分布式架构下,能够支持生成复杂执行计划和存储过程。
扩大应用场景,全面提升基金运营核心能力
广发证券此次估值系统信息技术应用创新产业试点是全功能完整试点,实现了一套系统对全产品类型的估值核算的统一化管理,支持多市场、多品种、多币种核算,同时实现自动估值服务,全面提升估值核算的自动化水平和整体运营效率,提升基金运营业务的核心竞争力。需要强调的是, 该项目真正验证了信息技术应用创新产业加速核心业务系统自主可控的可行性,为解决我国“卡脖子”问题,新增了一条行之有效的实践路径。
打通核心系统全栈信息技术应用创新产业的最后一公里。我国推进信息技术应用创新工作已有一段时间,从办公系统到一般业务系统,再到核心系统,从芯片到服务器、网络设备等,以点带面、逐步推进。尤其对于核心系统的数据库,存储着企业最重要、最关键的数据,是整个企业的生命线,不容有失。因此,核心系统的信息技术应用创新产业工作,需要整个企业的 IT 部门、业务部门提升觉悟并达成共识,持续不断地坚持投入,稳步推进。
树立 IT 架构转型的典范工程。新一代估值系统应用层采用分布式架构设计,使用微服务技术开发,实现系统的横向弹性扩容能力,应对交易请求高峰低谷特征明显的证券业务;在数据持久化方面,通过原生分布式数据库,实现数据读写分离、分库分表、弹性扩展,多副本冗余的能力。通过一系列的改造和优化,解决了旧系统的单点瓶颈和对数据库特性的强依赖,使得系统具备了高性能、高容量、高可靠的特点。
通过系统从应用层到数据层的整体分布式改造优化,得益于服务器资源的横向扩展能力和并行度的提高,在测试环境的条件下,将整体跑批时间由 1 小时缩短为分钟级,提高了估值核算数据的及时性。
以下是压测调优的环境和效果对比:
新一代估值系统能够快速完成跑批清算,并且具备横向扩展能力,这直接提升了广发证券的基金运营效率,同时估值系统的下游关联系统也能够更快获取到所需数据,并且随数据量增长带来的跑批慢问题可通过分布式应用和原生分布式数据库的扩容解决,让业务开发人员能够专注于新功能实现,最终共同更好地服务于业务,树立了 IT 系统架构转型工程的典范。
本次估值系统信息技术应用创新产业的试点落地,让广发证券了解了 OceanBase 的使用特点与运维方式。后续,我们将会把分布式架构优化经验和分布式数据库的技术应用于更多业务场景,有效解决容量与扩展性的瓶颈,提升基金运营效率,降低运营成本,最终提升广发证券对客基金运营服务能力的综合水平。