目前运营商正在各省推进核心系统数据库国产化,案例客户也在积极推进核心业务数据库国产化工作的研究和实验。随着 AntDB 持续研发投入,以及在各领域的上线稳定运行,AntDB 已经具备了替换国外商业数据库的能力。本项目按照对业务影响范围分析,决定先从客户计费系统的清单库着手进行替换。
客户对此次项目的要求如下:产品功能稳定,整体性能提升,需同原来使用的某国外商业数据库在存储过程、语法等方面高度兼容,采取双中心容灾机制,需提供运维工具及配套文档。AntDB 完全符合客户需求,尤其在同该国外商业数据库兼容方面业界领先。AntDB 提供的并不仅仅是一个数据库,而是一套核心产品、一套工具集、一套运维服务体系。
计费系统清单库承载的是每个用户的不同业务的话单,包括流量、语音、短信、彩信、梦网类话单,这些业务话单经过采集、计费、账务等模块处理后输出用户话单明细信息(包含号码、基站、拜访地、费用、产品等),然后记录到 AntDB 中。
该项目中 AntDB 采用了典型的分布式架构,双中心容灾机制,主备中心各有 12 台主机,数据节点 DN1 到 DN6 配置为一主一备。主备中心采用流复制方式同步数据。DN1_1 到 DN6_1 为主节点,其余均为备节点。备数据中心的节点通过级联复制的方式同步数据。通过 ADBMGR 的高可用命令完成切换操作。其架构如图 5-12 所示。

数据库替换并非易事,由于业务数据量大,流程复杂,在项目实施过程中, 项目组投入大量时间精力在数据库性能提升上。项目刚开始测试时,入库单进程单条insert 测试TPS 在 160 左右,远低于生产业务 800 的要求。经团队分析, 认为原因如下:
● AntDB同原数据库的执行引擎不同,且原数据库使用的是性能更好的 小型机。
● AntDB是分布式,而原数据库是单机,分布式数据库的优势在于大数 据量以及高并发。
基于 AntDB 的优劣势,项目组选择扬长避短,考虑使用文件 copy、单条insert 语句插入多个 values,通过提高数据库并发等方式来提高入库性能。经过数轮分析测试,最终采用 copy 协议的批量入库方式,大大提高了入库性能。
同样由于主机性能的差异,AntDB 在 update 千万级大表场景下耗时较原数据库比较长。故开始着手研究 update 操作性能提升方法,单条 update 语句性能很难再提升,将 update 语句放入多个计算节点上执行需要改动框架,且结果未知。基于此情况,项目组讨论认为可以将百万级别以上的大表的 rowid 放入一张表中,再与表的 rowid 关联进行 update,避免一次只执行一条 update, 此方案测试后将原本需要 8 个小时的操作降至了 40 分钟左右,后续又将 rowid 方式改为用 tcid scan 方式,最终操作耗时只需要 30 分钟,性能较原国外数据库获得大幅度提高。
该项目针对业务做了全流程测试,举例如下:
● 计费系统全业务清单入库、错单入库比对测试,根据原数据库和AntDB配置不同的入库流程,对比两种数据库清单、错单入库后各分 表入库数量及总数,入库清单、错单字段格式内容,所得测试结果完 全一致。
● 计费系统各业务话单入库场景功能测试,设置业务场景的不同情况, 观察话单入库后的表数据变化情况,结果符合预期。
● 计费系统话单出库测试,测试AntDB出库文件内容同原数据库完全一 致,出库性能较原数据库有较大提升。采用相同的硬件及配置,在1000万话单场景下,AntDB处理时间仅为原国外数据库处理时间的四 分之一。
完整的功能性能测试通过后,2020 年 10 月下旬迎来了 AntDB 数据库的上线试运行,基于 AntDB 对异构数据库的高兼容度,并且支持同异构数据库并行运行,上线前期与原数据库并行运行,降低了客户担忧。数据库试运行过程中也遇到了一些问题,例如 capes 采集 SQL 报错,经检查是 SQL 投影列中使用多个不带别名的包含中文字符的 decode() 函数,在原数据库兼容语法下导致中文乱码。AntDB 通过修改代码兼容该用法,版本升级后解决问题,也侧面体现出 AntDB 可以基于客户不同的需求做定制化的二次开发。
AntDB 同原国外数据库并行两周后,2020 年 11 月 AntDB 正式接管生产业务,原国外数据库下线。AntDB 数据库正式上线后运行稳定,目前每日处理话单量在 34 亿左右,整体综合性能较原架构最大提升 60%,成本节约 80%。该项目不仅是运营商核心计费系统中一套数据库的替换,更是验证了 AntDB 应对多连接数、高并发场景时,同样值得信赖。在大幅降低客户软硬件成本的基础上,还能实现性能的提升。同时借助 AntDB 分布式易扩展的特性,当企业业务快速发展导致容量不足时,可以低成本,高效率完成扩容,借助独有的HashMap 算法、自研数据复制工具,在线完成数据扩容,对业务无影响,提高了系统的易扩展性。




