DBHammer

Dike:面向分布式事务型数据库评测基准及工具介绍

一、工作的意义

随着业务规模的增长,很多业务方都将自己的应用从集中的事务型数据库部署到分布式事务型数据库来追求可扩展和高可用。分布式事务型数据库根据存储和计算的不同扩展方式通常分为Share-Nothing架构、Share-Nothing计算和存储分离架构以及Share-Storage架构(如图1)。这三种不同的架构有不同的适用场景,而且不同的数据库也有存在不同的瓶颈点和优化技术,这就需要一种评测手段能够给出公平的评价和分析。

我们将常用的事务型评测基准标记在图1中,他们被分为三类,分别是:微观的评测基准、应用驱动的评测基准和目的驱动的评测基准。我们发现事务型评测基准大多数在2010前被提出来,而分布式事务型数据库却在2010年之后开始迅猛发展。 所以,这就引发了一个问题:现有的事务型评测基准是否仍然适用于评测分布式事务型数据库? 图1 分布式事务型数据库和OLTP评测基准的发展历史

图1 分布式事务型数据库和OLTP评测基准的发展历史

在对现有的分布式事务型数据库进行了调研和总结之后,我们认为面向分布式事务型数据库的评测基准必须涵盖如下三个方面:分布式事务型数据库的瓶颈点(分布式事务比例、分布式事务跨节点、分布式查询的性能、冲突), 分布式数据库数据库的优化手段(读写分离、小表广播、数据放置方式)等和功能测试(分布式死锁、全局快照、分布式并发控制、一致性测试、可用性测试)。 然而,经过我们的调研和实验发现,现有的事务型评测基准没有完全覆盖到以上三个方面的评测。于是,我们提出并设计了一款面向分布式事务型数据库评测的基准并实现了Dike工具, 它不仅能够评判被测数据库是否满足分布式事务型数据库的基本特征,而且还能针对性地对分布式事务型数据库的瓶颈点和优化手段进行评测。

二、 Benchmark特征

为了公平且有效地评测各个分布式事务型数据库,我们对Dike提出了以下四点设计要求:第一,功能健全性,它能帮助我们去回答当前的数据库是否是分布式事务型数据库;第二,微观性,它能够针对性地评测被测的分布式事务型数据库在研发过程中的优化点和瓶颈点;第三,定量性,它能够针对分布式事务型数据库中瓶颈点进行定量的评测分析,比如,通过定量地改变事务跨节点数的多少来看分布式事务型数据库的性能变化情况;第四,动态性,它能够提供模拟业务动态变化的情况,这也是符合现实的应用需求,如热点和负载量的动态变化。

三、 工具设计与实现

图2 Dike架构图

图2 Dike架构图

根据分布式事务型数据库评测的要求,我们定义并实现了Dike,架构图如图2所示。Dike包括了数据生成器、负载生成器、混沌生成器、验证器和性能收集器。 为验证被测数据库是否满足分布式事务型数据库的基本特征,Dike首先从配置文件中读取数据库信息等,之后调用数据生成器来生成指定规格的数据。然后,Dike调用验证器来生成负载对被测数据库进行功能测试。最后,Dike将功能测试的结果反馈给用户。

为评测被测数据库潜在的瓶颈点和优化技术,Dike同样先从配置文件中读取数据库信息和评测内容(如分布式事务的处理能力),之后根据配置信息调用数据生成器来生成指定规格的数据。然后,Dike调用负载生成器来生成指定的负载进行性能测试。最后,Dike调用性能收集器将结果整合并反馈给用户。

为评测被测数据库的可用性,Dike专门设计了混沌生成器。它能够根据用户的要求进行一系列分布式场景中可能的故障注入。

此外,该工具提供了可定制化的服务,用户可以通过修改配置项来评测特定的内容。

Next post
OceanBase连接顺序选择的优劣评估