最近大家的关注焦点都在 ChatGPT、大模型上。但我今天想分享另外一个可能你没注意到的新闻:腾讯自研数据库 TDSQL,昨天在一个世界级的权威测试上,拿到了第一的名次,性能刷新记录。还记得两年前,很多媒体还在挥斥方遒谈基础软件,说我们国家数据库落后,操作系统落后,芯片落后。现在,才过了多长时间,这个话题似乎已经不是那么性感了,说出来媒体都不一定再感兴趣。这种现象让我想起昨晚精读的一本书《遥远的向日葵地》。书中作者李娟提到向日葵,她说:“所有人只热衷于捕捉向日葵金色的辉煌瞬间,无人在意金色之外的来龙去脉。它们远不止开花时节灿烂壮美的面目,更多的时候还有等待、忍受与离别的面目。”是啊,于向日葵而言,那些拍照的、打卡的、赞美的路人,终究是过客。在热烈地绽放之前,它需要经历漫长的蛰伏和生长,需要独自面对暴雨、狂风和干旱。做国产数据库也是这样。你不可能什么时候都站在聚光灯下。几年前,大家质疑为什么国内互联网大厂在基础设施方面没有积累,是不是只关注应用层的创新。于是,自研数据库被提到了新高度。但讨论的热潮过去之后,这一切慢慢被淡忘。从看客的角度,我们可以追逐热点,什么来了关注什么,心猿意马,指点江山,评头论足。而对于做事的人,评判他们的标准永远是创造力。我们也在创业,看到 TDSQL 打榜成功的新闻,不免多了一些感慨吧。我知道,要借助风口做事情,但耐力和定力再怎么强调都不为过。很多人,都是这山看着那山高,总觉得别人的事情、新的事情更好,其实不然。特别是想要把数据库这样一个需要长期积累和打磨才能看到曙光的事情做成,更是考验一个团队的耐力和定力。感叹完毕。说下那条新闻的具体信息。昨天,据权威机构 TPC 官网披露,腾讯自研的国产分布式数据库 TDSQL 刷新 TPC-C 的榜单。TPC-C 很有来头,它被誉为数据库领域的“世界杯”,我们熟知的 Oracle、DB2 等数据库都做过打榜测试。也就是说,从测试的结果看,TDSQL 性能是最好的,优于其它数据库。TPC-C 是 OLTP 数据库性能测试领域唯一的国际权威榜单,它通过模拟一个电商交易系统的常见操作来客观衡量数据库的能力。还记得之前在锤子科技的时候,几个同事争论到底选择哪款数据库,沟通了半天,我才发现大家对于“性能好”的定义不一样。你可以停下来想想要是你来做决策,会选择哪几个指标作为核心维度来衡量一个数据库性能的好坏。TPC-C 选了两个指标。第一,每分钟处理的订单数,叫 tpmC。TPC 官方准备了一套基准测试程序,通过压这套程序,来看对应数据库一分钟内到底能处理多少新订单。第二,成本。仅仅看 tpmC 的话,那我可以不断增加机器。就像同样写一篇文章,你用一天,我用一周,虽然结果一样,但成本是不一样的。所以,除了 tpmC,还要看处理一个订单的成本。简单画一个坐标系,横轴是 tpmC,纵轴是成本。TPC-C 通过横纵两个维度,基本就可以框定一个数据库的实力——tpmC 越大,成本越低,数据库越好。为了能够客观地了解 tpmC 和成本数据,TPC 还有两个重要的审计要求:一定要压满 8 小时,8 小时内,tpmC 的波动不能特别大;同时,测试中模拟断电或者硬件故障的场景时,数据不能丢失,不能出错。这次测试,TDSQL 的 tpmC 刷新了世界记录,达到了 8.148 亿,并且每个 tpmC 的成本是同类产品的 1/3。相当相当厉害。我知道你不从事这个行当,对这些数据没那么敏感。简单理解就是 TPC 认为,在打榜场景中,TDSQL 的能力已经比之前参与测试的其他数据库表现更好。想达到这个水准,需要解决哪些问题呢?我问了腾讯云数据库专家工程师雷海林。他说主要有以下几个。第一个,假如前端要支撑 6.14 亿客户端的连接,那每一台数据库都要能支撑 40 万以上的 DB 连接,这对网络的要求特别高。第二个,数据库要解决事务的问题。事务中的一个难点是锁冲突,或者资源冲突。高并发的场景中,怎么保证事务没有卡在某一模块,并不容易。第三个,随着规模的扩大,事务量、请求量也是越来越大,这对分布式系统的要求也会越来越高。这种情况下,需要有好的方法解决网络性能、锁等待等稳定性的问题。第四个,节点级的故障,需要自动完成切换。切换后最终要确保整个事务交易不能有任何失败。关于 TDSQL 更具体的技术细节不展开了。那天和腾讯的同学聊,他们说,TDSQL 具备金融级的一致性、高可用、分布式等等特征,有将近 20 个金融公司的核心系统都跑在它上面。没想到,确实没想到。之前,我的印象里,银行的数据库要么是 Oracle,要么就是 IBM 的 DB2。而现在,一家中国公司做的数据库,也这么能打了.......之前,国内也有其他数据库厂商打过榜。我觉得国产数据库如果有实力,还是应该去 TPC 跑一跑测试,这比单纯地用形容词宣传好很多。毕竟,TPC 的测试场景比较全面,流程也已经经过世界级数据库厂商的验证,可信度比较高。同时,就像我和腾讯的同学聊的那样,测试的过程也是验证产品在极端情况下是不是能够做到比较好的水平。即使测试的数据不好,那也能够客观了解到自己产品和其他几家的差距。国产数据库,我们喊了很多年。刷新 TPC 纪录,也并不代表着我们在各个方面都已经领先,毕竟衡量一款好的数据库产品还有很多维度。但敢于打榜,且取得不错的成绩,已经是一次里程碑式的突破。它至少告诉我们,像 TDSQL 这样的国产数据库,正在向更高的山峰攀登。祝福 TDSQL。祝福国产数据库。祝福那些还在默默蛰伏和生长,还未盛开的人和产品。