编者按


本文系华东师范大学俞融&王清帅两位同学所著,本篇也是 OceanBase 学术系列稿件第六篇。

俞融,华东师范大学数据迷信与工程学院在读硕士生。 研究生期间在数据学院DBHammer组从事面向HTAP数据库系统的评测相干技术钻研,致力于定义新型benchmark并开发开源工具服务于HTAP数据库偏心、公正、高效评测工作。」

王清帅,华东师范大学数据迷信与工程学院在读博士生。博士生期间在华东师范大学数据学院DBHammer组致力数据库系统的相干技术钻研,目前在面向OLAP利用的负载生成,分布式、HTAP等新型数据库的评测方向获得了肯定停顿,之后将持续摸索面向新型数据库的优化和评测技术。」

明天分享的主题是 《面向HTAP数据库的基准评测工具研究进展》,总结了近年来代表性 HTAP 评测基准,旨在服务 HTAP 数据库系统评测需要。心愿浏览完本文,你能够对这个话题有新的播种,有不同认识也欢送在底部留言探讨。

随着在线实时剖析需要的增长,HTAP(Hybrid Transaction and Analitical Process)数据库随之呈现,其能在同一个零碎内实现 OLTP 负载和 OLAP 负载的高效解决,提供了对陈腐数据的剖析能力。近年来,工业界和学术界提出了多种 HTAP 数据库架构,因而如何评测各种新型的 HTAP 数据库引起了学界和业界的宽泛关注。

本篇内容次要探讨面向HTAP数据库的基准评测工具,以及研究进展。OceanBase 作为从 OLTP 数据库系统扩大而来的分布式 HTAP 数据库系统,它提供了两种资源隔离计划:OLAP 负载占比低时,在主正本上执行剖析工作,以取得实时的数据;OLAP 占比高时,在只读正本上执行剖析工作,以实现显式物理隔离,故而 OceanBase 在隔离性和数据库性能上有机会做出比拟好的衡量,即可能具备较好的 HTAP 负载反对能力。后续咱们也将陆续公布 OceanBase 对 HTAP 负载的反对能力测试报告。

引言

HTAP 数据库实现的难点在于 TP/AP 的资源隔离和数据同步。因而,除了评测 TP 负载面对高并发负载的性能和 AP 负载面对简单查问的性能外,现有的 HTAP benchmark 在评估性能的设计上更加关注以下两个问题:

混合负载生成:生成 TP 和 AP 负载,并且管制 AP 与 TP 负载之间数据拜访的穿插。

负载指标:量化评测混合负载运行时的隔离性,即相互之间的烦扰水平。

目前支流的 HTAP 评测基准(工具)有 CH-benCHmark(2011)[1]、HTAPBench(2017)[2]、OLxPBench(2022)[3]、HATtrick(2022)[4]。上面本文将对这 4 个工作从表模式和负载生成、测试方法、管制办法、测试指标等几个方面进行剖析和总结。

一、CH-benCHmark

它于 2011 年被提出,是第一个官网提出的混合负载评测基准,基于规范 OLTP 和 OLAP 基准实现定义。

图1 CH-benCHmark的TP负载和AP负载运行模式[1]

表模式和负载:把 TPC-C 和 TPC-H 表模式进行简略缝合。事务性负载应用 TPC-C 的 5 类负载,剖析性负载应用 TPC-H 的 22 个查问。然而这种形式存在 AP 的扫描和 TP 的批改在数据拜访空间上的不统一,较小的拜访穿插使遇到读写抵触的概率较低,不同类型负载在解决上存在的资源烦扰较低。

测试方法:别离运行 TPC-C 指定比例的事务和改装后相似 TPC-H 的 22 个查问,运行模式见图 1。在测试过程中,通过指定 OLAP 流的数量、OLTP 不同事务的初始占比和客户端数量,别离测量该负载模式下的 TP 和 AP 能力。同时,为了比拟两类负载之间的互相烦扰状况,测试须要至多进行三组,无 TP 流纯 AP 流负载、无 AP 流纯 TP 流负载和指定数量 TP 流和 AP 流负载,通过控制变量的形式人工地对测试后果进行隔离性、烦扰性的剖析。

测试指标:首次采纳

$$tpmC/QphH@tpmC$$

$$tpmC/QphH@QphH$$

尽管指标很主观,但不适用于数据库间的横向比拟,实用于个体数据库的性能展现。

二、HTAPBench

HTAPBench[2] 在 2017 年首次提出以 TP 吞吐量为前提的评测流程。

表模式和负载:与 CH-benCHmark 所应用的保持一致。

测试方法:HTAPBench 通过指定利用能够容忍的 OLTP 指标吞吐上限范畴,运行足够多的 TP 线程保障满足吞吐的初始上限,在执行过程中再依据 TP 吞吐的实时反馈来确定是否增加 OLAP 流,由此测得保障 TP 吞吐量下的最大 OLAP 能力,运行模式见图 2。这种测量形式蕴含了对于 TP/AP 之间互相烦扰的思考,只须要执行一次,较简便。

测试指标:HTAPBench 应用

$$QphH/(OLAPworkers)@tpmC$$

进行单个 worker 性能之间的比拟。

散布管制办法:HTAPBench 提出如何管制剖析工作复杂度和查问拜访模式这两个问题,次要目标是使得 AP 工作对 TP 生成数据的拜访失去管制。同时提出应用密度估计的办法来确定以后数据库的数据分布,使之可能依据以后数据库状态动静确定剖析查问。

图2 HTAPBench运行模式示意图[2]

三、OLxPBench

OLxPBench[3] 是中科院计算所研发的对于 HTAP 数据库基准的评测工具(工具架构见图 3),他们对 HTAP 数据库评测的工作进行剖析,得出负载该当满足三个特色,即实时查问、语义一致性和面向特定畛域。语义一致性须要 TP 批改的数据都被 AP 拜访,实时查问蕴含实时查问和批查问,要可能模仿用户的行为和客户决策的需要。论文指出 CH-benCHmark 和 HTAPBench 两种基准采纳的对原有基准简略缝合的形式以及 TPC-H 查问未能实在展示 TP/AP 之间的烦扰是要解决的问题。

表模式和负载:OLxPBench 设计了面向通用场景(Subenchmark)、金融场景(Finbenchmark)和电信场景(Tabenchmark)的三种负载,蕴含对于实时查问、语义一致性的查问逻辑设计。Subenchmark 作为通用的负载,参考了 TPC-C 基准表模式的生成,应用 5 个事务 +9 个剖析查问 +5 个混合事务;Fibenchmark参考 SmallBank 基准表模式的生成,应用 6 个事务 +4 个剖析查问 +6 个混合事务;Tabenchmark 参考 TATP 基准表模式的生成,应用 7 个事务 +5 个剖析查问 +6 个混合事务。

测试方法:与 HTAPBench 雷同。

测试指标:联合了 HTAPBench 和 CH-benCHmark,应用

$$QphH/(OLAPworkers)@tpmC$$

$$QphH/(OLAPworkers)@tpmC$$

进行后果的出现。

图3 OLxPBench架构[3]

四、HATtrick

HATtrick[4] 是威斯康辛大学在 2022 年提出的针对 HTAP 数据库的基准,它提出不同工作之间的隔离性和管制陈腐数据的拜访是 HTAP 数据库实现中面临的次要挑战。

表模式和负载:HATtrick 是从 SSB 表模式中扩大而来,新增了历史记录表、新鲜度记录表以及局部字段;共有两类负载,事务型负载受 TPC-C 启发应用自建的下单事务、付款事务和订单计数事务,剖析型负载应用 13 个调整后的 SSB 查问。

测试形式:给定 TP/AP 客户端数量,同时执行事务和 SSB 的 13 个查问,查问按批的模式连续不断执行,批内查问程序随机。

测试指标:针对隔离性和新鲜度提出了两个新的评估指标。首先,提出应用吞吐边界(throughput frontier)的概念,通过二维可视化的形式进行隔离性评测如图4所示。在栅格图中,随着客户端数量变动,线越平行坐标轴隔离性越好;而在综合图中,随扩大系数变动的图像中,吞吐边界线位于比例线之上越靠近边界线隔离性能越好,越靠近比例线表明事务负载和剖析负载之间的代价衡量越多,低于比例线越靠近坐标轴示意事务负载和剖析负载之间的烦扰水平越高,资源竞争越强烈。其次,对新鲜度给出了度量函数(查问发动版本与第一个不可见的 TP 版本之间的时间差)

$$f_(A_q )=max(0,t_(A_q)^s-t_(A_q)^(f_ns ))$$

图4 各曲线示意图[4]

结语

依据调研,除了晚期的 CH-benCHmark,最近的三款 Benchmark 在评测时明确要求保障 OLTP 的吞吐能力。HTAP 数据库系统上 OLTP 和 OLAP 拜访“同一份数据”,而事务处理能力大概率受到同步的影响(新鲜度),如何做好资源共享与资源隔离的衡量[5]是一个难点问题。正如杨传辉在《真正的HTAP对用户和开发者意味着什么?》所说,真正的 HTAP 数据库系统要求先有高性能的 OLTP,而后在 OLTP 产生的陈腐数据上反对实时剖析 [5]。

通过对现有的典型 HTAP 数据库评测基准的剖析,发现已有基准评测工具在表模式和负载生成、测试方法、散布管制办法、测试指标等方面均各有特色,旨在服务于 HTAP 个性的评测。具体来说,HTAPBench思考了对计算代价的管制,OLxPBench 思考了实时查问的应用,HATtrick 思考了新鲜度指标,值得咱们参考和学习。


*参考文献:

[1] Cole R, Funke F, Giakoumakis L, et al. The mixed workload CH-benCHmark[C]//Proceedings of the Fourth International Workshop on Testing Database Systems. 2011: 1-6.

[2] Coelho F, Paulo J, Vilaça R, et al. Htapbench: Hybrid transactional and analytical processing benchmark[C]//Proceedings of the 8th ACM/SPEC on International Conference on Performance Engineering. 2017: 293-304.

[3] Kang G, Wang L, Gao W, et al. OLxPBench: Real-time, Semantically Consistent, and Domain-specific are Essential in Benchmarking, Designing, and Implementing HTAP Systems[J]. arXiv preprint arXiv:2203.16095, 2022.

[4] Milkai E, Chronis Y, Gaffney K P, et al. How Good is My HTAP System?[C]//Proceedings of the 2022 International Conference on Management of Data. 2022: 1810-1824.

[5] [杨传辉,“真正的HTAP对用户和开发者意味着什么?“]

[6]弱一致性读,https://open.oceanbase.com/do...