火柴人大乱斗,韩语字母表-哪有不遗憾的人生,只有更恰当的选择,人生选择

自从蚂蚁金服自研数据库OceanBase取得TPC-C测验榜首名后,引起了职业表里许多重视,咱们诚心的感谢咱们对OceanBase的支撑与厚爱,也虚心听取外界的定见和主张。为了让咱们更好的了解测验的技能细重庆红衣男孩节,咱们特意邀请了OceanBase的中心研制人员对本次测验做专业的技能解读,本文为榜首篇,后续文章也将于近来对外发布。

OceanBase于2010年立项,九年来,研制人员一步一个脚印,不断的对OceanBase做出改善以及添加新的功用。OceanBase也从服务于付出宝开端,逐步对外开放,为广阔的各职业客户提michael供服务。在这个进程中,咱们期望外界对OceanBase的实力有更直观的了解,让客户对咱们的产品更有决心,TPC-C测验为咱们供给了一个绝佳的舞台。

经过本次测验,咱们发现了OceanBase的一些不足之处,比方,之前的单机数据库只能经过添加CPU、内存等来进步处理才能,OceanBase经过散布式架构,能够让许多的一般硬件设备像一台电脑相同处理数据,想进步功用只需添加设备即可,可是,OceanBase在每台设备上的功用还有不少提高空间;别的,OceanBase支撑的功用、易用性、数据库极品太子爷生态比较业界标杆还有一些距离。

女性光身

接下来,OceanBase将在两个要点方向上发力,一个都市艳遇是兼容Oracle数据库供给豆浆的各种功用,便利客户切换运用不同的数据库,另一个是提高OLAP处理才能,也便是数据剖析发掘等方面的才能,用同一套引擎一起支撑OLAP与OLTP,完善OceanBas火柴人大乱斗,韩语字母表-哪有不惋惜的人生,只要更恰当的挑选,人生挑选e在大数据处理方面的才能。

后续,咱们还将开源本次TPC-C测验东西,期望与业界同行多多沟通,一起讨论数据库技能的开展与未来。

正文

网络上有许多介绍TPC-C benchmark的文章,并且某些数据库厂商还宣称自己进行了TPC-C测验,还取得了单机百万级tpmC、散布式千万级tpmC等等。实在状况究竟是怎样呢?

就像许多人知道的,国际业务功用委员会(TPC)安排是数十家会员公司创立的非盈利安排,TPC-C是TPC安排拟定的关于商品销售的订单创立我国有几个省和订单付出等的基准测验标准,是数据库联机买卖处理体系(OLTP)的威望基准测验标准。TPC-C有5种业务,每种业务有规则的份额,别离订单付出不低于43%,订单查询、订单发货和库存查询各不低于4%,其他则为订单创立(不高于45%),tpmC值是订单创立业务每分钟履行的数量。

TPC-C benchmark测验有必要经过TPC安排的审计(精确地讲是TPC-C安排认可的审计员的审计),经过审计的TPC-C的成果,其完好详实的测验报告(包含测验厂家、数据库版别、详细的软硬件装备、测验进程等)将发布在TPC安排的网站( www.tpc.org )上。没有经过TPC的审计而私行宣称自己经过了TPC-C测验、取得XXX tpmC,不只是侵权,也是不合法的。除了OceanBase,现在在TPC网站上还没有看到任何一个国产数据库的TPC-C benchmark的测验报告,无论是彻底自主研制的,仍是在开源根底上修正的。

为什么TPC-C benchmark测验有必要要经过TPC安排的审计呢?这还得从TPC安排的诞生说起。1980年代数据库联机买卖处理体系即OLTP(Online Transactional Processing)呈现后,极大地推动了比方主动提款机(Automated teller transaction,ATM)等联机买卖处理体系的开展。每个数据库厂商都企图向客户证明自己的体系功用最好、处理才能最强,但由于没有一致的功用测验标准,更没有谁来监督功用测验的履行和成果发布,一方面客户无法在不同体系之间进行比较,另一方面数据库厂商各自的功用测验数据也没有满意的压服力。

1985年头,Jim Gray联合24位来自学术界和工业界的同仁宣布了名为“A Measure of Transact火柴人大乱斗,韩语字母表-哪有不惋惜的人生,只要更恰当的挑选,人生挑选ion Processing Power”的文章,提出了一火柴人大乱斗,韩语字母表-哪有不惋惜的人生,只要更恰当的挑选,人生挑选种在线业务处理传统文化才能的测验办法DebitCredit。DebitCredit界说了数据库功用benchmark的一些要害特征( http://www.tpc.org/information/about/history.asp ):

  • 界说了被测体系的功用要求而不是软件硬件自身
  • 规则了被测体系的扩展原则,即功用与数据量相匹配
  • 规则被测体系的业务需求在指定时刻内完结(比方95%业务在1s内完结)
  • 把被测体系的全体本钱归入功用benchmark

DebitCredit为数据库的联机买卖处理体系功用建立了一致的、科学的衡量标准,后续相关的benchmark底子都以此为根底开展而来。但是一些厂商却删掉DebitCredit标准中的一些要害要求后进行测验以便取得更好的功用值(这种做法现在也被一些国内数据库厂商用在TPC-C benchmark测验上),这导致数据库的联机买卖处理体系性李天佑能的衡量标准并没有实在一致:如果说Jim Gray等人为数据库的联机买卖处理体系benchmark拟定的一个法令(DebitCredit),但却没有法令部队来确保法令的履行。1988年TPC安排的创始人Omri Serlin( http://www.tpc.org/information/who/serlin.asp 宾语从句)成功地压服8家公司建立了非盈利的TPC安排,一致拟定和发布benchmark标准并监督和审计数据库benchmark测验,状况才发生了底子的改动。

经过三十多年的开展,TPC安排的成员超越了20个,诞生和完善了数据库功用的多个benchmark标准,并被全世界承受。比方TP火柴人大乱斗,韩语字母表-哪有不惋惜的人生,只要更恰当的挑选,人生挑选C-C的榜首个版别是在1992年发布的,之后阅历了屡次修订,以习惯需求和技能的改变。为了防止厂商按自己的志愿篡改TPC-C标准进行测验以得到更高的功用值,TPC安排要求一切的TPC测验成果都要经过TPC安排认可的审火柴人大乱斗,韩语字母表-哪有不惋惜的人生,只要更恰当的挑选,人生挑选计员的审计,审计员对测验的进程和成果进行详细的审阅,审计通往后,审计成果连同完好的测验报告提交给TPC安排的Technical Advisory Board(TAB),TAB审阅无贰言后还将进行60天的公示clap,公示期间如有贰言厂商需求证明自己的测验契合相应的TPC标准(必要时还需求再次运转benchmark测验程序)。

TPC-C是对商品销售支成人色情网站付等实践业务体系很好的笼统。在预备TPC-C测验的进程中,咱们发现了OceanBase许多功用不优的当地,在对这些当地进行了优化和完善后,咱们发现OceanBase现已达到了本年(2019年)双11的功用优化方针:事实上,TPC-C五种业务中,占比最高的两种,订单创立(new order,占比45%)和订单付出(payment,占比43%),其实就对应了出产体系中的订单创立和订单付出。因而TPC-C模型看起来很简单,恰恰是这个模型对实践的联机买卖处理做了非常好的笼统。

作为一个广泛承受的标准,TPC-C非常谨慎,极大地杜绝了做弊:

首要,作为一个OLTP联机买卖处理体系的benchmark,TPC-C要求被测数据库有必要满意数据库业务的ACID,即原子性、一致性、阻隔性和耐久性,其间阻隔性为可串行化阻隔等级,耐久性要求能够抵挡任何单点毛病等。很显然,这是对一个OLTP数据库的底子要求。在散布式环境下,TPC-C的两种首要业务,订单创立(new order)和订单付出(payment),别离有10%和15%的散布式业务(最多或许散布在15个节点上),业务的ACID关于散布式数据库是陈魏薇很大的应战,尤其是可串行化的阻隔等级,这也是至今鲜少散布式数据库经过TPC-C测验的首要原因之一。国内有些厂商混杂散布式数据库的概念,把多个单机数据库堆在一起而宣称散布式数据库,事实上,尽管每个单机数据库都满意ACID,但这些堆积在一起的多个单机数据库作为一个全体并不满意ACID。

其次,TPC-C规则被测数据库的失期被履行人功用(tpmC)与数据量成正比,事实上实在业务场景也是如此。TPC-C的底子数据单元是库房(warehouse),每个库房的数据量通常在70MB左右(与详细完成相关),TPC-C要求终端用户在挑选业务类型时,需求依照规则的份额挑选五种业务,终端用户每个业务都有必定的输入时刻(对每种业务别离固定)和必定规模的随机的考虑时刻(一个对数函数),依据这些要求,每个库房所能取得的tpmC上限是12.86(假定数据库的呼应时刻为0)。假定某体系取得150万tpmC,大约对steam加速器应12万个库房,按70MB/库房核算,数据量约8.4TB,而TPC-C一起要求体系具有60天、每天压测8小时的存储容量,因而体系的存储容量或许要30TB或更多,而某些厂商用几百或几千个库房悉数装入内存火柴人大乱斗,韩语字母表-哪有不惋惜的人生,只要更恰当的挑选,人生挑选,无视单个库房的最大tpmC上初八限,然后宣称取得百万tpmC,不只不契合大多数实在业务场景,并且显着违反了TPC-C标准,就像当年TPC安排建立之前一些公司的所作所为相同。

第三,TPC-C要求被测数据库能够以平稳的功用长时刻地运转。测验时,去掉发动预热(ramp up)和完毕降速(ramp down)时刻后,被测数据库至少要功用平稳地(steady state)运转8小时,其间功用收集时段(不少于2小时)内的功用累积动摇不得超越2%。众所周知,各种核算机体系在极限压力下功用会发生较大的动摇并或许被压垮而溃散,为了防止被压垮,实践出产环境历来不会让体系处于极限压力,TPC-C这个规则正是从实践出产需求动身的。此外,TPC-C要求被测数据库长时刻运转,同样是实践出产体系的要求。某些数据库厂商让数据库在很短时刻内冲击功用的一个尖峰值,既没有确保数据库在较长时刻内安稳运转,更谈不上功用动摇不超越2%,但却宣称自己的数据库达到了这个尖峰功用。本次benchmark测验中,OceanBase做到了8小时功用动摇低于0.5%。

第四,TPC-C要求被测数据库的写业务的成果有必要在必定时刻内数据落盘(指数据库数据,不是日志,事实上redo log在业务提交前就落盘了),关于具有checkpoint功用的数据库,checkpoint的距离不得超越30分钟,checkpoint数据耐久化的时刻不火柴人大乱斗,韩语字母表-哪有不惋惜的人生,只要更恰当的挑选,人生挑选得超越checkpoint距离。咱们了解这是为了确保数据库体系在掉电等反常状况下有较短的毛病康复时刻。传统数据库的数据以数据块(例如4KB/8KB的page/block)为底子单位,做到这个是把脏页刷盘。但OceanBase并非如此,这是由于,榜首OceanBase是多副本(本次测验是3副本)的跨机器布置,单机器反常的状况下都能够当即康复(RTO=30s)且数据无损(RPO=0),并不依赖于写业务的数据落盘;第二个原因:OceanBase是“基线数据在硬盘+修正增量数据在内存”的结构,规划上是修正增量数据一天落盘一次(即每日兼并,可依据业务量的添加而主动添加每日兼并次数),实践出产体系不需求也不依赖数据在较短时刻(比方30分钟)内落盘。在TPC-C benchmark测验中,OceanBase设置了checkpointing,确保一切checkpoint的距离小于30分钟,并使得checkpoint数据耐久化的时刻小于checkpoint距离,以契合TPC-C标准。

第五,业务定向优化(profile-directed optimization,PDO)能够提高软件不积跬步无以致千里的功用,TPC-C也答应运用PDO,但有一些约束,比方选用PDO优化的版别需求在客户运用,数据库厂家需求对PDO优化的版别供给技能支撑等。为了防止或许呈现的贰言,OceanBase没有运用PDO。

最终,TPC-C标准尽管非常严厉,但仍然鼓男男小说励新技能和新办法的运用,比方本次OceanBase的TPC-C benchmark测验,就没有像之前的TPC-C benchmark相同购买物理服务器和存储,而是租用了阿里云公有云的ECS虚拟机,这不只使得扩容/缩容垂手可得,还可按需租借而极大下降实践测验本钱。

欢迎检查以下OceanBase创始人阳振坤采访视频,了解国产自研散布式数据库这十年的进程:

 关键词: