1e8d27eea6c22ba4b768920c5bcb87eb.gif

整理 | 郑丽媛

出品 | CSDN(ID:CSDNnews)

时隔三年,数据库“奥林匹克”TPC-C 的纪录,再一次被国产数据库刷新——这次的主角,是腾讯云数据库 TDSQL。

3 月 30 日,国际事务处理性能委员会(TPC,Transaction Processing Performance Council)发布了最新榜单:腾讯云数据库 TDSQL 刷新纪录,以 8.14 亿的 tpmC 和每 tpmC 成本 1.27 元人民币的评测成绩,实现 tpmC 和性价比双榜世界第一。 

51c6bbddf49e223af591092bff465093.png

d4fb570212dd38103398982241da1d46.png

数据库领域的“奥林匹克”TPC-C

TPC-C 之所以被业界认为是数据库领域的“奥林匹克”,在于它是 OLTP(联机交易处理系统)数据库性能测试唯一的国际权威榜单,也是全球主流计算机硬件厂商、数据库厂商公认的权威标准。 

具体来说,TPC-C 用于测试数据库管理系统的性能,模拟了一个大型在线事务处理(OLTP)环境,其中有多个用户并发地执行事务,目的是评估数据库管理系统在高负载情况下的性能,包括吞吐量、响应时间和并发性能等方面。最终衡量的核心指标主要是两个: 

  • 性能(tpmC):每分钟处理事务数。tpmC 值越大越好。

  • 性价比(Price/tpmC):即系统的整体价格与 tpmC 的比值,价格越低越好。 

在 2019 年之前,TPC-C 榜单 Top 10 一直被 Oracle、IBM 等国外传统数据库所占据,其中 Oracle 更是保持了长达 9 年之久的世界纪录——其 3.02 千万的 tpmC,一度被业界认为是“不可超越”的存在。而此次,TDSQL 将 tpmC 值拉到了新高:8.14 亿。 

说起来不过“刷新纪录”四个字,但想要登顶 TPC-C 榜首绝不是听起来那样简单。 

据腾讯云数据库技术负责人潘安群介绍,TPC-C 全量测试包含四个部分,总计需要持续 30 个小时不间断: 

(1)8 小时全压力测试:保持 8 小时稳定态,不能有任何错误,不能有故障,平均每分钟事务数为最终的 tpmC,关注时延,正确性等。 

(2)故障容灾测试:不同组件的故障测试,模拟真实的断电,验证数据不丢失,数据事务一致性等。 

(3)数据库 ACI 测试:数据库的各种一致性、隔离级别、原子性进行测试。 

(4)50% 和 80% 压力测试:主要验证在 50% 压力和 80% 压力测试。 

f9e59626b433bc9da7c41892b43209eb.png

TDSQL 刷新 TPC-C 榜单纪录! 

在这四个测试环节中,潘安群指出前两个测试最为关键也最具挑战,即要求 TDSQL 需具备更严苛的性能稳定性,更强的单机性能,更大的分布式集群,高压下的破坏性测试以及更长时间的磁盘空间。 

面对这些关键技术挑战,腾讯云数据库团队对 TDSQL 进行了整体优化,大致可分为单机性能、分布式扩展、超大规模集群稳定性三个阶段展开。 

第一阶段将单机性能极致优化,把单机 CPU 资源榨干,实现单机 60 万 tpmC。第二阶段关注分布式水平扩展性,保证线性扩展性 84%,随着集群规模扩大,确保 tpmC 也线性增长。第三阶段,腾讯团队用约 2650 台服务器(1650 台物理机 + 1000 台虚拟机)组成了超大规模集群,保持其在高压力测试下的系统稳定性,即 8 个小时内不能有任何故障。

“我们总共做了 12 轮完整 8 小时的压力测试,仅最后优化后的三轮测试没有出现内存错误。”潘安群解释,由于硬件问题导致的内存使用频繁会引发内存错误,为此他们做了很多优化:“原来是由系统去分配内存,现在改为应用层自己管理内存,这极大地提升了软件的可靠性。”

三轮优化过后,最后 TDSQL 的打榜成绩基本达到了腾讯云数据库团队的预期: 

  • tpmC 成绩刷新世界纪录 

依托于 TDSQL 多年来在数据库内核,分布式,水平扩展,调度等能力的持续研发投入,构建了业界最大的分布式数据库集群(1650 台),性能刷新世界记录(8.148 亿 tpmC)。 

  • 非常显著的成本优势(性价比) 

通过持续的软硬件协同,自动化,规模化的运营能力,使得单 tpmC 的价格接近同类产品的1/3。 

  • 超大规模集群,性能稳定性最佳 

在 8 小时的持续压测过程中,tpmC 的波动率一直处于 0.2% 以下(标准是要求 2% 以内),实现 8 小时无抖动,保障了超过 8600 亿总事务、4 万亿条订单详细信息不出错。 

5c32d7e3e1a0915bef43b8721b356f38.png

8 小时持续压测中,TDSQL 波动率稳定在 0.2% 以下 

  • 超大规模集群,卓越的高可用和分布式容灾能力

1 个小时的容灾场景测试,进行了 2 次随机断电物理机器和 1 次 destroy 腾讯云实例的模拟故障,模拟故障之后,18 秒完成故障容灾切换,大盘整体影响微乎其微。 

b9b3d4130e239df2b6dc5c9e37a29e82.png

成功打榜背后,是 15 年的技术积累

对于 TDSQL 此次打榜的时间点,腾讯副总裁蒋杰在采访中表示:“我们认为,做国产数据库不仅要坚持长期投入,而且不能闭门造车,发展到一定阶段后,必须要去打一次榜。”TDSQL 选择打榜,更多是为了提前发现并攻克很多未来可能遇到的技术难题,也是对产品能力更全面的验证。 

因此可以说,此次打榜成功的背后,是 TDSQL 长达 15 年的技术积累。

2007 年,随着移动互联网时代的飞速发展,腾讯业务开始突飞猛进,需要做增值业务、计费业务等泛金融场景的支撑,于是 TDSQL 作为一款内部产品,开始在公司内部提供金融级的数据一致性、可靠性服务。到了 2012 年,TDSQL 在腾讯内部已经很成熟了,但一直没有对外做商业化。 

2014 年,微众银行成立,做数据库选型时关注到了 TDSQL——在这之前,所有银行的数据库不是 Oracle 就是 IBM DB2。经过反复测试验证,微众银行认为 TDSQL 已完全具备其对数据可用性和一致性的要求,TDSQL 便成功在微众银行投产,并成为微众银行唯一的数据库,完成了商业化。基于 2014 年 TDSQL 在微众银行的成功实施,此后它开始推广到了更多的银行、金融机构中,并在 2015 年上公有云,逐渐成为了一个正式对外的商用数据库。 

到了 2019 年,TDSQL 成功应用到了张家港农商银行的传统核心系统,首次实现银行传统核心系统数据库自主可控,也是国产数据库领域一个具有里程碑意义的事件:这意味着,分布式数据库不再只局限于银行的互联网核心,而是真正切入到银行系统的心脏——传统核心系统。 

在这之后,腾讯云数据库承接了第七次全国人口普查项目,全省一体化金融级项目江苏人社也选择了腾讯云数据库等案例,使得 TDSQL 的应用场景逐渐丰富成熟。 

基于这些年的技术积累和应用场景,TDSQL 选择在此时打榜。潘安群表示:“随着这几年整个应用逐渐成熟之后,我们各方面的基础能力基本上也做得差不多了,这个时候有必要去打榜,去接触一些用户场景碰不到的极端情况,来一个更全面的验证。” 

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

此外,中国人民大学教授杜小勇也指出:“TDSQL 在 TPC-C 榜单上的突破可喜可贺,这标志着国产数据库核心能力的快速发展和日趋成熟,给国产数据库的研发增强了信心,也给国产数据库的使用者增强了信心。国产数据库只有持续在各种各样的应用场景下去打磨,才能不断取得技术的突破,打造一款真正的好产品,相信国产数据库产品和技术都会越来越好。”

 
 

b6e79523879a9e9fc4267e7b597b1189.gif

☞微信尝试刷掌支付;苹果 WWDC 将于 6 月 6 日开幕;Qt Creator 10 发布|极客头条
☞一图 GET 六大信息系统迁移难点与解法
☞GPT-4 还没玩透,下半年可能发布的 GPT-5 会有什么样的能力?
Logo

20年前,《新程序员》创刊时,我们的心愿是全面关注程序员成长,中国将拥有新一代世界级的程序员。20年后的今天,我们有了新的使命:助力中国IT技术人成长,成就一亿技术人!

更多推荐