计算机工程与科学 ›› 2023, Vol. 45 ›› Issue (12): 2165-2174.
姜俊1,李文慧1,张亮2,王善民2,李瑞远1
JIANG Jun1,LI Wen-hui1,ZAHNG Liang2,WANG Shan-min2,LI Rui-yuan1
摘要: 全链路压力测试作为一种新兴的软件测试技术,直接在生产系统中做压力测试,旨在准确评估线上环境的性能。基于影子库的数据分流技术能够保证全链路压力测试过程中生产数据不受测试污染。基于SQL引擎技术设计并实现了一套完整的针对全链路压力测试的开源数据分流系统ShadowDB,其基本思想是通过SQL解析、SQL路由对用户请求正确分流。ShadowDB目前支持6种关系型数据库系统中所有SQL语句的数据分流;提出了2种数据分流算法:基于列的影子算法和基于Hint的影子算法;实现了所有JDBC的接口,允许线上应用程序无需修改代码即可使用ShadowDB;ShadowDB嵌入应用程序中,无需网络转发请求,对请求效率影响很小,保证了全链路压力测试结果的可靠性。使用2个通用的性能测试工具进行了大量的实验,结果表明ShadowDB的性能远远高于对比方案的。