关键词:
数据库系统
性能评测
质量管理
数据生成
负载生成
正确性验证
摘要:
数据库管理系统作为重要的基础软件,广泛应用于金融、通讯、电商等领域的关键应用中。近年来,互联网的快速发展催生了大量的新型应用,同时传统应用也在快速演变。在新应用的驱动下,数据库系统得到了快速的发展。本世纪初兴起了No SQL数据库,如今New SQL数据库扮演着越来越重要的角色,目前知名的数据库系统已超过300个。此外,伴随着新硬件的发展,数据库系统的设计有了更多的选择,系统架构也在不断地重构。持续涌现的新应用、快速迭代的新系统对数据库系统的性能评测与质量管理带来了新的挑战。一直以来,评测基准是衡量数据库系统性能的一把尺子,引导着数据库系统的发展方向。但评测基准是对一类应用负载的抽象,服务于通用性的性能评测。对于一个特定应用,尤其是一个新型应用,由于评测基准的负载与实际应用可能差异巨大,因此其评测结果或许不具有指导意义。传统的测试数据和测试负载生成技术,由于生成数据和生成负载的应用弱相关性,基于其得到的评测结果对于特定应用来说可能不具有参考价值。同时,对于数据库系统的质量管理来说,评测基准负载是相对有限的,而当前测试数据和测试负载的生成技术也无法实现大规模事务负载的自动化生成,因此数据库系统对于事务型负载,尤其是高压、高冲突的事务型负载,难以得到充分评测。针对上述数据库系统的性能评测和质量管理问题,本文实现了新型的面向应用的数据库性能评测技术和大规模事务负载的自动化评测技术。本文的主要贡献总结如下:1.面向分析型应用的数据库性能评测技术。本文设计并实现了Touchstone系统,以支持负载感知的测试数据库生成和查询实例化。在Touchstone系统中,提出了一种新型的查询实例化机制,基于属性值的数据分布,利用二分搜索和随机采样算法快速定位符合基数约束的查询参数值。为实现测试数据库的并行生成,该系统设计了新型数据结构约束链和连接信息表来解耦属性之间的关联关系。为降低内存消耗,该系统提出了一种高效的连接信息表压缩算法,在不影响生成数据质量的情况下保证了内存消耗的可控性。2.面向事务型应用的数据库性能评测技术。本文设计并实现了Lauca系统,以支持面向事务型应用的模拟负载生成。在Lauca系统中,首次给出了事务型模拟负载生成中需要关注的关键负载特征。Lauca提出了利用事务结构信息和参数依赖信息来定义事务逻辑,以刻画应用负载中潜在的业务逻辑。为捕获目标负载数据访问分布中的倾斜性、动态性和连续性,该系统相应提出了倾斜数据访问分布、动态数据访问分布和连续数据访问分布。最后,Lauca在架构设计上保证了对生产环境中数据隐私的保护。3.大规模事务负载生成与执行正确性验证技术。本文设计并实现了Thor系统,以支持大规模事务负载测试案例的生成与执行正确性的验证。为生成全面且可控的随机事务负载,Thor抽象了一组基础数据库操作,通过在指定空间随机组合,生成大规模事务负载。为实现高压、高冲突事务负载下数据库的正确性验证,该系统提出了基于事务执行历史的异象和异常检测算法以及读结果集正确性验证算法,高效实现了数据库隔离级别的正确性验证。此外,Thor的系统设计保证了在海量事务执行历史下验证过程的低内存消耗。综上所述,本文针对数据库系统性能评测与质量管理中存在的问题,设计并实现了Touchstone、Lauca和Thor三个系统。首先,为解决面向分析型应用的数据库性能评测问题,Touchstone系统实现了高效的查询实例化和完全并行的测试数据库生成;其次,为解决面向事务型应用的数据库性能评测问题,Lauca系统能够生成与实际应用负载高度相似的模拟事务负载;最后,为解决数据库系统针对事务型负载测试不充分的问题,Thor系统支持大规模事务负载的自动化生成,并可对高压、高冲突事务负载下数据库的隔离级别进行正确性验证。本文通过大量实验验证了各个系统的有效性。未来的工作包括:进一步完善三个系统的外围工具,并进行开源和推广使用,其中Touchstone和Lauca系统已被引入Ti DB的质量管理体系;构建海量的测试案例库以支持数据库系统的自动化评测。