点击围观!腾讯 TAPD 助力金融行业研发提效、敏捷转型最佳实践! 了解详情
写点什么

每分钟可处理 8.14 亿笔交易、腾讯云数据库 TDSQL 刷新 TPC-C 纪录对国产数据库行业意味着什么?

  • 2023-04-06
    北京
  • 本文字数:5020 字

    阅读完需:约 16 分钟

每分钟可处理8.14亿笔交易、腾讯云数据库TDSQL刷新TPC-C纪录对国产数据库行业意味着什么?

3 月 30 日,据数据库领域权威测评机构国际事务处理性能委员会(TPC,Transaction Processing Performance Council)官网披露,腾讯云数据库 TDSQL 顺利通过 TPC-C 基准测试,性能达到每分钟 8.14 亿笔交易(tpmC),打破世界纪录。这也标志着国产数据库 TDSQL 的分布式架构设计和资源调度能力,均达到了业界顶级水平。

 


TPC-C 被誉为数据库领域的“奥林匹克”。它是一个非常严苛的基准测试模型,考验完整的关系数据库系统全链路能力。因此,在 TPC-C 的榜单前列,永远出现的只是那些在数据库领域有着几十年积累,从关系数据库理论开始发展就差不多同步出现的知名数据库厂商。

 

TPC-C benchmark 测试必须通过 TPC 组织的审计,通过审计的 TPC-C 结果,会有完整详实的测试报告公布在 TPC 官网上,包括测试厂家、数据库版本、详细的软硬件配置、测试过程等。

 

往细了说,TPC-C 是一种典型的在线交易处理 OLTP (On-Line Transaction Processing) 场景测试,考察数据库在高并发压力场景下的事务处理能力,最终的性能指标以 tpmC(transaction per minute,也就是每分钟系统处理 TPC-C 模型中的 new order 事务的数量)和平均到每 tpmC 的系统成本作为衡量标准。

 

OLTP 场景中,每个请求的响应时间都是极短的。因此,在进行 TPC-C 测试中,各个数据库厂商都会尽一切可能将每一个操作时间压缩到最短,毫不夸张的说,在 TPC-C 测试中,一些关键操作的优化往往需要细化到 CPU 指令级别。

 

在此次 TPC-C 的打榜中,TDSQL 成功抗住了每分钟 8.14 亿笔交易(tpmC),成本仅为同类数据库的 1/3在测试期间,TDSQL 保持了持续稳定运行这一超大规模集群,实现 8 小时无抖动,保障了超过 8600 亿总事务、4 万亿条订单详细信息的零错误。

 

在进行如此严苛的 TPC-C 测试时,最具挑战性的技术环节是什么?腾讯云数据库 TDSQL 是如何克服种种技术挑战的?他们又为何选在这样的时间点来测试?测试中 TDSQL 成功完成每分钟 8.14 亿笔交易、单节点最高支持 180 万 QPS(每秒请求量)、超高压下稳定运行 8 小时波动率一直维持在 0.2%以内,这一系列数据背后的真正含义是什么?腾讯云数据库此次在 TPC-C 测试中取得的成绩,对于国产数据库产业来说意味着什么......

 

在 3 月 30 日,腾讯云召开的媒体会上,腾讯云数据库技术负责人潘安群和腾讯云数据库总经理王义成接受了 InfoQ 在内的多家媒体采访。以下为采访实录,经编辑。

 

腾讯云 TDSQL 刷榜 TPC-C 背后的故事

 

问:腾讯云 TDSQL 为什么选择在这样的时间点打榜?这背后有着怎样的故事?打榜过程中的技术难点有哪些?

 

潘安群:本次打榜不是我们的核心目的,而是我们对 TDSQL 产品能力和过去 15 年在数据库发展过程中的阶段性总结。目前,TDSQL 在应用场景上已经有了非常深厚的技术积累,产品能力和性能都达到了阶段性突破,并在一些大型银行核心系统中稳定运行。基于此,今年TDSQL团队花费了两个月的时间去参加打榜,期望借助权威的 TPC-C 测试审计对产品做一次全面的验证。


早在两年前,我们还在为大型银行的投产和服务好大量客户做攻坚,加上腾讯的做事风格一向是只要客户有需求,我们就要优先保障和解决问题,而不是急于证明自己。如今,我们产品能力已经到达了一定阶段,我们认为是时候可以证明自己的实力了,于是我们选择了这个时间点参加打榜。

 

TPC 本身是一个非赢利性组织,制定了一系列对于数据库评测的标准和规范,TPC-C 是在 OLTP 数据库里唯一的国际权威榜单,主要是考察系统的吞吐量、响应时延、并发性能以及成本,核心指标就是两个:

 

1、 tpmC。每分钟的处理事务数(每分钟新订单数量),这次 TDSQL 的结果是 8.14 亿 tpmC。

2、 性价比。为防止通过堆硬件获得高 tpmC,测试标准要求考虑性价比,客户如果买下一套一模一样的系统,使用三年,最后的总成本除以 tpmC 获得的单位成本价,即为性价比。最终,我们的单价(price/tpmC)是 1.27 人民币

 

tpmC 的全量测试包含四个部分:

1、 8 小时全压力测试。也就是 8 小时内每分钟保持 8.14 亿的交易数,并且要求稳定状态下,期间不能有任何故障和错误,还需要关注平均交易时延,我们认为这个是难度最大的测试。

2、 故障容灾测试。当出现机器故障的情况下数据能否保持一致性,会不会丢数据,这是第二个很重要的测试,整个测试中审计员会全程陪同,这个对系统的高可用要求较高,难度次之。

3、 数据库 ACID 测试。包括对数据库的各种一致性、隔离级别、原子性进行测试,这些是对数据库基础能力的验证。

4、 50%和 80%的压力测试。这里主要是验证 50%压力和 80%压力下,系统表现。

 

本次打榜,我们有四个核心亮点:

1、tpmC 成绩刷新世界纪录。性能达到每分钟 8.14 亿笔交易(tpmC),平均时延和 90 分位时延领先其他厂商。

2、显著的成本优势。我们通过软件本身优化把单位成本里硬件部分的价格降低。并使用了公有云弹性的资源方式,以及在公有云上整个系统自动化和规模化的运营加持下,降低了服务成本价格,使得单 tpmC 的价格接近同类产品的 1/3。

3、超大规模集群,性能稳定性最佳。超大规模集群下,系统保持运行 8-10 个小时以上,且达到系统稳定性的最佳。tpmC 的标准是在 8 小时持续压测中,tpmC 的波动率要在 2%以内。在实际测试中,我们的波动率一直维持在了 0.2%以内,这也充分体现了 TDSQL 在产品架构、分布式能力、水平扩展、以及资源调度方面已经处于业界最佳水平。

4、超大规模集群,卓越的高可用和分布式容灾能力。这里重点考察的是故障处理能力。审计员随机选择机器来做故障模拟,审计员随机指定 2 台物理机 IP,机房同事随后在现场拔掉对应机器电源,观察系统在无任何人工干预下请求量多久能完全恢复正常。从实际测试结果来看,TDSQL 在 18 秒就完成主备切换,对于大盘整体影响微乎其微,事后进行事务数据校验,一笔不差不错。

 

以上提及的这些为什么成为亮点,其实是有很多技术方面的挑战,比如:

1、要保持平稳型,不要抖动。

2、单机性能要求非常高,我们需要支持超大的规模集群,并且单节点做到 180 万的 QPS,不能有毛刺,不能时快时慢。

3、此次构建的是更大的分布式实例,这在过往我们所服务过的客户里是没有出现过的。

4、在高压力的情况下,每分钟需要处理 8.14 亿笔交易,还需要进行各种故障模拟来测试系统的表现是否正常,这是一个非常大的挑战。

5、为了满足测试审计的要求,我们确保磁盘空间至少能支持每天至少满负载 8 个小时,持续 60 天。

 

问:此次 TDSQL 创造的纪录是每分钟 8.14 亿的交易量,这个成绩大概属于什么水平?

 

潘安群:8.14 亿这个数据相当于全国 8.14 亿的人,每个人每分钟下一个单,持续 8 个小时,在这种情况下要求系统不抖动,其实是很复杂的。比如对标春晚抢红包,前几分钟的峰值就很不好处理,所以我们要做到这样的成绩其实是并不容易。

 

王义成:我来补充下 8.14 亿笔交易到底代表什么,在我们看来,这个性能数据足以满足今天所有国产数据库核心厂商想要替换的性能要求。打个比方来说,今天银行业务系统峰值可能就是 20 亿笔的交易(全天),可能就已经到了银行金融等级的要求了,20 亿笔的峰值可能是在 4-5 个小时内完成,每分钟处理的交易量远远低于 8.14 亿,也就是说,从性能角度上来看,TDSQL 足以替支撑今天中国所有依赖于数据库系统的核心应用

 

问:TPC 组织 2007 年时还对数据库测试提了一个新标准,按照美国证券交易所的场景去提供这样一个测试场景,TPC-E,提出这个标准之后,不管是 Oracle 还是 IBM,好像都没有按照 TPC-E 做测试,这个标准后来就一直这样摆在那,您能聊一聊为什么各个数据库厂商没有按照 TPC-E 进行自己的性能测试?而是按照过去 TPC-C 的标准测?

 

潘安群:TPC-C 是非常好的交易场景,它是非常有代表性的测试。TPC-E 后续并没有流行起来,有测试方案本身原因,也有厂商没有选择的原因。

 

问:但毕竟国内数据库厂商主要服务的行业是金融企业,按理来说 TPC-E 标准更符合目前我们服务的客户类型?为什么国外厂商没有再打榜了?

 

潘安群:TPC-E 的测试跟银行场景不完全相同,现在整个银行的 IT 架构也不像原来基于集中式的那套架构,而是开始往分布式架构演进。另外,现在厂商再想来刷新 TPC-C 榜单,其实成本方面的问题也比较难解决,所以国外没有打榜主要是基于这些综合因素所致。

 

王义成:TPC-C 榜单的意义在于,如果其他厂商愿意“卷起来”争相去打榜,这里也是一个相对公平的环境。我们关注总榜的情况下还是要看单位成本,8.14 亿的这个性能指标足以支撑全国所有核心系统的性能要求。正如潘安群提到的,迟早有一天这个榜单的成绩会被人超过,但我相信 1.27 元单位成本的投入,从性价比和性能总数的角度下做对比,它本身是相对有难度的,这依赖于云的扩展性、依赖于软件集合,包括我们全栈的技术能力以及成本。

 

问:TDSQL 发展至今,已经到了大规模复制阶段了吗?

 

王义成:从去年年底开始,TDSQL 在金融行业已经步入到规模复制的阶段了。目前,TDSQL 服务了国内排行前十的银行中的七家,助力 20 余家金融机构完成了核心系统替换。

 

我们要在兼容性、产品综合能力、精细化管控、精细化运营、整体升级方案等方面进行大规模的工程质量打磨。但在能源等其他领域,我们还要先拿下一些标杆项目。打标杆相对不容易,但我觉得打标杆相比复制还是复杂一点,打标杆今天可以投 20 人、30 人“死磕”到底,但真正到了大规模全面复制阶段就要拼谁的业务质量更高,谁的效率更高。在今年下半年,我们已经开始大量投入到关于精细化运营质量的打磨和升级方案,以提高交互方案的标准。我们已经进入到了全面复制产品的夯实和打磨过程中,初步在金融行业中起到了复制效果。与此同时,在能源、交通等行业中,我们正在做标杆案例的突破。

国产数据库正在变道超车

在 TDSQL 之前,国内银行的核心系统被传统厂商垄断。TDSQL 深入金融核心之后,微众银行是第一家采用国产分布式数据库的互联网银行,张家港农商行则是第一家全部投产国产分布式数据库的国内传统银行,平安银行信用卡是国内首个从大型机直接下移到分布式架构的银行产品,之后越来越多的国内银行开始将银行系统迁移到分布式数据库上。

 

据统计,腾讯云分布式数据库 TDSQL 已服务过半国内 TOP 20 银行,TOP10 银行中服务了七家,客户包括平安银行、华夏银行等。以 TDSQL 为代表的国产分布式数据库在越来越多的金融核心场景中替代传统集中式数据库,体现了中国数据库在分布式架构这个新赛道上变道超车的优势。

 

当前,在 TPC-C 排行榜上,前三名都是中国数据库厂商,而传统集中式数据库厂商在 2013 年以后就已经停止参加 TPC-C 打榜,其根本的原因在于分布式数据库所能达到的 0.6 亿 tpmC(2019 年,OceanBase),已经远远超过了集中式数据库的性能上限,而互联网、物联网和车联网等数字商业模式,正在重塑金融等传统业务,也对数据库提出了更高的要求。

 

问:从榜单上来看,TDSQL 已经把国外厂商甩在后面了,但现在我们国产数据库相比于这些国外厂商还有哪些不足之处?

 

潘安群:尽管我们在数据库的核心能力、数据的一致性、可用性等方面领先于国外厂商,但就整个生态的完善度而言,我们与国外厂商相比仍存在差距。毕竟,这些国外数据库巨头们已经在数据库领域深耕了几十年,持续在各种用户场景下不断打磨和优化性能,他们的兼容性和生态要更完善。

 

在接下来规模化复制中,我们需要在生态上重点发力。比如我们需要实现 Oracle 的兼容性,使客户可以轻松使用国产数据库,就像用 Oracle 一样顺滑,这也将提升我们在不同复杂情况下解决同一系统问题的能力。此外,我们还需要基于整个 SaaS 化和智能化运营平台,让客户非常清晰地了解如何快速解决问题,让客户放心地用起来,这是我们下一阶段要重点解决的问题。

 

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

 

整体来说,腾讯云TDSQL成功打榜 TPC-C 是中国数据库的又一里程碑,也是全球分布式数据库的一个里程碑。腾讯云数据库 TDSQL 的成功,充分证明了公有云分布式数据库承载金融核心场景的能力,也证明了中国能够打造优秀数据库产品、实现变道超车的能力。正如中国人民大学教授杜小勇针对本次测试结果所表示:“TDSQL 在 TPC-C 榜单上的突破,标志着国产数据库核心能力的快速发展和日趋成熟,给国产数据库的研发增强了信心,也给国产数据库的使用者增强了信心。国产数据库只有持续在各种各样的应用场景下去打磨,才能不断取得技术的突破,打造一款真正的好产品,相信国产数据库产品和技术都会越来越好!”


2023-04-06 14:393558
用户头像
李冬梅 加V:busulishang4668

发布了 574 篇内容, 共 212.5 次阅读, 收获喜欢 747 次。

关注

评论

发布
暂无评论
发现更多内容

产品开发的过程

Qien Z.

运营管理 6月日更

【21-6】PushGateway快速上手

耳东@Erdong

Prometheus 6月日更 PushGateway

【Vue2.x 源码学习】第十三篇 - 生成 ast 语法树 - 正则说明

Brave

源码 vue2 6月日更

LeetCode 每日一题「判定字符是否唯一」

陈皮的JavaLib

Java 算法 LeetCode

常用消息队列对比

看山

MQ 6月日更

从零开始搭建一个个人博客网站--Task0

IT蜗壳-Tango

django IT蜗壳教学 6月日更 Datawhale

模块6作业

薛定谔的指南针

架构实战营

消息队列架构设计文档

chenmin

【经验分享】RTC 技术系列之视频编解码

Hanson

音视频

【Flutter 专题】104 图解自定义 ACEDropdownButton 下拉框

阿策小和尚

Flutter 小菜 0 基础学习 Flutter Android 小菜鸟 6月日更

setInterval 和 hooks 撞在一起,翻车了~

Viktor

踩坑经历 React Hooks

聊聊缓存模式

西门

2020年度编程语言排行榜 C语言称霸,Java遭遇滑铁卢?

架构精进之路

编程语言 6月日更

JAVA笔记(一)--软件安装-MyEclipse

加百利

Java 6月日更

拆分电商系统为微服务

chenmin

一文带你了解vue2之响应式原理

法医

Vue 大前端 6月日更

JavaScript学习(二)

空城机

JavaScript 大前端 6月日更

(VMware)ubuntu 环境下搭建docker环境

逸少

Docker Docker-compose vmware Ubuntu20.04

这可能是介绍Android UvcCamera最详细的文章了

小驰笔记

android 音视频 UvcCamera 引航计划

浅浅谈Redux

蛋先生DX

React Redux 6月日更

架构设计初识

编号94530

架构 系统设计 架构师

Kubernetes手记(10)- POD 存储卷

雪雷

k8s 6月日更

「SQL数据分析系列」2. 创建和使用数据库

数据与智能

数据库 语法

请求背后的守护者-拦截器

卢卡多多

SpringBoot 2 拦截器 请求拦截 6月日更

架构实战营模块6作业

梦寐凯旋

#架构实战营

[译] Android 的 Java 8 支持

Antway

6月日更

网络攻防学习笔记 Day44

穿过生命散发芬芳

网络攻防 6月日更

我在Dubbo源码里学到了如何保证虚拟节点均匀分布!

Kareza

dubbo dubbo源码

CSS技巧 | 前端开发需要知道的 10 个 CSS 技巧

devpoint

CSS css3 CSS小技巧 6月日更

算法之统计岛屿数量

Skysper

算法 深度优先搜索

ES2021 带来的新特性

KooFE

JavaScript 6月日更 ES2021

每分钟可处理8.14亿笔交易、腾讯云数据库TDSQL刷新TPC-C纪录对国产数据库行业意味着什么?_文化 & 方法_李冬梅_InfoQ精选文章