oraclemch 2020-01-04
本文观点均为臆测,请勿当真。
两个多月前的一则消息刷爆朋友圈:阿里数据库OceanBase刷新尘封九年的世界纪录并赢得冠军,性能是第二名Oracle的两倍,于是“中国自研数据库打破西方垄断”,《科技日报》评价称:“此次登顶国际权威排行,也是云时代中国数据库换道超车的标志。” 但随后又有人说Oracle“非不能也,是不为也”,阿里赢了但意义有限,具体却语焉不详。作为一个干了十多年数据库的老兵,尝试为大家解答如下问题;
这个数据库的世界纪录TPC-C到底是啥?
到底OceanBase击败了Oracle没有?
有人说阿里的纪录是堆硬件堆出来,真的是这样吗?
1. TPC-C到底是个啥?
要说TPC-C,得先了解一下TPC。 TPC即国际事务处理性能委员会(TPC,Transaction Processing Performance Council),这是个啥东东呢?实际上就是国际的手机评测机构,不对,是计算机系统评测机构,是非营利行业组织。可以简单理解为其职责是发布企业级数据库评测榜单并制定榜单的测试标准、流程和规范。包括甲骨文、IBM、微软等公司的数据库产品都曾多次参加这个评测。它成立于1988年,总部设在美国。TPC目前(2020年1月1日)总共有13个大类的榜单,主要关注性能跟性价比。TPC榜单考核了最真实、最核心的东西,极大的杜绝了作弊,非常科学也很高明地对软硬件架构不做限定,独立客观的评测后还有60天的公示期,另外也绝对不会因为经济利益影响榜单成绩。因其国际性、专业性、严格、客观,经过多年时间检验后成为业界最权威的榜单,简单的说就相当于数据库领域的“世界杯”。
TPC-C是TPC发布的最重要标准,因为它主要评测的是在线交易型应用系统的性能。通俗地讲,所谓在线交易型数据库(OLTP)指的是普通却很重要的核心业务系统,如12306的卖火车票的系统,美团叫外卖的下单系统等。与OLTP系统对应的是OLAP系统,可以通俗地理解为报表系统,比如中移动的报表系统,专门帮用户统计话费或者帮移动统计每个月的综合利润等。当然现在又增加了大数据相关的标准。一般来讲,报表早一点迟一点出来关系不大;但我下单了,半天完不成交易就影响做生意赚钱了。另外OLTP也是OLAP的基础,所以业界对在线交易型数据库更加看重,因此TPC-C相对而言最重要。这次阿里拿下的就是TPC-C这个榜单的冠军。2006年,国务院发布的《国家中长期科学和技术发展规划纲要(2006-2020年)》首提“核高基”概念,其中“基”指的就是以数据库、操作系统、中间件等核心的基础软件产品。金融、电信、政府等关键领域的客户一般参照 TPC-C 结果来衡量各个数据库厂商的事务处理能力。
那么TPC-C有多专业、多严格呢?简单举两个例子:
TPC-C模拟真实世界业务系统的情况,这个系统你可以认为是一个简化版的卖咖啡的瑞幸手机App。TPC-C有5种事务:订单创建、订单支付,订单查询、订单发货跟库存查询。各种事务都有规定的比例,其中订单支付不低于43%,订单查询、订单发货和库存查询均不能低于4%,其余为订单创建(不高于45%)。订单创建里面有1%订单是要回滚的。最多15件商品,平均10件商品。模型是以一个仓库为单位,每个仓库有10个销售点/仓库,每个销售点服务3000个顾客。模拟某一个顾客到销售点买东西,买的东西可能是3件,可能是12件,因为买的东西不一定都在本地仓库里有,所以每件商品假设有1%概率在其它仓库,每个订单创建的事务如果在分布式系统里有10%的概率是分布式的事务。还有订单支付里面有15%概率不在本地仓库支付,要到异地仓库支付,也变成分布式事务。tpmC值是订单创建事务每分钟执行的数量。最后主要考核tpmC跟性价比。
2.到底OceanBase击败了Oracle没有?
要说这个,你可以认为击败了,也可以认为没有。
先说为啥击败了,这个很简单,OceanBase通过TPC-C这个公开而且严格的测试标准已经刷榜了啊!你Oracle牛那你就凭本事刷回去。现在我拿了冠军,那我就是最牛!这就叫公开、公平、公正。所以中国工程院院士、著名国宝级计算机专家李国杰对此表示,这是中国基础软件取得的重大突破!
再看看单个tmpC的价格,这个指标OceanBase是6.25元人民币,Oracle 的是1.01 美金,接近1比1,但OceanBase硬件成本只占18%,Oracle却要65%。也就是说从性价比上OceanBase也很不错。
那又为啥可以说没有呢?这个就得从性能、场景、辅助工具跟生态等几个方面分开说。
- 性能
前冠军Oracle9年都没有去更新这个榜单,这9年硬件变化很大。虽说服务器端不能完全根据摩尔定律来,但同等成本前提下也确实应该有着好几倍的性能提升。
还有就是很多人会问,为什么Oracle 这么多年没有刷新榜单?前面几十年大家都是一年一点加着玩,你超个20%都很吓人了,IBM DB2集群好不容易才干到1000多万,结果Oracle 2010年直接就加到3000多万。
更过分的是Oracle 在2012年、2013年分别用单机做过506万、855万的。Oracle已经用27台机器做了3000多万集群的(就是这次被阿里超过的这个),为啥后面要做500万、800多万单机结果呢?估计意思是说当初3000多万的成绩,平摊到单机也就100多万tmpC,现在老子单机就能做到原来的4到8倍,做成集群后哪怕打个折,最终只做到原来的5-6倍,也是将近1.8亿tmpC,你们谁能干得过我?其他厂商一看,我勒了个去,搞这玩意儿费钱又费老劲,你这样搞我还怎么玩?
一来二去Oracle也懒得去刷榜——反正老子已经天下第一了,你们谁还敢跟我争?哈哈哈!
- 场景
Oracle对OLAP、非结构化数据集成都能很好支持,OceanBase在这些重要领域还有很多工作要做。而这几个场景现今都是非常重要的,更别说移动、实时计算、内存计算等等。其它具体功能、辅助工具跟其它厂商的配套软硬件,就更不要提了。
3. 有人说阿里的纪录是堆硬件堆出来。真的是这样吗?
说这话就是对TPC不了解了。
一方面OceanBase是分布式的,当然要堆硬件。
另一方面如果纯粹堆硬件能堆出来,那这个评测最后不就纯粹演变成看哪个厂商有钱的游戏吗?TPC主要是个技术评测,为了杜绝厂商纯粹堆硬件,就这方面设有专门的考查指标,就是系统软硬件、包括技术支持服务在内的3年总成本分摊到每个tpmC的价格。这个指标OceanBase 6.25 人民币 对 Oracle 的1.01 美元,考虑到汇率因素,基本接近1比1;但OceanBase硬件成本只占18%,Oracle却要65%。所以硬件成本这块OceanBase其实是很占优势的。数据可靠性当然确保了不成问题。
4.阿里这次冲榜到底意义有多大?
OceanBase无惧巨大压力,击败霸榜9年之久的数据库领头羊Oracle,意义无疑是巨大的!
品牌
通过支撑“双11”,OceanBase在技术人员中间打响了品牌;但在商业市场,这次冲榜成功对此数据库的品牌加分无疑是巨大的,这个应该是阿里这次冲榜的主要目的。另外这次对阿里巴巴这个品牌也是一个大大的加分。
通过TPC-C专业、严格的测试,认证了OceanBase创新的分布式体系架构之下数据库基本的ACID能力,极大加强各方人士对此数据库本身的认可。
当然阿里本身通过此次行动进一步完善了产品,也锻炼了队伍,消除了内部质疑。
这次也是中国公司第一次冲榜成功。Oracle是42年积累的产品,阿里只花了9年做成这样,在当前形势下,也鼓舞了国人。
技术创新
分布式技术打破了原来单机跟集群碰到的性能瓶颈,通过严格的测试验证了分布式关系型数据库的技术可行性。
同样因为分布式技术,使得采用普通机器存储关键数据成为可能;因为不是专门的设备而是云主机,可方便采用租用的方式,这大大降低了存储成本跟测试成本。TPC-C要求的是整个系统软硬件加技术支持3年的总体成本来计算,这次OceanBase只租用了3个月的阿里云,总的测试硬件成本:3.8亿×18%÷36(3年折算成月份)×3=570万人民币。Oracle的测试硬件花了30,249,688×6(汇率)*65%=1.18亿,约是20.7倍。Oracle测试的硬件当然以后可以用在其它方面,但测试之前你得掏钱买。
完善TPC
这次是全球首次分布式数据库参与TPC-C评测,TPC借此机会明确并完善了TPC-C的评测标准、评测方法。
阿里为国产数据库冲击榜单趟出了一条道,同时开源了此次测试的工具及相关文档、数据,并共享了此次评测的平台,这极大降低了各厂商参加TPC-C评测的软硬件成本,大大降低了门槛。
对外技术依赖度低
OceanBase是由阿里巴巴和蚂蚁金服拥有100%自主知识产权的分布式关系数据库。OceanBase没有依赖任何开源数据库或者存储引擎的相关代码,而是从第一行代码开始就完全自主研发的分布式数据库产品技术,对外依赖性低。
关注我,每周分享数据相关干货!