小O君
作者小O君·2023-01-12 16:44
品牌运营·北京奥星贝斯科技有限公司

面向HTAP数据库的基准评测工具研究进展

字数 3491阅读 647评论 0赞 0

导语: 本文总结了近年来代表性HTAP评测基准,旨在服务HTAP数据库系统评测需求。希望阅读完本文,你可以对这个话题有新的收获,有不同看法也欢迎评论留言探讨。

作者:

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

「王清帅,华东师范大学数据科学与工程学院在读博士生。博士生期间在华东师范大学数据学院DBHammer组致力数据库系统的相关技术研究,目前在面向OLAP应用的负载生成,分布式、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负载面对复杂查询的性能外,现有的HTAPBenchmark在评估性能的设计上更加关注以下两个问题:

混合负载生成: 生成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流负载,通过控制变量的方式人工地对测试结果进行隔离性、干扰性的分析。

测试指标: 首次采用

虽然指标很客观,但不适用于数据库间的横向比较,适用于个体数据库的性能展示。

二、HTAPBench

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

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

测试方法: HTAPBench通过指定应用可以容忍的OLTP目标吞吐下限范围,运行足够多的TP线程保证满足吞吐的初始下限,在执行过程中再根据TP吞吐的实时反馈来确定是否添加OLAP流,由此测得保证TP吞吐量下的最大OLAP能力,运行模式见图2。这种测量方式包含了对于TP/AP之间相互干扰的考虑,只需要执行一次,较简便。

测试指标: HTAPBench使用

进行单个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,使用

进行结果的呈现。

图3 OLxPBench架构[3]

四、HATtrick

HATtrick[4] 是威斯康辛大学在2022年提出的针对HTAP数据库的基准,它提出不同任务之间的隔离性和控制新鲜数据的访问是HTAP数据库实现中面临的主要挑战。

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

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

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

图4 各曲线示意图[4]

结语:

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

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

如果觉得我的文章对您有用,请点赞。您的支持将鼓励我继续创作!

0

添加新评论0 条评论

Ctrl+Enter 发表

作者其他文章

相关文章

相关问题

相关资料

X社区推广