DBHammer

项目

DBHammer实验室研发了多款支持数据库系统评测的工具,包括:

面向数据库的功能评测

Artemis

查询处理是分析型(OLAP)数据库的重要功能,包含查询优化和查询执行,查询执行引擎可能会有Bug,查询优化器可能有做的不好的地方,因此我们提出Artemis,是一个服务于分析性数据库查询处理功能的模糊测试工具,通过确定性的带有数据分布的数据生成机制、算子丰富的负载生成机制、完全避免NULL值的查询参数实例化方法、高效的算子精确基数以及查询结果自计算机制服务于分析性数据库查询执行引擎的Bug测试以及查询优化器的评估。

Orca

隔离级别由数据库的并发控制模块实现,涉及到数据库中数据的一致性和完整性,因此隔离级别的正确性对于数据库系统的一致性至关重要;然而,目前对于隔离级别的正确性测试方法存在诸多缺陷,导致难以发现隐藏具体实现中的BUG,从而破坏了数据的一致性,会给数据库用户带来严重的损失。为了解决事务型(OLTP)数据库隔离级别正确性测试中测试效率低下、测试深度不够的问题,我们提出了Orca,一个全面评测数据库隔离级别实现正确性的自动化测试工具,完成高效的、充分的以及有效的OLTP数据库测试。Orca可以帮助数据库生产商完成数据库的开发以及帮助数据库用户进行数据库选型。

面向应用的数据库性能评测

Touchstone

用于解决面向OLAP应用的数据库性能测试中真实数据和负载不可得问题,帮助企业进行数据库选型、PoC测试以及做面向应用的性能优化。Touchstone是面向OLAP应用的合成负载生成器,支持多节点全并行数据生成,目前支持TPC-H前16个查询的完整支持,为业界领先水平。为保证自动化数据生成任务,我们提供自动化采集工具TouchstoneToolChain用于配置收集。

Lauca

用于解决面向OLTP应用的数据库性能测试中真实数据和负载不可得问题,帮助企业进行数据库选型、PoC测试以及做面向应用的性能优化。在评估数据库系统服务于特定应用的性能时,定义评估的可靠性(负载仿真程度)由合成负载与实际应用负载之间的执行性能相似性决定。Lauca是面向OLTP应用的第一个合成负载生成器,能够实现生成和实际应用负载性能指标高度相似的合成负载,同时保证应用数据的隐蔽性、工具可扩展性和负载可拓展性。

面向新型数据库的Benchmark

Dike

Dike是一款面向分布式事务型数据库的评测基准。Dike根据所归纳的分布式事务型数据库需要满足的基础能力和现有的优化手段,既可以实现对分布式事务型数据库进行功能上的健全性测试(分布式死锁、全局快照、分布式并发控制、一致性测试、可用性测试),又可以进行性能上的微观性、定量性和动态性测试(分布式事务比例、分布式事务跨节点、分布式查询的性能、冲突)。 综上Dike实现了分布式事务型数据库在功能和性能上的评测,并且模拟了环境的不稳定性,可以提供面向分布式事务型数据库的评测。

数据库测试平台

Woodpecker

Woodpecker是一个易使用、高效、通用、可扩展的数据库测试框架,可评测数据库的性能、功能、以及运行的稳定性。Woodpecker提供了具有强表达力、可高效构造测试案例的测试定义语言,通过使用Java CC解析器,实现了复杂、完备的语义解析机制,并通过Java的反射机制将关键字映射到命令调用。用户不需要理解复杂的底层解析,即可使用简单的测试关键字来实现对数据库的一键评测。Woodpecker实现了轻量级的细粒度统计信息收集与分析,支持在测试结束后自动生成测试结果报告,并支持自动化的回归测试。Woodpecker支持适配多种主流数据库系统,并提供数据库访问其他数据库的接口以供后续开发,测试案例库可以在多种语法兼容的数据库系统间共享复用。