查看原文
其他

刚刚,腾讯云数据库打破世界纪录

是的,我们自研的分布式数据库TDSQL刚刚刷新了TPC-C纪录。


据权威机构国际事务处理性能委员会(TPC,Transaction Processing Performance Council)官网披露,腾讯云数据库TDSQL成功通过TPC-C基准测试,性能达到每分钟8.14亿笔交易(tpmC),打破世界纪录。


跟随纪录所产生的还有一系列性能突破:

包括8小时压测,tpmC的波动率一直处于0.2%以下,远远优于官方要求的2%。


稳定保障超过8600亿总事务、期间保证4万亿条订单详细信息不出错。


单tpmC的价格1.27元,远低于同类产品。


构建了业界最大的分布式数据库集群,单实例规模1650台,数据库历史上还是头一次。


1个小时的容灾测试,2次随机断电物理机器,1次销毁腾讯云实例的模拟故障, 18秒完成HA切换等等。


针对此次突破,中国工程院院士郑纬民表示:“国产数据库持续突破性能瓶颈,这是国内基础软件坚持长期投入的结果,也是走向科技自立自强的关键一步。”


这条路,TDSQL走了15年


罗马不是一天建成的,在刷新tpmC世界纪录前,腾讯云TDSQL在数据库国产化浪潮的加持之下,走出了属于自己的安全可控之路。


TDSQL诞生于2007年,彼时腾讯业务爆发式增长,开源的MySQL已经越来越捉襟见肘,服务于计费业务、增值业务,定位于金融场景的TDSQL就此应运而生。


2009年-2012年,全民社交时代,腾讯旗下以开心农场等为代表的众多亿级应用比比皆是,TDSQL在性能上逐渐突破了性能瓶颈、数据可靠性保障、高可用等“不可能三角”的技术难题。


2012年-2014年,云计算兴起,数据库上云、多租户、标准化成为标配。TDSQL经过公有云海量数字化、大规模高并发业务场景的打磨,逐渐形成标准化的国产分布式数据库产品,获得了云原生技术、多租户隔离能力。


2014年-2020年,数字化升级,公有云专有云结合成为趋势。TDSQL开始为微众银行提供分布式数据库底座,这也是TDSQL第一次作为国产数据库的产品,真正使用到银行的核心系统里面,对于整个行业来说都是标志性的事件。


在2021年9月,腾讯云正式对外宣布企业级分布式数据库TDSQL金融核心系统客户已经超过20家,尤其在银行传统核心系统领域,位居国内第一阵营。


客户涵盖多家国有大行,以及平安银行、张家港银行、昆山农商行等头部银行和广泛金融行业机构。除了TDSQL,目前国内还鲜有一款国产数据库,能在如此多银行的传统核心系统成功上线。规模化投产银行核心系统的国产数据库,是金融行业数据库应用国产化替换的质的突破。


TDSQL从打标杆插红旗,进入规模化复制阶段,推动并助力了传统各行各业进行分布式数字化转型的探索发展。而在新一代技术变革升级的未来,TDSQL顺应云原生、超融合的发展趋势,正全面助力数据库国产化。


TDSQL金融核心系统客户已超20家。


20,一个看起来不算太大的数字。


但是对于TDSQL及国产数据库行业来说,不仅点燃了金融科技国产化的星星之火,更是吹响了国产数据库在金融核心系统规模化应用的冲锋号。

根据2022年Gartner的最新报告显示,腾讯云数据库在OLTP(Online Transactional Processing)交易型事务和轻量级事务用例上,均为本土厂商第一。


目前,TDSQL服务了国内排行前十的银行中的七家,助力20余家金融机构完成了核心系统替换,推动金融核心国产化进入规模化复制阶段。


恰如腾讯云数据库技术负责人潘安群所说:“这次刷新TPC-C世界纪录不是我们的最终目的,而是对TDSQL产品能力的阶段性总结和展示。数据库没有弯道超车,所取得的成绩背后是TDSQL在产品上的多年打磨,场景上的持续突破所带来的成果。”


“目前腾讯云数据库涵盖了金融级分布式、云原生、分析型等多引擎融合的产品体系,提供业界领先的高可用、存算分离、企业级安全等能力,服务超50万各行业客户。”腾讯云数据库副总经理王义成补充道。


为什么是腾讯云数据库TDSQL?


如果要从源头回答这个问题,也许要追溯到互联网的“上古时代”,但仅从这一次刷新世界纪录成功中的几个核心要素来看有其“必然性”。


TPC-C打榜的逻辑并不复杂。通过对商品销售支付等实际业务系统进行抽象,模拟极值场景,TPC-C考验数据库厂商在批发商的货物管理环境中,对订单支付、订单查询、订单发货和库存查询以及订单创建等五种事务的处理能力。


“看似简单的TPC-C模型,恰恰是对实际的联机交易处理做了非常好的抽象,其目的就是评估数据库管理系统在这个高负载情况下的性能,包括吞吐量、响应时间和并发性能等。”潘安群说,在这个模拟电商交易系统的测试中,打榜核心有两个指标,其一是测试中间每分钟能够处理的事务数,即tpmC;其二则是性价比。


实际上,TPC-C打榜的技术挑战,对数据库的要求远远超过了实际业务场景中的性能要求,而TDSQL也一一实现了这些技术突破。


8小时满压力测试,性能必须要拉满


TPC的标准,要求系统稳定状态下能连续跑8小时,最后总的tpmC波动率不超过2%。


长达8小时的稳定压测时间,不能仅仅通过内存缓存提高性能,而是要求快速地进行Checkpoint,高频地进行数据页的换入换出,需要在purge,checkpoint和aio,日志复制等模块进行全面优化,消除瓶颈点,确保较高的并行度,充分发挥好硬件资源。


为了满足目标,TDSQL对所有SQL执行的各个阶段进行性能采样,对遇到的所有毛刺点进行性能优化。“最终在8小时测试中,性能波动范围保持在0.2%以内。保障超过8600亿总事务、4万亿条订单详细信息不出错。”腾讯云数据库技术专家雷海林表示。


单节点支持180万QPS,不能有毛刺


为了实现整体性能目标,落到每个节点需要承载180w的QPS,需要对数据库内部各个子模块全方位的把控,挖掘出最强大的单机性能能力。TDSQL采用物理复制方案,取代传统的逻辑复制技术,显著降低网络和磁盘写,解决了主备延迟的问题,在实际的压测效果中,针对小事务的更新类场景性能普遍能提升一倍以上。


此外,通过对网络协议,网络包处理模型,线程池等模块的优化,以及消除动态内存,采用全局的共享替代各个线程私有缓存等措施,TDSQL不仅解决了毛刺,也极大降低了CPU开销。系列优化措施,使得需要共享的资源控制在30G业内,而且随着规模的扩大,内存基本保持不变,打造了先行扩展的重要基础。


单实例规模1650台,世界历史上还是头一次


除了单机的强大性能,TDSQL也通过一系列措施,解决了分布式水平扩展性的问题。TDSQL一方面提供分布式表和广播表的数据分布技术,确保将分布式事务比例控制在15%以内;另一方面,针对分布式场景,连接复用技术消除了连接风暴,确保网络连接满足水平扩展。


具体到分布式事务环节,通过批量合并,多阶段pipeline管理全局事务信息,显著降低了全局事务模块带来的代价,另外支持SQL打包,无上下文相关的SQL并行下推执行等技术充分提升了并行度,降低分布式事务带来的锁开销和响应时间,实现了极佳的线性扩展性。


高压下的破坏性测试:8亿 tpmC 高压下,故障模拟数据零丢失,主备延迟10秒以内


高可用和数据一致性一直以来都是TDSQL的亮点,经过引入物理复制技术,TDSQL完全消除了逻辑复制带来的主备延迟隐患,确保主备复制延迟完全控制在10秒以内。


基于物理复制的强同步技术,TDSQL还实现了持续递增的Redolog 文件组,实现了更好的持续性要求。主上的数据分发模块采用环形内存池对Redolog进行缓存,从而不需要读取文件,一方面确保了更快的转发速度和时效性,另一方面也降低了IO负载,备节点对Redolog采用group fsync和合并应答技术,磁盘吞吐能力得到了充分的发挥。


在审计过程中,经过2次随机的断电和销毁计算节点,TDSQL的HA切换只需要18秒,保障了数据零丢失,满足数据一致性、隔离性的要求,能很好支持金融交易等场景。


腾讯副总裁蒋杰表示:“我们认为,做国产数据库不仅要坚持长期投入,而且不能闭门造车,发展到一定阶段后,必须要去打一次榜。过去,腾讯云数据库在应用场景上已经有很扎实的技术积累,挑战构建更大的分布式集群,能够提前发现并攻克很多未来可能遇到的技术难题,也是对产品能力更全面的验证。”


而从结果来看,TDSQL的表现最终不负众望。


回顾腾讯云TDSQL数据库的成长历程,旅途中的筚路蓝缕难以言尽,但长久打磨,攻克技术难关,这一次,在刷新世界纪录这个远超过去所有困难的“顶峰”面前,我们“做到了”。


从顺利支撑互联网应用的爆发时代,到数据库能力逐渐外溢实现大规模应用,再到助力数据库国产化,腾讯云TDSQL数据库的能力不断完善,正以前所未有的速度在发展。


相信“世界纪录”的突破,将会是腾讯云数据库TDSQL又一个新的里程碑,带动越来越多的国民级应用平稳运行在TDSQL之上。


TDSQL一直在路上!


END—

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存