OceanBase如何获得TPC-C测试第1名?
OceanBase的全局时刻戳天生器也是由多副本构成,可以独立陈设在三台呆板上,也可以像这次TPC-C评测中一样陈设在root node呆板上,与root node共享资源。全局时刻戳的三副本是一种极高可用的架构,任何一次时刻戳的获取操纵都至少在三台呆板上的两台得到了确认,以是恣意一台呆板呈现妨碍,获取时刻戳的操纵不会有一点影响。 凭证TPC-C尺度,OceanBase筹备了9种差异的场景测试有读-读、读-写斗嘴事势务的断绝性,最终都美满通过了审计员的审计。 同等性担保(Consistency) 在有了上述的事宜手段后,OceanBase可以美满的担保各类数据的同等性的束缚。TPC-C尺度里提出了12种差异的同等性测试场景在各类测试运行前后对数据库内的数据举办同等性校验。由于OceanBase此次测试数据局限复杂,同等性校验的SQL必要查对大量的数据,以是同等性校验的挑衅在于校验的SQL自己运行的服从。基于OceanBase的并行查询手段,施展整个集群全部的计较资源,校验SQL的运行时刻均收缩了几个数目级,很好的完成同等性成果的审计事变。 复制表 TPC-C测试模子中有一张商品(ITEM)表,这张表的内容是测试所模仿的贩卖公司全部售卖的商品信息,包括了商品的名字、价值等信息。“订单建设”事宜执行中必要哀求这张表内的数据来确定订单的价值信息,假如商品表的数据只存放在一台呆板上,那么全部呆板上产生的“订单建设”事宜城市哀求包括商品表的呆板,这台呆板就会成为瓶颈。OceanBase支持复制表成果,将商品表配置为复制表后,商品表的数据会自动复制到集群中的每一台呆板上。 TPC-C尺度不限定数据的副本数,可是不管数据的组织情势,尺度里要求事宜的ACID必然要担保。OceanBase行使非凡的广播协议担保复制表的全部副本的ACID特征,当复制表产生修改时,全部的副本会同时修改。而且,当有呆板呈现妨碍时,复制表的逻辑会自动剔除无效的副本,担保数据修改进程中不会由于呆板妨碍呈现无谓的守候。复制表在许多营业场景中都有行使,譬喻许多营业中存储要害信息的字典表,尚有金融营业中存储汇率信息的表。 四、TPC-C基准测试之存储优化 TPC-C类型要求被测数据库的机能(tpmC)与数据量成正比。TPC-C的根基数据单位是客栈(warehouse),每个客栈的数据量凡是在70MB阁下(与详细实现有关)。TPC-C划定每个客栈所得到的tpmC上限是12.86(假设数据库相应时刻为0)。 假设某体系得到150万tpmC,约莫对应12万个客栈,凭证70MB/客栈计较,数据量约为8.4TB。某些厂商回收修悔改的不切合审计要求的TPC-C测试,不限定单个warehouse的tpmC上限,测试几百到几千个warehouse所有装载到内存的机能,这是没故意义的,也不行能通过审计。在真实的TPC-C测试中,存储的耗损占了很大一部门。OceanBase作为第一款基于shared nothing架构登上TPC-C榜首的数据库,同时也作为第一款行使LSM Tree存储引擎架构登上TPC-C榜首的数据库,在存储架构上有如下要害点: 1. 为了担保靠得住性,OceanBase存储了两个数据副本和三个日记副本,而传统的齐集式数据库测试TPC-C只存储一份数据; 2. 因为OceanBase存储两个数据副本,再加上OceanBase TPC-C测试回收了和出产体系完全一样的阿里云处事器i2机型,SSD硬盘的存储容量成为瓶颈。OceanBase回收在线压缩的方法缓解这个题目,进一步增进了CPU行使;响应地,齐集式数据库测试存储一份数据,不必要打开压缩; 3. OceanBase LSM引擎按期必要在靠山做compaction操纵,而TPC-C要求测试至少运行8小时且2小时之内发抖小于2%,因此,OceanBase存储必要办理LSM引擎靠山操纵导致的发抖题目 两份数据 为了担保靠得住性和不丢数据(RPO=0),有两种差异的方案:一种方案是在硬件层面目面貌错,另一种方案是在软件层面目面貌错。OceanBase选择在软件层面目面貌错,上风是硬件本钱更低,带来的题目是必要冗余存储多个副本的数据。OceanBase行使Paxos协议担保在单机妨碍下数据的强同等。在Paxos协议中,一份数据必要被同步到大都派(高出一半),才被以为是写入乐成,以是一样平常来说副本个数老是奇数,出于本钱思量最常见的陈设规格是三副本。 三副本带来的主要题目就是存储本钱的上升,之前贸易数据库的TPC-C测试大多基于磁盘阵列,而TPC-C类型中明晰对磁盘阵列不做容灾要求,行使相对付传统数据库三倍的存储空间举办TPC-C测试显然难以接管。 我们留意到这样一个究竟,通过Paxos协议同步的只是日记,日记必要写三份,但数据不是,数据只必要有两份就可以完成单机妨碍的容灾了,当一份数据因为处事器宕机不行用时,另一份数据只要通过日记把数据补齐,就可以继承对外提供会见。 和数据存储对比,日记的存储量较量小。我们将数据与日记分隔,界说了三种差异的副本范例:F副本既包括数据又同步日记,并对外提供读写处事;D副本既包括数据又同步日记,但对外不提供读写处事;L副本只同步日记,不存储数据。当F副本呈现妨碍时,D副本可以转换为F副本,补齐数据后对外提供处事。在TPC-C测试中我们行使FDL模式举办陈设(一个F副本,一个D副本,一个L副本),行使了两倍数据副本的存储空间。无论是D副本照旧L副本,都必要回放日记,D副本还必要同步数据,这些都是城市耗损收集和CPU。 在线压缩 在sharednothing架构下,OceanBase至少必要存储两份数据才可以满意容灾的要求,这意味着OceanBase必要比传统数据库多淹灭一倍的存储空间。 为了缓解这个题目,OceanBaseTPC-C测试选择对数据举办在线压缩,Oracle数据库中一个warehouse的存储容量靠近70MB,而OceanBase压缩后存储容量只有50MB阁下,大幅低落了存储空间。TPC-C类型要求磁盘空间可以或许满意60天数据量的存储,对付OceanBase,因为必要生涯两份数据,固然靠得住性更好,但必要生涯相等于120天的数据量,这些存储本钱都要计入总体价值。 (编辑:湖南网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |