国产数据库又破世界记录了!
这一次又是鹅厂,又是腾讯云TDSQL。
去年,腾讯云TDSQL打破了TPC-C的纪录,今年,他们又成功刷新了TPC-DS的纪录。
![](http://dingyue.ws.126.net/2024/1025/56a5240bj00slwg9c000yd000hs00dqm.jpg)
今天,我们先抛开成绩不谈,说说TPC-DS是怎么回事,到底是怎么测的,难度大不大…
![](http://dingyue.ws.126.net/2024/1025/9d114c5bj00slwg9c001dd000hs00k7m.jpg)
首先,TPC(事务处理性能委员会)的名号不需要过多解释了吧,这个国际权威机构从1988年成立开始,30多年就干一件事↓
“开发并维护针对数据库和事务处理系统的基准测试标准”
![](http://dingyue.ws.126.net/2024/1025/2fa855b7j00slwg9c001jd000hs00lum.jpg)
所以,TPC的这些测试,也常被业内称作数据库领域的“奥林匹克”。
鹅厂去年夺冠的那个TPC-C是事务处理类的性能测试(OLTP),也就是交易型的业务,想想那些秒杀、支付、订单处理,就知道这能力多重要。
TPC-C相当于奥林匹克中的短跑项目,“赛程”都是高频小任务,比的是多、快、稳、爆发力↓
![](http://dingyue.ws.126.net/2024/1025/fd38c6eej00slwg9c006gd000hs00gxm.jpg)
![](http://dingyue.ws.126.net/2024/1025/7d2cf3e9j00slwg9c007nd000hs00gxm.jpg)
而鹅厂今年参加的这个,叫TPC-DS,其实是“拷打”分析型业务的,重点考察数据库的“联机分析”能力(OLAP),需要具备大数据量、高性能、高并发、高扩展性等特征。
TPC-DS就好比是铁人三项,“赛程”都是低频大任务,综合比拼速度、耐力、大运动量。↓
![](http://dingyue.ws.126.net/2024/1025/09a736b6j00slwg9c001xd000hs00p8m.jpg)
那TPC-DS具体怎么测呢?难度相当大!
TPC系列的测试有个特点,特别强调实战型,要模拟真实的业务场景。
这种实战型的测试,就可以避免有些产品,一测很牛逼,一用就拉稀…
你看TPC-DS的测试细则,模拟一家大型零售商销售数据的在线分析场景,包含了99个不同类型的分析任务。
测试场就是实战场,详细评估数据库在海量数据下的分析性能:处理耗时、并发性能、导数性能等。
海量数据有多“海”呢?
看看下面这些表的行数和磁盘空间占用,你就心里有数了。
这里面,门店销售记录表(store_sales)有288亿行,占用磁盘空间2个T;
电话销售记录表(catalog_sales)有144亿行,占用磁盘空间1.6T;
还有70多亿行的线上销售记录表、6500万行的客户信息表…,总共17张表,10TB数据量。
![](http://dingyue.ws.126.net/2024/1025/6df433f6j00slwg9c001kd000hs00ofm.jpg)
怎么样,这数据是不是“海”得很夸张?
测试的第一环节,就是要把这10个T的数据加载到待测数据库中,考量数据导入的速度。
数据入库后,接下来更大的挑战是查询分析需求,因为这些需求都涉及到了大规模跨表查询,很多需要同时关联10表左右。
举个例子,第23项查询(Q23)是要分析“畅销品的头部客户在各渠道的销售总额”。
是不是光这句话的意思都要琢磨半天?要完成这个任务,需要多次迭代查询和计算↓
![](http://dingyue.ws.126.net/2024/1025/d510bb53j00slwg9c002ad000hs00oum.jpg)
比如,第1步“查询门店畅销产品”,具体的要求是从门店销售记录中找出连续4年内任何一天销售超过4次的商品。
这个需求,需要针对门店销售记录表、日期表、商品目录表进行联合查询。
这种连接查询(join)的结果有220多亿条记录,聚合计算后的最终结果有3亿条记录。
再看第4步,查询“门店头部客户在其它渠道的购买畅销品情况”,需要根据前三步的结果,再基于所有的销售数据(门店、网店、电话)进行联合分析,计算量激增…
总之吧,像这样“刁难人”的问题,有99个,全部模拟真实查询场景,帮助企业进行决策支撑。
具体测试的时候,要先串行运算,也就是模拟1个用户按顺序执行99个查询任务。
接下来,还有并行运算测试。
这个更狠,模拟4个用户,同时并发执行99个查询任务,看你能不能反应过来。
这还不算完,下一步还要进行数据变更操作:更新某些表中的数据,涉及10+表的上亿行数据。
数据更新过程中,还有人专门“作妖”,破坏磁盘来模拟故障,来测试系统的容错能力。
这几波操作完成后,会继续进行第二次并行查询测试和第二次数据变更测试。
说白了,测一遍怕你超水平发挥了,不够准确,再来一遍。
![](http://dingyue.ws.126.net/2024/1025/b0b8d40aj00slwg9c000sd000hs00ehm.jpg)
好,跑完这所有的步骤之后,TPC-DS会根据下面公式计算出一个分数,分数越高综合表现越好。
![](http://dingyue.ws.126.net/2024/1025/7af6f52fj00slwg9c0003d0008k001pm.jpg)
公式的详细算法不啰嗦了,这里面的分母,其实是基于串行查询、并行查询、数据变更、数据加载所花费的时间,得到的一个加权值。
总之,综合用时越短,各项都没有短板,分母就越小,得分就越高。
鹅厂最终测下来,得分是7260万QphDS,比第二名高了三倍还多。
不止如此,在性能夺冠的同时,鹅厂还拿到了性价比的冠军,也就是系统造价和性能得分的比值,反映了每秒每查询数据量的花费,越小越好。
在这个指标上,鹅厂TDSQL每1000评分的价格比第二名便宜了1/3。
![](http://dingyue.ws.126.net/2024/1025/bc4b771fj00slwg9c000yd000hs00htm.jpg)
有人说,硬件价格是明的,数据库软件价格不透明,你随便报个低价,不就可以拉低成本了?
反正是自己产品,价格自由嘛。
嘿嘿,看看TPC官方的测试报告你就会明白,这个数据库系统的价格是基于腾讯云官网在线正式售卖的定价来核算的。
也就是说,送测的和客户最终买到的,价格一致,甚至考虑到大客户折扣,最终用户可以获得更好的性价比。
![](http://dingyue.ws.126.net/2024/1025/54c4926fj00slwg9c0012d000hs00gkm.jpg)
后记
鹅厂用了两年时间(背后其实是数据库鹅们十几年的积累),成功霸榜OLTP和OLAP两大权威测试,而且是真刀真枪的实战型测试,的确值得夸一句“厉害了人家的鹅”。
这个打榜结果放出来以后,业内有数据库老炮儿,看了TPC-DS的结果,也都纷纷点赞,坦言“DS还是挺难的,这成绩不容易”。
也有大甲方笑评:核心生产系统可以更加放心地吃吃国产数据库螃蟹了。
的确,打榜这件事,不仅是鹅厂的胜利,也是国产数据库的胜利,相信未来我们会看到越来越多的核心生产系统,用上国产数据库。
比如,两次打榜的主角TDSQL,已经被4000多家来自金融、公共服务和电信等垂直行业客户采用,服务超过30家金融机构完成核心系统替换,中国十大银行中的七家都在用。
而在云上场景,企业同样可以享受到极致性能。最近,腾讯云发布了云数据库MySQL集群版,通过架构升级与内核优化,既保持云原生架构的极致弹性,又能超越传统架构,实现性能提开30%,内存占用下降15%,单核 QPS突破10000。
基础软件的国产化替代,任重道远,但曙光已现~
热门跟贴