蚂蚁“备战”TPC-C这1年


阿里妹导读:1年前OceanBase团队开了个会,定了个小目标,接下来的一年中这群工程师闭关攻坚。从掉头发到睡几个小时就跳起来看邮件,更甚至有人天天焦虑地捧着手机等邮件。

1年后,蚂蚁金服自研数据库OceanBase登上TPC-C排行榜榜首,这一成绩开创了多项世界先河:中国数据库第一次登上TPC-C榜单;第1次基于公有云通用机型进行测试;分布式无共享关系数据库第1次通过审计并取得创纪录成绩。今天,我们走到幕后看成绩背后的光荣与梦想,艰辛与泪水。

2010年,在全球OLTP数据库权威测试TPC-C中,老牌数据库巨头Oracle取得了tpmC 3000多万的成绩,接近第二名IBM的3倍,堪称“独步武林”。此后的9年中,这一纪录无人能破。

事情回到2011年,阿里巴巴内部一个数据库团队在备战双11时遇到了点麻烦,他们所支持的淘宝收藏夹业务只要流量一大就反复宕机。大战在即,团队全员立刻汇合,紧急修改代码。

今天看来这不过是个小问题,但在当时却生死攸关。“要是解决不了这个问题,我们的项目就挂了。”

蚂蚁金服研究员杨传辉当时就站在负责修改代码的工程师背后,一行一行给他review。他的身旁站着阳振坤——他们的Leader,也是这个数据库项目的创始人。

他们的项目名叫OceanBase,第一次正式承接双11流量时,这个数据库还没满2岁,淘宝收藏夹是他们唯一支持的业务。

那一年谁也没有想到,九年之后,OceanBase一举超越Oracle,登上了TPC-C benchmark的榜首。

测试只是手段,做出更好的产品才是目的

TPC-C是全球目前最具公信力的联机交易处理(OLTP)数据库的功能与性能结合的测试标准。简而言之,一款商业数据库想要向业界证明自身实力,TPC-C测试是一项硬指标。TPC-C的排行榜长期被Oracle、IBM等外国厂商占据,从未出现过中国自研品牌的身影。

很高的测试门槛,把众多厂商挡在门外。首先,TPC-C测试需要模拟真实的交易环境去运行,整个测试的工具,包括所有链路在内,都需要自己搭建,而且要严格按照TPC委员会发布的标准来做——一份100多页的PDF,事无巨细,全是英文。其次,交易数据库性能的提升本身就是一件极为困难的事,Oracle已经站在巅峰,想超越它谈何容易。

“我们不是去年才想起要跑TPC-C测试的,我们从2010年立项第一天就研究过这个指标。”杨传辉说。但是他们也清楚地知道,拿着尚未成熟的产品去跑测试是白费功夫:“三四十名可能都拿不到。”

厚积薄发,这一“积”就是九年多。

2018年8月,蚂蚁金服技术专家邹银超和OceanBase团队一起开了个会。在这场为筹备TPC-C测试而开的项目会上,杨传辉定下了打榜“小目标”:超越Oracle的纪录。

邹银超感到震惊。Oracle 3000多万的纪录已经保持了九年,无人可以撼动,OceanBase起步至今也才九年,对于数据库来说还非常年轻,第一次冲击TPC-C纪录,就直接剑指数据库王者Oracle。

“这个项目大概要做两三年吧?”他当时如此揣测。

按照既有的经验,两三年时间都很紧张。蚂蚁金服资深技术专家蒋志勇作为OceanBase团队的核心成员,在筹备的初期阶段跟随阳振坤先后拜访了浪潮集团乔鑫总经理和清华大学陈文光教授,学习和了解TPC-C测试的相关流程。而为了做出符合TPC-C规范的测试工具,需要将大量的人力和资源投入到产品研发和改进方面。“不管怎么说,测试只是手段,做出更好的产品才是目的。”蒋志勇说。

专攻测试工具的团队很快组建起来,蒋志勇牵头,成员人数一双手就数得过来。


TPC-C项目北京团队闭关攻坚

技术攻坚组也组建到位,北京一个团队,杭州一个团队,各占一个项目室,开始闭关攻坚。

其他各个团队都伸出了援手:硬件团队、中间件团队、阿里云……DBA团队和业务团队也以极大的包容,在人手紧张资源不足的情况下,支持着OceanBase技术攻坚。

困难虽多,但开弓没有回头箭。“蚂蚁的技术人是使命必达的。”正如DBA团队的资深运维专家师文汇所言,定下了世界第一的目标之后,所有人都会团结一致,就会倾尽全力去战斗。“追求极致,没有上限。”

“审计员都没见过的新玩意儿”

TPC-C测试的流程中,非常重要的一环是审计员来现场审计,以确认测试的所有细节符合规范。审计员全世界只有三位,满世界飞来飞去,日程紧张。

邹银超来自数据技术部,在项目中负责硬件选型、系统性能优化和测试方案评估,几乎每天都要和审计员进行邮件沟通。因为十多个小时的时差,他最常做的事就是凌晨把邮件发出去,睡几个小时,然后跳起来看审计员有没有回复。

一开始的测试方案是基于物理机做的传统方案。但到了2019年新年前后,策略发生了变化:准备使用阿里云ECS虚拟机进行测试。

比起使用昂贵的专用设备,上云意味着大幅度降低实际测试成本,以及优秀的可扩展性。OceanBase的这个方案,硬件成本仅占18%,远低于Oracle的硬件成本占比,但是在公有云上做TPC-C测试,前所未有。

审计员对此表示出了强烈的兴趣。分布式数据库来测TPC-C,OceanBase已经是第一家了,以如此大规模的集群上云测试,更是闻所未闻。

但是面对这样一种全新的形式,审计员也很谨慎,每一个细节都“抠字眼”式地确认。“有时候我们所有测试都跑完了,审计员忽然指出‘这里不合规’,就又得重头来过。”回忆起艰辛的沟通过程,蒋志勇苦笑。

“来回沟通了三个月左右,因为拿不准会测什么和怎么测,每一种测试方案都要准备和沟通。”邹银超说,“天天焦虑地捧着手机等邮件。”

更让他们焦虑的事来了:到了2019年5月,整整一个星期,审计员没有任何反馈。

阳振坤保持淡定:“再等两天。”

两天过去了,仍然杳无音信。团队坐不住了,写邮件过去询问。这一次审计员回了一封极长的邮件,原来是因为OceanBase的测试方案从未有人做过,而且规模特别庞大,审计员自己也没把握,专程去了一趟TPC组织总部,把方案提交给TPC-C技术委员会开会讨论。

讨论的结果反馈到了阳振坤手中,他第一时间把消息发到了整个项目的每一个相关群里。“通过了!”测试方案最终获得了TPC-C委员会的认可。“心头的一块大石头总算落了地。”蒋志勇松了口气。各个群里一片欢腾,但这还只是路程中的第一块里程碑。

“大家像战友一样,把后背交给对方。”

“聚到一个项目里,大家从肉体到心灵,都靠得更近了。”


TPC-C项目杭州攻坚团队

蚂蚁金服技术专家曹晖是早期就加入TPC-C测试项目的成员之一,这一年多来,他最常感到的就是“时间不够用”。物理机换成虚拟机,单机50%的性能差距很快显现出来,如何在短时间内找到优化点提升性能,成为团队攻坚的重点任务。

杭州闭关室的墙上画着一张性能表,每周更新,这条性能曲线也成为团队成员的“心情曲线”:“看着它像阶梯一样一步一步地走高,大家就非常高兴,要是连续一段时间爬不上去,就要开始掉头发了。”曹晖笑着说。

掉头发的不仅仅是OceanBase的攻坚团队。师文汇和DBA团队也每天都在“发愁”稳定性和研发效能。蚂蚁最核心的业务全部都运行在OceanBase上,稳定性丝毫不容有失,但大量人力和资源投入到TPC-C项目后,支持和维护日常业务的重担都落到DBA团队和业务团队肩上,工作量激增。

“最紧张的是研发环境,如果出问题,很多业务开发都会受影响。”整整一个半月,DBA、交付、系统等团队都在携手应对这个问题,终于,风险排除了。

TPC-C测试的结果公布后,阳振坤在群里向所有兄弟团队表示感谢:“感谢大家对OceanBase的理解和宽容。”

想要取得任何重大成就,一个团队的力量始终有限,但百川汇海,聚沙成塔。“一场仗,一颗心。”杨传辉用这六个字总结这场举全员之力的联合作战,师文汇的说法更热血也更感性一些:“胜则举杯同庆,败则拼死相救。大家像战友一样,把后背交给对方。”

“从来没见过这么平稳的曲线”

7月底,性能攻坚告一段落,真正用于测试的大规模集群由阿里云准备到位,交到了项目团队手中。曹晖被任命为“操作员”,掌控两百多台ECS云服务器。

意想不到的事又发生了。之前在小规模集群上解决掉的问题,一上到大规模集群,又一一暴露出来。“压力不均匀,抖动很厉害,还出现了不少完全没预料到的问题。”蒋志勇说,“而且这还只是一些基础问题,把它们解决掉之后,还得把曲线跑得很平稳才行。”

按照TPC-C的要求,在测试取值的2小时之内,系统抖动不能超过2%。

而此时距离审计员前来杭州现场审计,时间仅剩两周。

从拿到正式测试的大规模集群开始,大家就开始连轴转。曹晖天天在群里“钉”人,他盯着200多台云服务器的运行,只要发现问题,马上“钉”到对应的同学,被“钉”的同学无论在杭州还是北京,第一时间抄起电脑就冲到闭关室。

阿里云团队也倾力配合,IaaS层的配置和性能的优化,问题一个一个地在他们的支持下被攻克。

“想法很简单,就是往前冲。没有退路,很多岗位连backup都没有。”

没有两三年时间,只用了一年,OceanBase就迎来了TPC-C的最终大考。

8月6日,TPC-C审计员抵达杭州蚂蚁金服总部。

“一边很有信心,一边又很紧张。”杨传辉这样形容当时的心情。信心来自于九年以来的积淀,他们自信已经具备了冲击Oracle纪录的实力;紧张来自于时间紧迫,最后针对大规模集群的调试只有两周,会不会有不可预知的问题发生?

测试工具启动,OceanBase开始运行,预热的时间中,审计员出去喝了杯咖啡。等他再回来时,性能曲线已经展示在了屏幕上——极其平稳,没有丝毫抖动。

经验丰富的审计员大为惊叹,因为从来没有见过这么平稳的曲线:“Very impressive!”

TPC-C的性能测试要求取值时段是2小时,OceanBase是8小时;TPC-C要求的抖动幅度是不超过2%,OceanBase是低于0.5%。

现场审计结果获得审计员认可,接下来又经过了一个多月的调优,9月底,OceanBase跑出了Finalrun结果。凌晨4点,曹晖和邹银超把最终报告发给审计员。

10月2日一早,审计通过的结果出现在了TPC-C官网上——tpmC 6088万,是Oracle纪录的两倍多,新的纪录诞生了。

“那一刻真没有感觉到特别兴奋,反而觉得,这就是理所当然的。”蒋志勇说。

“技术男不会特别情绪化。而且,我们在2014年就已经兴奋过了。”杨传辉说。这位从头看着OceanBase诞生和成长的工程师经历过更多风浪,最情绪化的反应留在了当年OceanBase第一次承接核心支付业务成功的时刻,“写代码这件事,只要坚持得足够长,肯定能做出来,但是就是需要坚持,这种坚持可能以十年二十年为单位。到了真正做出来的时刻,就会觉得是理所当然的了。”

“不管是在做TPC-C还是日常工作中,我觉得蚂蚁的技术人是使命必达的,在做一件事情或者确定一个目标以后,倾尽全力去战斗。就像TPC-C项目启动的时候,阳老师说一定要做到世界第一,然后大家团结一致为了这个目标去努力。”师文汇说,“蚂蚁技术人一直在追求极致,不断的用创新去突破当前技术的限制,这个在双十一、TPC-C测试以及日常的工作中都有所体现,比如想尽办法去优化CPU的消耗、用各种方法降低RT时间。”

“家人终于知道我是做什么的了”

“比打破纪录更重要的,是OceanBase为这个行业打开了全新的可能性。”蒋志勇说,“假如按Oracle的路子走,Oracle就是顶峰了,但OceanBase用分布式的方式去做这件事,取得了一个新的纪录,让市场和客户有了新的选择。”

以这个世界第一为契机,平时不太接触技术领域的人,也开始了解中国自研的数据库。“我的家人终于知道我是做什么的了。”曹晖感慨说,“更让我高兴的是,他们已经开始给别人讲什么是数据库了。”

杨传辉把OceanBase登顶成功的报道转到了朋友圈,他很快接到了母亲的电话:“你朋友圈里发的那个‘世界第一’是什么?”七岁的女儿也兴致盎然地来问他,他对孩子解释说,这是一个跑得很快很快的东西。

但每一位工程师都清楚地知道,“跑得很快”只是一个优秀数据库的必要条件,而非充分条件。

数据库像个跑车。极限速度取决于发动机,但跑车不仅仅只是一个发动机。OceanBase在TPC-C测试的成绩,证明我们在“发动机”性能方面达到了全球领先水平。但是数据库的综合能力方面,我们还有很大的进步空间。

下一步,OceanBase还要开发更丰富的功能,提升复杂查询的能力,在同一套引擎里既支持OLTP又支持OLAP。此外还要基于上下游产业来营造一整套生态系统。这些就像是跑车的外观、车内设施、配套服务等等,只有全都做好,才能打造出一款顶级跑车。

此外,蚂蚁金服还决定将自己开发用于TPC-C测试的工具开源。这意味着TPC-C将变成一种“普惠”测试。“任何一家公司只要在阿里云上租用资源,用这个开源工具跑测试,然后请审计人员来审计就可以了。”杨传辉说,“关键只在于,你的产品够不够好。”


2018双十一中的OceanBase团队

OceanBase用了九年将自己的产品打磨至此,但创造一个新纪录并不是它最终的目的。更重要的是,它为中国自研的数据库铺平了一条道路。


原文链接
本文为云栖社区原创内容,未经允许不得转载。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/517647.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

瞧!公务员的工作还可以这样干

盼啊盼,第六届世界互联网大会在乌镇如期而至。 在今天的大会上,小云带来了帮助公务员提升工作效率的“神器”,平头哥压箱底的“宝贝”...... 一起来深入了解下。 政务钉钉来了!告别公务员传统工作方式 今天,浙江省政…

Nacos 集群搭建_01

文章目录一、准备工作1. 服务器部署2. nacos下载2. nacos下载与解压3. 编辑配置文件4. nacos 集群配置二、初始化nacos脚本2.1. 创建nacos数据库2.2. 初始化nacos脚本三、启动nacos集群3.1. 启动nacos服务3.2. 测试验证一、准备工作 1. 服务器部署 系统版本ip部署应用应用版本…

学数据科学,为何不尝试这 9 个编程语言!

在256种编程语言中,了解数据科学的编程语言!作者 | Rashi Desai 译者 | Arvin,责编 | 屠敏头图 | CSDN 下载自东方 IC出品 | CSDN(ID:CSDNnews)数据科学在相当长一段时间以来一直是一件大事。在当今飞速发展…

Swift 5 时代的机遇与挑战到底在哪里?

作者|刘镇夫(小鱼) 出品|阿里巴巴新零售淘系技术部 本文是知名 ios 开发者 NSHipster中文译者-刘镇夫(小鱼),在云栖大会上为大家带来的分享,本文主要介绍几点,第一、Swift 5 代表什么&#xff1…

Nacos 集群整合 Nginx 实现反向代理、负载均衡_03

文章目录一、Nginx 配置1. 下载安装nginx2. 配置nginx3. 启动nginx4. 测试验证5. 配置域名4.6. 域名验证一、Nginx 配置 1. 下载安装nginx https://gblfy.blog.csdn.net/article/details/119536779 2. 配置nginx # 进入nginx目录 cd /usr/local/nginx/conf# 编辑nginx.conf…

阿里云Kubernetes CSI实践—NAS动态存储卷使用

1. 前言 NAS存储盘能将nfs(网络文件系统)挂载到你的Pod中,阿里云Kubernetes CSI支持静态存储卷挂载和动态存储卷挂载2种方式, 在静态存储卷挂载的方式中,通常需要手动编辑和创建一个pv/pvc进行挂载,当需要…

怒肝 8 个月源码,我成为了 Spring 开源贡献者

作者 | cxuan 来源 | 程序员cxuan责编| 王晓曼前言我最近一直在写Spring的文章,而且仅仅是 Spring FrameWork 的文章 ,从最开始的官网入门到现在源码的深度分析。主要就是三个系列:官网入门系列,Spring官网读书笔记,这一系列的文章…

HTTPS配置过程

该文章借鉴于博主小东很不戳 先在自己项目中根目录下生成数字证书 生成命令如下:keytool -genkey -alias tomcathttps -keyalg RSA -keysize 2048 -keystore sang.p12 -validity 365 命令解释 • -genkey表示要创一个新的密钥。 • alias表示 keystore 的别名。…

汇报时,如何让老板快速抓住重点?—— 黄金三步法

阿里妹导读:对事物的归类分组是我们人类的天性,我们的大脑会自动将发现的所有事物以某种持续组织起来。但如何组织才能帮助我们解决工作和生活中出现的各种复杂问题?今天,我们请阿里高级技术专家张建飞分享他的黄金三步法。 我们…

Nacos 集群 Nginx MySql SpringBoot2.x 微服务_04

接上一篇: Nacos 集群整合 Nginx 实现反向代理、负载均衡_03 文章目录一、配置规则1. 域名登录nacos2. 测试验证二、SpringBoot2.x 微服务2.1. 依赖引入2.2. bootstrap.yaml配置2.3. 测试类三、测试验证3.1. 启动项目3.2. 验证一、配置规则 1. 域名登录nacos 使用…

Serverless 实战 —— 快速搭建 SpringBoot 应用

前言 首先介绍下在本文出现的几个比较重要的概念: 函数计算(Function Compute): 函数计算是一个事件驱动的服务,通过函数计算,用户无需管理服务器等运行情况,只需编写代码并上传。函数计算准备计算资源&am…

人才缺口40万,摆地摊也没有它挣钱,这个神仙职业今年太火了!

当你学习编程时,最先被困扰在哪一步?是不是很容易陷入在语法之类的细节而忽视基础概念?解决当前任务的最佳方法是什么?在多种编程语言之间来回切换,却感觉不到效率的提高?0 基础学习编程,最先入…

首次公开 | 淘系技术总监马鏖谈淘系用户增长

作者|马鏖 出品|阿里巴巴新零售淘系技术部 导读:近年来,关于用户流量的瓶颈让很多企业感到焦虑不安,互联网用户整体增速放缓,用户规模趋于饱和。同时,竞争个体成倍增长,流量资源争夺越发激烈,流…

JDK下载安装以及配置教程

截至2022年,JDK主流版本有JDK8跟JDK11 这里以JDK11为例 一、下载JDK 这里下载方法有两种 1.官网下载(需要注册) 网址:Java Downloads | Oracle 进入官网往下滑找到Java SE subscribers have more choices 根据提示框依次选择 弹出…

Tomcat10 端口修改 Linux 环境

文章目录1. 编辑文件2. 启动3. 验证1. 编辑文件 修改tomcat默认的端口,将默认端口8080修改为8090: cdapache-tomcat-10.0.10/conf/ vim server.xml 修改http协议端口 关键词:HTTP 修改前: 修改后: 2. 启动 cd ap…

月入过万的副业你要不要?不需要编程知识,不限男女,不限学历

01你知道做什么兼职最赚钱吗?你想拥有一份月薪过万的兼职工作吗?今天,我给你推荐的是看起来高大上,实则难度系数并不高的脚本创作!你知道兼职脚本有多赚钱吗?普通程序员每天拿出2小时的时间,每个…

高德在提升定位精度方面的探索和实践

2019杭州云栖大会上,高德地图技术团队向与会者分享了包括视觉与机器智能、路线规划、场景化/精细化定位时空数据应用、亿级流量架构演进等多个出行技术领域的热门话题。现场火爆,听众反响强烈。我们把其中的优秀演讲内容整理成文并陆续发布出来&#xff…

Nginx 反向代理

文章目录一、软件安装验证1. Linux安装nginx2. Tomcat10 下载和配置 Linux 环境3. 服务器部署二、软件安装验证2.1. 启动tomcat2.2. nginx配置2.3. 关键配置2.4. 启动nginx2.5. 测试验证一、软件安装验证 1. Linux安装nginx https://blog.csdn.net/weixin_40816738/article/d…

收益 or 挑战?Serverless 究竟给前端带来了什么

导读:前端开发者是最早享受到 “Serverless” 好处的群体,因为浏览器就是一个开箱即用、甚至无需为计算付费的环境!Serverless 把前端开发体验带入了后端,利用 FaaS 与 BaaS 打造一套开箱即用的后端开发环境。本文作者将从前端角度…

阿里云数据库四位小伙伴聚齐!共同开启生态合作新篇章!

随着用户的不断扩大,阿里云数据库能够帮助用户节省大量的基础运维工作,但是基于数据库业务侧的诊断、调优、护航等工作也是必不可少的。为了满足更多的市场需求,阿里云数据库团队发起数据库合作计划,招募具备优秀专业服务能力的伙…