11月25日周一上午九点,在文附楼的109教室开始了11月份数据学院学术沙龙的活动。本次活动由彭贝城同学主持,共有三场由数据科学与工程学院的老师和研究生带来的报告。此次活动主要向同学介绍了数据库评测基准的概念。首先由张蓉老师向我们介绍了数据库基准测试的基本概念,以及一些当前的研究热点。随后,王清帅同学向我们介绍了他做的有关在OLAP数据库进行基准测试和测试生成中的特点和具体实现。紧接着,张舒燕向我们介绍了OLTP数据库进行基准测试和测试生成中的特点和具体实现。最后大家进行了热烈地学术讨论,圆满地完成了此次学术沙龙的活动。
张蓉老师向我们介绍了数据库基准测试的基本概念。数据库评测基准(Benchmark)指一套用于评测、比较不同DBMS性能的规范;其所生成的性能指标值能够客观、全面地比较各个DBMS的性能差距,如图1。数据库基准评测(Database Benchmarking)确保了竞争的公平有序,从而引导行业的健康发展。新型的应用、环境和系统决定了现有评测基准无法完全胜任数据库系统的评测任务,不能反映应用需求,也无法完成公平、有效地评测系统。报告中对数据生成、负载生成、度量选取、评测基准架构与评测方法等在内的基准评测的多个方面进行了深入的讨论,分析了在这些方面的研究难点和可能的研究方法。
图1 评测基准
报告中总结和分析了系统组在数据库benchmarking方面的工作,这些工作将会被集成到自主研发的测试框架Woodpecker上,见图2。数据库测试框架支持对已有功能、性能工具的集成;对测试负载和测试环境的适配;定义了测试描述语言,减少测试代价;支持对测试模式的选择以及对测试负载的执行逻辑的控制。其中技术创新点包括:
从应用角度出发,如何实现模拟负载和数据能反映应用在数据库上的特征表现:
面向应用的AP负载生成器和TP负载生成器,用于模拟真实业务负载,大规模协同生成数据和负载。服务于数据库选型,POC测试,数据库性能调优等工作。
针对极限测试的数据库benchmark:以类双11的电商抢购业务为应用背景,抽象负载特征,并提供负载生成、数据生成工具,保证负载压测过程中应用负载落在数据库上的特征表现符合预期。
从数据库开发者角度出发,保证数据库研发的质量,工作如下:
大规模随机负载生成,丰富数据库测试案例库,保证能生成大规模高质量负载,简化数据库测试负载的定义工作。摒弃原有的测试验证双系统模式,能完成测试DB系统的自验证工作,降低测试代价。
Bug定位辅助工具,bug包括功能bug和性能bug。首先,需要支持对大规模测试负载的有效筛选,减少测试周期;其次,需要支持对与bug相关的负载的有效筛选;最后,完成对与bug相关的内部代码的定位。
数据库测试框架,支持对已有工具的集成,对测试负载和测试环境的适配;定义了抽象层次更高的测试语义表达语言,减少测试代价;支持对测试模式的选择以及对测试负载的执行逻辑的控制。
图2 数据库测试框架
王清帅同学向我们介绍了在OLAP数据库进行基准测试和测试生成中的特点和具体实现。负载感知的测试数据库生成技术Touchstone可用于解决面向 OLAP 应用的数据库性能测试中真实数据和负载不可得问题,帮助数据库研发方实现面向特定应用的负载生成和数据生成。
这类工作的输入有目标应用的数据库模式、查询负载模板以及查询负载执行时的中间结果集大小,输出为一个测试数据库和实例化的测试查询语句。Touchstone可以保证自动生成的查询负载在生成数据库上执行的负载特征与真实负载在真实数据库上的性能指标一致。因为评测负载与真实应用负载具有相同的负载特征,所以生成负载和数据的评测结果对AP类数据库上线或者面向应用的性能优化具有指导意义。
图3 Touchstone系统整体框架
Touchstone系统用于支持面向分析型应用的数据库性能评测。在Touchstone中,我们提出了全新的负载生成算法和测试数据库生成机制,实现了秒级的负载实例化生成和完全并行、低内存消耗的测试数据库生成。Touchstone对分布式多节点和测试数据规模都是线性可扩展的,同时对复杂负载具有良好的支持能力。Touchstone的基数约束全局误差率低于千分之二,实例化的查询在测试数据库上的执行时间与真实查询在真实数据库上的执行时间基本一致。因此该生成方法对数据库的选型和调优将具有巨大的帮助。
张舒燕同学向我们介绍了在OLTP数据库进行基准测试和测试生成中的特点和具体实现。负载生成器Lauca可用于解决面向OLTP应用的数据库性能测试中真实数据和负载不可得问题,帮助企业进行数据库选型、PoC测试以及做面向应用的性能优化。
图4 动态数据访问分布
Lauca的输入有事务模板、负载轨迹、数据库模式以及数据库统计信息,输出为与真实应用负载高度相似的生成负载和测试数据库。为了支持数据隐私保护,Lauca提供生产特征抽取模块和模拟负载生成模块:生产特征抽取模块运行在客户生产环境,用于实现对真实数据的事务模版抽取和负载轨迹抽取,对数据进行脱敏处理;模拟负载生成模块根据脱敏之后的事务模版,负载特征和数据库模式,生成与真实应用中业务逻辑、数据访问分布高度相似的合成模拟负载,目标是在相同的数据库系统上执行真实负载和合成负载的时候,其性能指标到达一致或相近,从而可以测试出数据库系统在真实应用中的性能表现。这一工作让数据库使用者为特定应用选择数据库、数据库研发者做面向应用的TP库性能优化提供了技术保障。
Lauca是第一个面向应用的事务型工作负载生成器。我们刻画了真实OLTP负载的关键特性(即事务逻辑和数据访问分布),并提出新的负载特征刻画和负载生成算法,保证生成负载的高保真性和可用性。Lauca线性可扩展,能够同时部署在多个分布式节点上以支持测试数据库和负载的并发高效生成。
在最后的讨论环节,在座的同学和老师都提出了许多问题,形成了热烈的讨论。前来参加活动的同学都有很多的收获。
文案 | 彭贝城
摄影 | 刘文欣
排版 | 夏小雅