原创蚂蚁金服OceanBase挑战TPCC|TPC-C基准测试之存储优化-伟德国际官方app下载_

蚂蚁金服自研数据库 OceanBase 登顶 TPC-C 引起业界广泛重视,为了更清楚的展现其间的技能细节原创蚂蚁金服OceanBase应战TPCC|TPC-C基准测验之存储优化-伟德世界官方app下载_,咱们特意约请 OceanBase 中心研制人员对本次测验进行技能解读,共包括五篇:

1)TPC-C基准测验介绍

吕燕

2)OceanBase如何做TPC-C测验

3)TPC-C基准测验之SQL优化

4)TPC-C基准测验之数据库业务引擎的应战

5)TPC-C基准测验之存储优化

本文为第五篇,其它文章已同步发布,概况请在“蚂蚁金服科技”大众号检查。

TPC-C 标准要求被测数据库的功能(tpmC)与数据量成正比。TPC-C 的根本数据单元是库房(warehouse),每个库房的数据量一般在 70MB 左右(与详细完结有关)。TPC-C 规则每个库房所取得的 tpmC 上限是 12.86(假定数据库呼应时刻为0)。假定某体系取得 150万 tpmC,大约对应 12万个库房,依照 70MB/库房核算,数据量约为 8.4TB。某些厂商选用修正正的不符合审计要求的 TPC-C 测验,不限制单个 warehouse 的 t捣蛋猪pmC 上限,测验几百到几千个 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 运用 P创业邦axos 协议保证在单机毛病下数据的强共同。在 Paxos 协议中,一份数据需求被同步到多数派(超越一半),才被认为是写入成功,所以一般来说副本个数总是奇数,出于本钱考虑最常见的布置标准是三副本。

三副本带来的首要问题便是存储本钱的上升,之前商业数据库的 TPC-C 测验大多根据磁盘阵列,而 TPC-C 标准中清晰对磁盘阵列不做容灾要求,运用相关于传统数据库三倍的存储空间进行 TPC-C 测验明显难以承受。咱们注意到这样一个现实,经过 Paxos 协议同步的仅仅日志,日志需求写三份,但数据不是,数据只需求有两份就可以完结单机毛病的容灾了,当一份数据由于服务器宕机不行用时,另一份数据只需经过日志把数据补齐,就可以持续对外供给拜访。和数据存储比较,日志的存储量比较小。咱们将数同人漫画据与日志分隔,界说了三种不同的副本类型:F 副本既包括数据又同步日志,并对外供给读写服务;D 副本既包括数据又同步日志,但对外不供给读写服务;L 副本只同步日志,不存储数据。当 F 副本呈现毛病时,D 副本可以转换为 F 副本,补齐数据后对外供给服务。在 TPC-C 测验中咱们运用 FDL 形式进行布置(一个 F 副本,一个 D 副本,一个 L 副本),运用了两倍数据副本的存储空间。无论是 D 副本仍是 L 副本,都需求回放日志,D 副本还需求同步数据,这些都是都会消耗网络和 CPU。

在线紧缩

在 shared nothing 架构下,OceanBase 至少需求存储两份数据才可以满意容灾的要求,这意味着 OceanBase 需房子能租给乐伽公司吗要比传统数据库多消耗一倍的存储空间。为了缓解这个问题,OceanBase TPC-C 测验挑选对数据进行在线原创蚂蚁金服OceanBase应战TPCC|TPC-C基准测验之存储优化-伟德世界官方app下载_紧缩,Oracle凯里天气预报 数据库中一个 warehouse 的存储容量挨近 70MB,而 OceanBase 紧缩后存原创蚂蚁金服OceanBase应战TPCC|TPC-C基准测验之存储优化-伟德世界官方app下载_储容量只要 50MB 左右,大幅降低了存储空间。TPC-C 标准要求磁盘空间可以满意 60 天数据量的存储,关于 OceanBase,由于需求保存两份数据,尽管牢靠性更好,但需求保存相当于 120 天的数据量,这些存储本钱都要计入全体价格。OceanBase 运用了 204 台 ECS i2 云服务器存储数据,服务器标准和线上实在业务运用保持共同。每台服务器的日志盘 1TB,数据盘挨近 13TB。核算两份紧缩后的数据 60 天的存储空间之后,服务器的数据盘根本没有太多余量,从服务器的资源本钱消耗来看,现已到达了比较好的平衡。假如俄罗斯时刻 OceanBase 的单机功能 tpmC 进一步提高,磁盘容量将成为瓶颈。OceanBase LSM 引擎是 append-only 的,它的优势是没有随机修正,可以在线紧缩。无论是 TPC-C 测验,仍是最中心的 OLTP 出产体系(例如付出宝买卖付出),OceanBase 都会翻开在线紧缩,经过 CPU 换存储空间。

存储功能滑润

TPC-C 测验很大的应战在于在整个压测进程中功能曲线要求是肯定滑润的,曲线上的动摇起伏不能超越 2%,这关于传统数据库来说都是一件困难的作业,由于这要求关于一切后台使命的精密操控,不能由于某个后台使命的资源过度运用导致前台恳求的堵塞积压。而关于 OceanBase 而言,作业变得更为困难,由于 OceanBase 的存储引擎是根据 LSM Tree 的,在 LSM Tree 要定时履行 compaction 操作。Compaction 是个十分重的后台操作,会占用许多 CPU 和磁盘 IO 资源,这对前台的用户查询和写入天然就会形成影响。咱们做了一些优化,来滑润后台使命对功能的影响,从终究的测验成果来看,功能曲线在整个 8 小时压测原创蚂蚁金服OceanBase应战TPCC|TPC-C基准测验之存储优化-伟德世界官方app下载_进程中的颤动小于 0.5%。

分层转储

在 LSM Tree 中,数据首要被写入内存中的 MemTable,在必定时分为了开释内存,MemTable 中的数据需求与磁盘中的 SSTable 进行兼并,这个进程被称为 compaction。在许多根据 LSM Tree 的存储体系中,为了处理写入的功能问题,一般会将 SSTable 分为多层,当一层的 SSTable 个数或许巨细到达某个阈值原创蚂蚁金服OceanBase应战TPCC|TPC-C基准测验之存储优化-伟德世界官方app下载_时,兼并入下一层 SSTable。多层 SSTable 处理了写入的问题,可是 SSTable 的个数过多,会极大拖慢查询的功能。OceanBase 相同学习了分层的思路,但一起运用了愈加灵敏的 compaction 战略,保证 SSTable 总数不会太多,然后在读取和写入功能之间做了更好的平衡。

资源阻隔

Compaction 等后台使命需求消耗许多的服务器资源,为了削减后台使命对用户查询米亚冬冬和写入的影响,咱们在 CPU、内存、磁盘 IO 和网络 IO 四个方面临前后台使命做了资源阻隔。在 CPU 方面,咱们将后台使命和用户恳求分为不同的五月天情色线程池,并依照 CPU 亲和性做了阻隔。在内存方面,对前后台恳求做了不同的内存办理。在磁原创蚂蚁金服OceanBase应战TPCC|TPC-C基准测验之存储优化-伟德世界官方app下载_盘 IO 方面,咱们操控后台原创蚂蚁金服OceanBase应战TPCC|TPC-C基准测验之存储优化-伟德世界官方app下载_使命 IO 恳求的 IOPS,运用 deadline 算法进行流控。吴雪雯在网青海省络 IO 方面,咱们将后台使命 RPC 和用户恳求 RPC 分为不同行列,并对后台使命 RPC 的带宽运用进行流控。

存储CPU占用

TPC-C 基准测验首要调查全体功能 tpmC,许多人也会重视单核的 tpmC。可是,这个目标只要在相同架构下才有含义。关于存储模块的 CPU 占用,有如下三点:

1. 关于集中式架构,除了数据库运用 CPU 之外,专用存储设备也需求运用 CPU。例如,第二名 Oracle 3000多万 tpmC 的测验中,数据库运用了 108 颗 T3 SP蓝蛇ARC 处理器,共有 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 团队高档技能专家physical,2010 年参加城镇居民医疗保险付出宝后从事分夏虫不行语冰布式业务结构的研制,2013 年参加 OceanBase 团队,现在担任存储引擎相关的研制作业。

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

评论(0)