10 月 2 日,国际事务处理性能委员会(TPC)宣布:在最新发布的 TPC-C 排行榜中,蚂蚁金服自研数据库 OceanBase 位列第一。InfoQ 记者第一时间采访到蚂蚁金服研究员、OceanBase 主架构师杨传辉(日照),请他解读这份 TPC-C 榜单,同时介绍 OceanBase 积累九年多才正式参与 TPC-C 打榜的过程和意义。

请从专业性和权威性,参与标准和参与流程上,介绍一下 TPC-C 的测试结果,对于数据库厂商来说意味着什么?

TPC 是由数十家会员公司创建的非盈利组织,成立于 1988 年,总部设在美国,图灵奖得主 Jim Gray 是奠基人。TPC 的成员主要是业界主流的计算机软硬件厂家,其职责是制定企业级应用基准测试考评的标准规范,并且衡量整体系统的性能和性价比,管理测试结果的认证和发布。Oracle、IBM、微软等公司的多个数据库产品曾多次参与这个测评并且是主要领先成绩的保持者。TPC-C 是 TPC 组织制定的关于 OLTP 数据库事务处理能力的基准测试,金融、电信、政府等关键领域的客户一般参照 TPC-C 结果来衡量各个数据库厂商的事务处理能力。

只有在 TPC 官方网站上得到认证,得到国际机构审计的测试结果才是 TPC 机构认可的测试结果。TPC-C 认证要求非常严格,大到性能、功能、数据一致性和容灾能力,小到测试过程中使用过的鼠标键盘价格,都需要严格披露,确保测试可复现且与真实业务场景保持一致。OceanBase TPC-C 仅仅认证过程就花费超过半年时间

数据库的核心能力包括性能、成本、功能、生态等等,而 TPC-C 是全球 OLTP 数据库最权威的性能测试基准。TPC-C 登顶是每个 OLTP 数据库厂商的梦想,登顶意味着具备世界级的事务处理能力,能够满足无论是互联网还是金融、电信、政府等关键领域的核心系统的事务处理需求。目前在 TPC-C 指标上,蚂蚁金服是唯一一家中国上榜企业。

OceanBase 此前参与过该基准测试吗?取得的成绩是什么?

几乎每个 OLTP 数据库都会在测试环境中跑 TPC-C 基准测试,OceanBase 也不例外。虽然 OceanBase 在阿里巴巴“双十一”等业务场景中积累了非常好的高并发事务处理能力,但 TPC-C“打榜”难度非常之大,OceanBase 积累了九年多才选择正式参与 TPC-C 打榜。

请详细介绍此次 OceanBase 参与测试的全过程,包括:如何参与?过程中需要配合提交什么?

每家数据库厂商都可以参与 TPC-C,只需要邮件联系 TPC 官方组织报名参加即可,关键在于数据库厂商有没有能力通过测试并得到好的结果。

OceanBase TPC 审计分成三个阶段:第一个阶段称为准备阶段,根据 TPC-C 规范的要求实现必须的功能并做好性能优化,这个阶段需要把测试规范理解清楚,并把每个疑问都和审计员通过邮件沟通清楚。需要注意的是,TPC-C 审计非常严格,一定要细化到 TPC-C 规范的每个条目,任何一条不符合规范都会导致测试不通过;第二个阶段称为现场预审计,美国的审计员来到蚂蚁金服杭州总部,和 OceanBase 团队成员一起完成功能测试、ACID 测试、性能测试、宕机测试、架构和代码 Review、性能成本计算等全部过程。当时在这个过程中发现了一些问题,OceanBase 团队后续几周进行了全部的改正;第三个阶段称为正式审计,OceanBase 团队按照审计员给的检查列表修改完成所有预审计阶段发现的问题,每一项都得到审计员确认后再运行最终测试,最后完成 FDR(Full Disclosure Report)完整披露报告并向 TPC 技术委员会正式提交结果。

我们应该如何看懂目前官网披露的 TOP10 结果中,各类相关指标背后的意义?比如性能、价格、CPU...

TPC-C TOP10 结果中,有些是数据库公司测试的,有些是硬件公司测试的,不同测试的硬件架构和数据库软件架构都可能有所不同。TPC-C 是开放的测试基准,不管采用什么架构都可以来参加测试,只要符合 TPC-C 规范即可,最终的衡量标准主要是两个:一个是性能(tpmC),还有一个是性价比(price/tpmC)。性能表示数据库能够跑多快,性价比表示数据库的成本能够做到多低。

关于性能,TPC-C 测试模拟商品交易,包含五种事务:NewOrder 创建新订单(占比 n/a)、Payment 支付订单(占比>=43%)、OrderStatus 查询最近订单(占比>=4%)、Delivery 批量配送订单(占比>=4%)和 StockLevel 库存状态分析(占比>=4%)。TPC-C 虽然没有规定 NewOrder 事务的占比,但通过其它四种事务的占比可以反推 NewOrder 占比<=45%。而 TPC-C 的性能指标用 tpmC(transaction-per-minute-C)来衡量,表示每分钟执行的 NewOrder 事务数,因此,实际测试时,NewOrder 占比往往都是 45%,相应地,Payment 占比 43%,另外三种事务占比 4%。另外,TPC-C 测试要求 10% NewOrder 分布式事务,以及 15% Payment 分布式事务。

关于价格,TPC-C 测试综合计算软硬件价格以及三年服务价格,软硬件价格除了数据库和存储,还包括针对 TPC-C 场景开发的应用系统,甚至连测试使用的台式机也需要计算在内。软件价格和硬件价格最好区分开来,硬件价格代表商业数据库的真实成本,软件价格代表商业数据库的利润。例如,OceanBase 这次 TPC-C 测试的总体价格虽然不低,但是硬件价格占比很低(不到 18%),真实性价比远远高于第二名 Oracle,整体性价比和 Oracle 比较接近更像是一种定价策略。另外,TPC-C 测试要求磁盘至少能够存储 60 天的数据量。集中式数据库往往存储一份数据,而 OceanBase 采用 Paxos 协议实现 RPO = 0,在 TPC-C 测试以及主流生产系统中都存储了 2 份数据和 3 份日志,相当于 OceanBase 需要提供 120 天的存储容量并计入价格。

关于 CPU,这里有两个关键点

1、对于集中式架构,除了数据库使用 CPU 之外,专用存储设备也需要使用 CPU。例如,第二名 Oracle 3000 多万 tpmC 的测试中,数据库使用了 108 颗 T3 SPARC 处理器,共有 1728 个物理核心和 13824 个执行线程,同时存储设备使用的是 Intel 服务器作为机头,总共使用了 97 台服务器,194 颗 Intel X5670 CPU,2328 个物理核心。

2、TPC-C 基准测试无法简单地通过增加 CPU 核来提升性能。这是因为,TPC-C 考察分布式事务,数据库软件如果做得不好,无论怎么增加 CPU 也无法提升 TPC-C 性能。Oracle 因为其 RAC 技术可以把 OLTP 数据库服务器扩展到几十个节点,其它软硬件厂商凭借单机无法超越,直到 OceanBase 实现了真正的 OLTP 分布式数据库技术。

从结果来看,OceanBase 提交时间是 2019 年 10 月 2 日,其他几家提交时间是 2011 年、2010 年... 为何大家提交时间如此不同?不同时间提交的结果,具有可比性吗?

TPC-C 测试是需要有驱动力的,Oracle 2010 年测试得到 3000 多万的结果之后就“独孤求败”了,其它厂商测不过,Oracle 也缺乏刷新自己保持的记录的动机。Oracle 最新的测试结果是 2013 年 3 月份做的,在榜单的第四名,当时也是为了推广 Sun 的 SPARC 处理器。大家关注的往往都是榜单的前几名,Oracle、DB2 和 SQL Server 这三家公司把 TPC-C 性能测得太高了,导致其他厂商基本没有机会进入 TPC-C 榜单前几名,与其测出普通的结果,还不如干脆保持“神秘”,OceanBase 也是准备了九年确保能够上榜之后才正式测试。

OceanBase 和榜单前几名的测试时间相差比较大,本质的原因在于其它数据库采用的是专用硬件(专用服务器 + 专用高端存储),OceanBase 采用的是基于普通 PC 服务器的分布式架构。采用分布式架构之后,OceanBase 的硬件成本大幅优于专用硬件,这几年硬件性价比提升的主要受益者也是普通 PC 服务器。所以,这里更多是专用硬件和分布式架构的区别,而不在于测试时间的差别。当然,基础软件重大创新的时间周期是很长的,一般需要十年以上的积累,银行核心业务今天使用的大型机还是几十年前的技术。

据介绍此次测试结果是在阿里云支持下实现的,这意味着什么?硬件产品与测试结果之间的关系是什么?

TPC-C 测试需要考察三年软硬件总费用,如果采用独立部署的模式,需要购买全部硬件,例如第二名 Oracle 测试的硬件总体成本大约 3000 多万美金,绝大多数商业公司都是玩不起的。而 OceanBase 采用阿里巴巴公有云提供的 ECS 云服务器,测试多长时间就租用多长时间,使得测试成本大幅降低。

TPC-C 测试要求在峰值性能稳定运行 8 个小时,其中至少 2 小时性能抖动不超过 2%,OceanBase 做到了 8 小时性能抖动不超过 2%,无论对数据库软件还是硬件挑战都非常大。OceanBase 在阿里云支持下完成此次 TPC-C 测试,总共使用了 204 台 ECS i2 云服务器。另外,TPC-C 模拟的是银行的交易核心,对稳定性和宕机恢复都有严格的要求,说明 OceanBase 能够在阿里云上提供金融级的可靠性。

有人说 OceanBase 取得的测试结果是被“双十一”这样的业务倒逼的,我们应该如何理解业务倒逼技术?

OceanBase 从 2010 年开始立项就定位要做世界级的分布式数据库,然而,好的技术一定要先有好的业务场景。对于数据库这样的基础软件,想要弯道超车,更是需要重量级的业务场景。每年“双十一”零点的峰值压力对于高性能数据库是绝佳的练兵场,OceanBase 也是在阿里内部经过了多年的“双十一”历练之后才开放给金融以及其它行业的客户。

对于数据库这样的通用技术来说,既要业务需求倒逼但同时又要超出业务需求。数据库的整体设计一定是面向通用场景,遵守数据库行业国际标准,例如针对数据库语法的 SQL 规范,以及针对数据库性能的 TPC-C 测试规范;同时,数据库的功能集合很大,需要根据业务需求合理安排研发优先级,研发团队成员才能从解决实际业务问题中找到成就感。

我们如何看待国内厂商积极参与 TPC 测试?

TPC 是数据库行业针对性能测试的国际权威标准,国内厂商积极参与 TPC 测试,本身也是中国数据库行业自信的一种体现,表明中国数据库可以逐步参与全球竞争。中国的数据库需要回归研发本质,具备自主研发和自主创新能力。对于 TPC-C 测试,我也看到部分国内厂商采用未经官方认证的标准,我认为这是不合适的。OceanBase 后续会将 TPC-C 测试工具开源,使其它数据库厂商也能够简单地完成符合审计标准的 TPC-C 测试,进一步促进中国数据库产业和国际接轨。

OceanBase 在兼容 Oracle 方面,目前的主要进展是什么?接下来的发展计划是什么?

本次 TPC-C 测试采用的是 OceanBase 2.2 版本,OceanBase 2.2 已经初步具备 Oracle 兼容能力,OceanBase TPC-C 测试采用的就是完全兼容 Oracle 的存储过程语法。阿里巴巴内部有部分 Oracle 业务已经平滑迁移到 OceanBase,阿里巴巴外部也有股份制银行正在将 Oracle 业务平滑迁移到 OceanBase。接下来,OceanBase 还会进一步加强 Oracle 兼容特性,重点加强分布式优化器和执行器的核心能力。

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

蚂蚁金服自研数据库OceanBase如何登顶TPC-C相关推荐

  1. joa运行oracle,蚂蚁金服自研数据库OceanBase登顶全球第一,打破Oracle维持九年的世界纪录...

    蚂蚁金服自研数据库OceanBase登顶全球第一,打破Oracle维持九年的世界纪录 2019年10月25日来源:新智元 DQoJCQkJCQkJPGEgaHJlZj0iaHR0cDovL3Nucy5 ...

  2. 世界领先!详解蚂蚁金服自研数据库OceanBase的高可用及容灾方案

    小蚂蚁说: 关于蚂蚁金服自研的金融级分布式关系型数据库OceanBase的故事相信大家已经不再陌生了(新来的同学可以移步<厉害了,蚂蚁金服!创造了中国自己的数据库OceanBase>了解更 ...

  3. 前世今生:蚂蚁金服自研数据库OceanBase的道路与思考

    本文根据冯柯老师在 2018 年 5 月 10 日[第九届中国数据库技术大会]现场演讲内容整理而成. 讲师介绍 冯柯 蚂蚁金服资深总监.OceanBase 首席架构师 冯柯,蚂蚁金服资深总监.Ocea ...

  4. 蚂蚁金服自研数据库打败Oracle拿下世界第一;三星手机全面退出中国;微软发布Windows 10X双屏系统 | 极客头条...

    作者 | 唐小引 出品 | CSDN(ID:CSDNnews) 快来收听极客头条音频版吧,智能播报由标贝科技提供技术支持. 「CSDN 极客头条」,是从 CSDN 网站延伸至官方微信公众号的特别栏目, ...

  5. 蚂蚁金服自研的OceanBase升级到2.0了,据说性能……

    本文作者为蚂蚁金服OceanBase团队资深技术专家颜然,他也是OceanBase初创成员之一,目前负责事务引擎以及性能优化方面的研发工作.(文末有彩蛋) OceanBase:在普通硬件上提供极限性能 ...

  6. 蚂蚁金服自研分布式关系数据库OceanBase上线阿里云

    OceanBase于2020年3月在阿里云上完成了商业化,在公有云上正式对外开放.同步上线的还有相关的生态产品,包括集群管控(OCP:OceanBase Cloud Platform),诊断(OTA: ...

  7. 一份来自蚂蚁金服大佬的数据库设计总结(纯干货)

    一个成功的管理系统,是由:[50% 的业务 + 50% 的软件] 所组成,而 50% 的成功软件又有 [25% 的数据库 + 25% 的程序] 所组成,数据库设计的好坏是一个关键. 如果把企业的数据比 ...

  8. 蚂蚁金服OceanBase挑战TPCC|TPC-C基准测试之数据库事务引擎挑战

    蚂蚁金服自研数据库 OceanBase 登顶 TPC-C 引起业内广泛关注,为了更清楚的展示其中的技术细节,我们特意邀请 OceanBase 核心研发人员对本次测试进行技术解读,共包括五篇: 1)TP ...

  9. db2 删除存储过程_蚂蚁金服OceanBase挑战TPCC | TPCC基准测试之存储优化

    蚂蚁金服自研数据库 OceanBase 登顶 TPC-C 引起业内广泛关注,为了更清楚的展示其中的技术细节,我们特意邀请 OceanBase 核心研发人员对本次测试进行技术解读,共包括五篇: 1)TP ...

最新文章

  1. express支持i18n国际化
  2. ubuntu下安装java和tomcat安装
  3. python怎么由列表生成m*n的矩阵_Python进阶系列:Python遍历的秘密
  4. Linux中的SELinux详解--16
  5. 如何在 ASP.NET Core 中为同一接口配置不同的实现
  6. 《React源码解析》系列完结!
  7. 上传文件的加密和下载文件解密
  8. bzoj3456:城市规划
  9. rocketmq 几种队列_进阶必看的 RocketMQ ,就这篇了
  10. 很实用的,GridView中使用DataFormatString属性格式化内容
  11. C#从入门到精通源码资源汇总下载(全部免积分)
  12. java持续集成soapui_接口自动化测试持续集成--Soapui接口测试
  13. 【Redis】Redis入门详解(一)
  14. python学习第j十一天
  15. WinDbg手动修复堆栈
  16. Oracle公司中文翻译为“甲骨文”的来源是什么?
  17. 技术控 | 自然语言技术在文智趋势分析产品上的应用
  18. 谈谈HTTP协议中的短轮询、长轮询、长连接和短连接
  19. The server time zone value ‘й‘ is unrecognized or represents more than one time zone
  20. SQL Server 2005数据库教程

热门文章

  1. php new static 效率,PHP中new static()与new self()的比较
  2. 六西格玛dfss_向六西格玛质量水平进攻!
  3. html语言可以干什么,JavaScript语言能做什么?
  4. linux lvm lv扩充--虚拟机,虚拟机新增磁盘后lvm下的lv扩容
  5. 根据经纬度计算范围_高中地理必修一二三思维导图+计算公式全汇总!能用3年...
  6. 单片机搭建环境烧录方法_单片机仿真器的工作原理解析
  7. 顶尖机器学习学习路线,6个月让你的技术成为行业TOP5%
  8. 论文中常用的转折、连接词跟短语
  9. 博士可能是所有学生群体里被黑最猛烈的
  10. java mysql读取多条数据_myeclipse 使用Java访问mysql数据库,数据库中有多条记录,为何只能读出一条数据??...