OceanBase如何获得TPC-C测试第1名?
滑腻 TPC-C测试很大的挑衅在于在整个压测进程中机能曲线要求是绝对滑腻的,曲线上的颠簸幅度不能高出2%,这对付传统数据库来说都是一件坚苦的工作,由于这要求对付全部靠山使命的风雅节制,不能因为某个靠山使命的资源太过行使导致前台哀求的阻塞积存。而对付OceanBase而言,工作变得更为坚苦,由于OceanBase的存储引擎是基于LSM Tree的,在LSM Tree要按期执行compaction操纵。Compaction是个很是重的靠山操纵,会占用大量CPU和磁盘IO资源,这对前台的用户查询和写入自然就会造成影响。我们做了一些优化,来滑腻靠山使命对机能的影响,从最终的测试功效来看,机能曲线在整个8小时压测进程中的发抖小于0.5%。 分层转储 在LSMTree中,数据起首被写入内存中的MemTable,在一按时辰为了开释内存,MemTable中的数据必要与磁盘中的SSTable举办归并,这个进程被称为compaction。在许多基于LSM Tree的存储体系中,为了办理写入的机能题目,凡是会将SSTable分为多层,当一层的SSTable个数可能巨细到达某个阈值时,归并入下一层SSTable。多层SSTable办理了写入的题目,可是SSTable的个数过多,会极大拖慢查询的机能。OceanBase同样小心了分层的思绪,但同时行使了越发机动的compaction计策,确保SSTable总数不会太多,从而在读取和写入机能之间做了更好的均衡。 资源断绝 Compaction等靠山使命必要耗损大量的处事器资源,为了镌汰靠山使命对用户查询和写入的影响,我们在CPU、内存、磁盘IO和收集IO四个方面临前靠山使命做了资源断绝。在CPU方面,我们将靠山使命和用户哀求分为差异的线程池,并凭证CPU亲和性做了断绝。在内存方面,对前靠山哀求做了差异的内存打点。在磁盘IO方面,我们节制靠山使命IO哀求的IOPS,行使deadline算法举办流控。在收集IO方面,我们将靠山使命RPC和用户哀求RPC分为差异行列,并对靠山使命RPC的带宽行使举办流控。 存储CPU占用 TPC-C基准测试首要考查整体机能tpmC,许多人也会存眷单核的tpmC。然而,这个指标只有在沟通架构下才故意义。对付存储模块的CPU占用,有如下三点: 1. 对付齐集式架构,除了数据库行使CPU之外,专用存储装备也必要行使CPU。譬喻,第二名Oracle 3000多万tpmC的测试中,数据库行使了108颗T3SPARC处理赏罚器,共有1728个物理焦点和13824个执行线程,同时存储装备行使的是Intel处事器作为机头,总共行使了97台处事器,194颗Intel X5670 CPU,2328个物理焦点。 2. 齐集式数据库行使高靠得住硬件,只必要存储一个副本,而OceanBase通过软件层面目面貌错,固然硬件本钱更低但必要两个数据副本和三个日记副本,维护多个副本必要淹灭大量CPU; 3. OceanBase在TPC-C测试和出产体系中都打开了在线压缩,进一步增进了CPU行使; 因此,简朴地比拟OceanBase和Oracle的CPU核是不科学的,还必要算上共享存储装备的CPU核,以及OceanBase存储多副本和在线压缩带来的CPU开销。TPC-C保举的方案是不存眷详细的软件架构和硬件架构,存眷硬件总体本钱。在OceanBase的测试中,硬件本钱只占整体本钱的18%阁下,只思量硬件的性价比大幅优于齐集式数据库。 后续成长 OceanBase的上风在于回收漫衍式架构,硬件本钱更低,可用性更好且可以或许做到线性扩展,可是,OceanBase单机的机能离Oracle、DB2尚有不小的差距,后续必要重点优化单机存储机能。其它,OceanBase的定位是在统一套引擎同时支持OLTP营业和OLAP营业,而今朝OceanBase的OLAP处理赏罚手段还不如Oracle,后续必要增强存储模块对大查询的处理赏罚手段,支持将OLAP算子下压到存储层乃至在压缩后的数据上直接做OLAP计较。 作者:阳振坤(OceanBase首创人)曹晖(OceanBase技能专家)陈萌萌(OceanBase资深技能专家)潘毅(OceanBase资深技能专家)韩富晟(OceanBase资深技能专家)赵裕众(OceanBase高级技能专家) 【编辑保举】
【责任编辑:武晓燕 TEL:(010)68476606】 点赞 0 (编辑:湖南网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |