TDSQL进入第四阶段。
作者|赵健
作为三大基础软件之一,国产数据库一直是备受关注的领域。
【资料图】
3月30日,腾讯云数据库TDSQL宣布了最新进展:在国际事务处理性能委员会(TPC,Transaction Processing Performance Council)的TPC-C基准测试中打破了世界纪录。
TPC-C是全球数据库厂商公认的性能评价标准,是OLTP数据库(交易型数据库)里唯一的国际权威榜单,被誉为数据库领域的“奥林匹克”。它模拟超大型高并发的极值场景,同时有一套严格的审计流程和标准,对数据库系统的软硬件协同能力要求极高。
此前,该基准测试的世界纪录保持者为蚂蚁集团旗下的自研数据库OceanBase。
消息宣布之后,「甲子光年」也受邀采访了腾讯云数据库技术负责人潘安群、腾讯云数据库总经理王义成,来了解下腾讯云数据库本次打榜背后的故事。
刷新世界纪录,对腾讯云数据库意味着什么?
1.新的世界纪录如何诞生?
TPC-C模拟的是电商交易系统,核心指标有两个:tpmC(每分钟的处理事务数)与性价比。腾讯云数据库技术负责人潘安群介绍,本次打榜有四个亮点。
一是tpmC成绩刷新世界纪录,每分钟交易量达到8.14亿笔。
每分钟8.14亿是什么概念?以中国工商银行、中国农业银行、中国银行、中国建设银行四大行为例,业务系统峰值预计在4小时内产生大约20亿笔交易。如果换算成每分钟,只有800万左右,离8.14亿还有很大的差距。换句话说,这个性能足以支撑中国所有大规模应用性能的要求。
二是显著的成本优势,单笔交易的价格为1.27元,接近同类产品的1/3。
潘安群提到了降低价格的三个方式:首先,TDSQL通过软件优化提升单机性能,降低硬件成本;其次,使用公有云的弹性资源进一步降低成本;同时,公有云上系统自动化和规模化的运营也能帮助降低成本。
单纯的实现高性能并不难,只需要不停地叠加机器就好了,难的是保证高性能的同时也能降低成本。TDSQL这一次同时实现了两个指标的世界第一。
三是在超大规模集群下的性能稳定性。
腾讯云这次构建了将近2700台机器(包含1650台物理机、1000台虚拟机),在此基础上持续运行8个小时,tpmC的波动率一直处在0.2%以下,远远低于官方要求的2%,保障了超过8600亿总事务、4万亿条订单详细信息不出错。
潘安群介绍道,用200台机器测试,数据不会出任何问题;但如果扩展到一两千台机器,理论上会发现各种各样的硬件问题。按照经验,在整个腾讯集团百万台服务器里,每2000台服务器持续工作8小时,就会产生1~2台的故障率。
打榜时,腾讯云数据库团队一共做了12轮8小时的压力测试,只有最后三轮没有出现故障,前面都在做优化,“最后几天攻坚时上厕所都是跑着去的”,并最终实现了0.2%的波动率。
潘安群表示:“这是一个非常震撼的数据,因为公开资料中其他数据库厂商大概能做到1%左右。这也体现了这么多年腾讯云数据库在产品架构、分布式、水平扩展、资源调度方面的优势。”
最后一点是在超大规模集群下的高可用和分布式容灾能力。
1个小时的容灾场景测试,进行了2次随机断电物理机器和1次destroy腾讯云实例的模拟故障,模拟故障之后,18秒完成HA(高可用性)切换,大盘整体影响微乎其微。
HA切换是指当数据库系统出现故障时,可以在很短时间内自动切换到备份系统,以保证业务的正常运行。金融行业对数据库的要求一般是分钟级切换,如果一家全国性银行故障时间超过30分钟,银行的技术负责人必须去银保监会解释原因。
腾讯云数据库总经理王义成表示:“对于金融机构的核心系统故障切换,一般公有云厂商对外承诺的时间是30秒。对比而言,腾讯云数据库的18秒,意味着完全满足中国现阶段金融级核心系统灾难恢复管理规范的要求。”
2.为什么要现在打榜?
腾讯云数据库为什么选择在这个时间点打榜?要回答这个问题,首先要了解下腾讯云数据库TDSQL的发展历程。
腾讯云数据库技术负责人潘安群将TDSQL总结为三个阶段。
第一阶段为支撑腾讯自身业务。TDSQL诞生于2007年,彼时腾讯业务爆发式增长,开源的MySQL已经越来越捉襟见肘,服务于计费业务、增值业务,定位于金融场景的TDSQL应运而生。
当时潘安群对团队提出的要求是“安心喝咖啡”,业务上线时所有DBA(数据库管理员)和开发人员都不用因为解决扩容等问题而手忙脚乱。同时,团队也支撑了Q币业务,做到银行级的账户系统,每一分钱都不出错。
2009年,腾讯推出开放平台,腾讯云对外提供服务,TDSQL也走出内部,服务产业互联网,开始进入第二阶段。
此后,TDSQL先后做了微众银行、第七次全国人口普查政务系统、数字广东、腾讯会议、99公益等标杆项目,逐渐形成银行级高可用、极致弹性伸缩、双引擎计算、智能运营等能力。
2014-2020年,从第一家银行客户微众银行开始,TDSQL进入第三阶段——攻坚金融标杆客户。
互联网公司跨界到金融场景是一件非常困难的事情,TDSQL秉承从周边系统到核心系统、从小银行到大银行逐步递进的策略。“我们不希望一口吃成大胖子,最后可能自己吃不下。”潘安群表示。
潘安群现在还记得当年服务微众银行的场景。“第一次沟通时,我们提出了基于互联网的完整分布式架构方案,客户的CTO跟我们争论了将近两个小时,谁也说服不了谁,最后留下一句’你们不懂银行!‘最后通过不断地互相了解,终于才达成了一致的方案。”
2018年,张家港农商银行传统核心Sybase for AIX替换为TDSQL,成为TDSQL在国内完成的首家传统银行数据中心国产化的案例。2020年,平安信用卡从IBM大型机替换为TDSQL,是业内首例银行核心系统从IBM大型机下移至国产分布式架构的案例。
2021年9月,腾讯云宣布TDSQL金融核心系统客户已经超过20家,客户涵盖平安银行、张家港银行、昆山农商行等头部银行和广泛的金融行业机构。
时间来到今天,腾讯云数据库TDSQL已经进入规模化复制的第四个阶段。
潘安群表示:“两年之前,我们投入了大量资源做大行的攻坚,优先解决客户的交付,而没有急于向外界证明自己。而到了新的阶段,是时候对我们的自身能力做一个阶段性总结和展示了,也就是我们选择此时打榜的原因。”
3.规模化复制,具体怎么做?
目前,腾讯云TDSQL已经服务了了国内排行前十的银行中的7家,助力20多家金融机构完成核心系统的替换。从去年年底开始,TDSQL开始步入到全面复制的阶段。
但是具体到不同的细分领域,TDSQL的业务节奏并不完全一致。
在金融行业,又可以细分为银行、资管、保险与泛金融四个领域。
首先,泛金融对于数据库的需求并非国产替代,而是一些偏互联网属性的金融企业。腾讯在十年前刚开始做腾讯云的时候,对于泛金融客户接触就较多,这是一个稳定增长的过程。
在银行领域,国有大行(6家)和股份制银行(14家)投入更早,在过去两年基本已经完成了整体框架的技术选型。比如,某银行在2015年就开始招标做第一轮的POC,在经过7轮POC之后,腾讯云数据库才击败了将近20家厂商,终于在2020年中标并开始交付。
腾讯云数据库总经理王义成介绍道:“腾讯云数据库在大行和股份制银行的数量还是相对占优的。我们更多是自己不犯错,然后提升产品稳定性、交付能力、技术能力。大行和股份制银行在选型时一般不会只选一家,我们更多是做好自己,把今天能拿下的核心战场做扎实,不给竞争对手留机会。”
而在规模较小、数量更多(200多家)的农商行、城商行体系,大多数还没有完成国产数据库替换的选型。
“今年我们大批量复制就是盯着城商行、农商行市场,我们也在和前线销售团队、ISV(独立软件开发商)等做好联动、产品适配与方案引导,实现全面覆盖。”王义成表示。
在保险领域,国产化的进程与银行并不一样。银行在十几年前就上线了核心系统,近几年在国产替代的趋势下进行核心系统的改造,加上数据库的替换,使得国产数据库公司赶上东风。但保险公司的国产替代并不替换核心系统,只是替换数据库,大多数保险公司都在Oracle数据库的体系之下,因此对国产数据库的要求基本上是兼容Oracle。
王义成表示:“在保险领域我们是要在兼容性上投入重兵,把Oracle兼容性的能力做得更丰富,围绕数据迁移体系、Oracle评估体系做产品演进。”
在金融资管领域,不仅重视Oracle的兼容性,又很重视ISV,因此腾讯云数据库会加大在ISV的投入,投入重兵做前序适配。
王义成表示,打标杆阶段可以投入几十人死磕,但真正到了业务复制阶段,要比拼谁的业务质量更高、谁的效率更高。从去年下半年开始,腾讯云数据库开始大力投入关于精细化运营、质量打磨升级的方案,进入全面复制产品的阶段,并且在金融行业起到了初步的效果。
在金融行业之外的其他行业赛道,腾讯云数据库更多还是打标杆为主,比如能源、发电输电、交通领域,对于行业理解和认知,目前还是在学习阶段。