计算机科学

Woodpecker:支持细粒度冲突模拟的数据库测试框架

  • 李捷荧 ,
  • 李宇明 ,
  • 张小磊 ,
  • 张蓉
展开
  • 华东师范大学 数据科学与工程学院, 上海 200062
李捷荧,男,硕士研究生,研究方向为分布式数据库.E-mail:jieyingli@hotmail.com.

收稿日期: 2017-06-19

  网络出版日期: 2018-03-22

Woodpecker: Fine-grained contention simulation database testing framework

  • LI Jie-ying ,
  • LI Yu-ming ,
  • ZHANG Xiao-lei ,
  • ZHANG Rong
Expand
  • School of Data Science and Engineering, East China Normal University, Shanghai 200062, China

Received date: 2017-06-19

  Online published: 2018-03-22

摘要

随着应用的丰富以及应用对性能的要求提升,各种形态的数据库开发业务应运而生,如行存、列存以及内存型等.因而数据库测试也变得越发重要.现有的数据库自动化测试框架在测试的灵活性、功能的全面性以及测试工作的细致性上都存在问题.首先,测试功能支持不够全面,无法同时支持功能测试、性能测试和数据库系统功能测试;其次,广泛使用的TPC-C基准测试在粗粒度仓库级别上模拟负载冲突,无法量化表示冲突,因此冲突模拟与实际预期误差较大;最后,测试案例的使用一般是静态的,无法动态地进行测试案例的组织和运行.对此,设计并实现了一个灵活的数据库自动化测试框架Woodpecker:提供一套语义丰富、易用、高效的测试任务描述语言,第一次实现上述3种测试任务混合运行的测试框架,并且首次支持量化的负载冲突模拟,包括读写冲突和写写冲突.实验部分以主键自增测试为例,展示了Woodpecker测试描述语言的优势,通过实验说明了Woodpecker对混合测试任务的支持,实验还展示了Woodpecker负载冲突细粒度模拟的正确性和可用性.

本文引用格式

李捷荧 , 李宇明 , 张小磊 , 张蓉 . Woodpecker:支持细粒度冲突模拟的数据库测试框架[J]. 华东师范大学学报(自然科学版), 2018 , 2018(2) : 77 -88 . DOI: 10.3969/j.issn.1000-5641.2018.02.008

Abstract

With the rich and the growing peformance requirement of applications, various database developments appear, such as row-based, column-based, main memory database and so on. Hence database testing becomes more and more important. Existing automated testing frameworks of database have some problems in flexibility of test, integrality of function and the granularity of test. Firstly they can't support functional test, performance test and DBMS functional test at the same time. Secondly popular benchmark TPC-C simulates workload contention by warehouse which can't quantify contention and maybe execution is different with expectation. Finally the use of test case is static, they can't organize and run test case dynamically. As a consequence this paper presents a flexible database testing framework which is called Woodpecker, its test task descriptive language has abundant primitives, easy-to-use and could write test case efficiently. Woodpecker is the first test framework that can mix three above-mentioned tests in one test case, and simulates workload contention in fine granularity which include read-write contention and write-write contention. We use a simple case in auto increment testing to show the descriptive language's advantage, last we verify the capacity of mixing three tests in Woodpecker, and besides, we show the results of workload contention simulation in performance test.

参考文献

[1] GEORGE L. HBase-The Definitive Guide:Random Access to Your Planet-Size Data[M].[S.l.]:O'Reilly, 2011.
[2] STONEBRAKER M, WEISBERG A. The VoltDB Main Memory DBMS[J]. IEEE Data Eng Bull, 2013, 36(2):21-27.
[3] FARBER F, CHA S K, PRIMSCH J, et al. SAP HANA database:Data manä gement for modern business applications[J]. ACM Sigmod Record, 2012, 40(4):45-51.
[4] MARICK B. When should a test be automated?[C/OL]//Proceedings of the International Software/Internet Quality Week.[2017-04-21]. http://www.uml.org.cn/Test/12/automate.pdf.
[5] ECNU. CEDAR:A distributed, shared-nothing relational database[EB/OL]. (2016-09-26)[2017-04-21]. https://github.com/daseECNU/Cedar.
[6] ORACLE. The MySQL Test Framework[EB/OL]. (2016-02-11)[2017-07-12]. https://dev.mysql.com/doc/mysqltest/2.0/en/.
[7] LEUTENEGGER S T, DIAS D. A modeling study of the TPC-C benchmark[J]. ACM Sigmod Record, 1993, 22(2):22-31.
[8] YAN C, CHEUNG A. Leveraging lock contention to improve OLTP application performance[J]. Proceedings of the VLDB Endowment, 2016, 9(5):444-455.
[9] PARRISH A S, ZWEBEN S H. Clarifying some fundamental concepts in software testing[J]. IEEE Transactions on Software Engineering, 1993, 19(7):742-746.
[10] KOREL B. Automated software test data generation[J]. Software Engineering IEEE Transactions on, 1990, 16(8):870-879.
[11] DEMILLO R A. Progress toward automated software testing[C]//International Conference on Software Engineering. IEEE Computer Society Press, 1991:180-183.
[12] AHMAD S. XML APIs testing using advance data driven techniques (ADDT)[EB/OL]. (2003-11-17)[2017-04-21]. https://www.stickyminds.com/article/xml-apis-testing-using-advance-data-driven-techniques-addt.
[13] 曹娜. 大型关系数据库自动化测试工具的设计与实现[D]. 武汉:华中科技大学, 2009.
[14] FRANKL P G, WEYUKER E J. Testing software to detect and reduce risk[J]. Journal of Systems & Software, 2000, 53(3):275-286.
[15] COOPER B F, SILBERSTEIN A, TAM E, et al. Benchmarking cloud serving systems with YCSB[C]//Proceedings of the 1st ACM Symposium on Cloud Computing. ACM, 2010:143-154.
[16] IBM. TATP:Telecom application transaction processing benchmark[EB/OL]. (2011-07-06)[2017-04-21]. http://tatpbenchmark.sourceforge.net.
[17] KODAGANALLUR V. Incorporating language processing into Java applications:A JavaCC tutorial[J]. IEEE Software, 2004, 21(4):70-77.
[18] SILBERSCHATZ A, KORTH H F, SUDARSHAN S. Database System Concepts[M], 4th ed. Columbus:McGraw-Hill Education, 2001.
[19] BERNSTEIN P A, GOODMAN N. Multiversion concurrency control-theory and algorithms[J]. ACM Transactions on Database Systems, 1983, 8(4):465-483.
文章导航

/