来源:中国科学院软件研究所 发布时间:2023/1/11 13:08:37
选择字号:
中科院软件所在数据库系统的正确性保障方面取得进展

 

近日,科院软件所软件工程中心数据库系统可靠性保障团队的两篇论文被ICSE 2023接收。ICSE(International Conference on Software Engineering)是软件工程领域的顶级国际会议,迄今已经举办45届。研究成果聚焦数据库系统在SQL语句、事务执行方面的正确性,是该研究团队在数据库系统可靠性保障方向的新探索。

论文“Testing Database Systems via Differential Query Execution”关注数据库系统中单条SQL语句执行的正确性。关系型数据库系统使用结构化查询语言(SQL)高效地存储和检索数据。如果SQL语句执行存在缺陷,可能会导致数据库状态错误、系统宕机等严重后果。因此,SQL语句执行的正确性是基于数据库系统的各类应用正确性保障的关键。现有数据库系统测试方法主要关注SELECT语句执行的正确性,无法检测UPDATE、DELETE等更新语句中的缺陷。同时,研究团队发现SELECT、UPDATE和DELETE语句都使用WHERE子句作为查询条件与数据库系统进行交互,相同的WHERE子句应该影响到数据库中相同的数据行。基于上述发现和现有检查方法存在的问题,研究团队提出了差分语句执行方法DQE(Differential Query Execution),通过分析使用相同WHERE子句的SELECT、UPDATE和DELETE的执行差异,自动化判断单个数据库系统中SQL语句执行的正确性。

图1展示了DQE的测试流程。该研究团队在5个知名数据库系统(MySQL、MariaDB、TiDB、CockroachDB和SQLite)中,共计检测了50个新缺陷,其中41个缺陷得到开发人员确认,11个已经被修复。

图1 DQE的测试流程

论文“Detecting Isolation Bugs via Transaction Oracle Construction”关注数据库系统中事务执行的正确性。关系型数据库系统是利用事务机制来保障数据的完整性,但数据库系统可能违反事务执行的隔离性要求,导致数据库系统出现查询结果错误、数据库状态错误等严重缺陷。而现有事务可靠性保障研究主要依赖简单数据结构与事务执行历史来验证事务隔离性,不能支持实际数据库系统中大部分常见事务特性。

针对该问题,研究团队提出一种自动化检测数据库系统中事务缺陷的方法Troc。该方法的核心思想是把并行事务对解耦成一组按照一定顺序、在特定数据库视图上执行的独立SQL语句,以此作为事务执行预言。实际事务执行结果与独立语句执行结果之间的不一致表明存在事务缺陷。

图2展示了Troc的测试流程。该研究团队在3个知名关系型数据库系统(MySQL、MariaDB、TiDB)中,发现了12个事务相关的隔离缺陷,其中7个是尚未被披露的新缺陷。

图2 Troc的测试流程

“Testing Database Systems via Differential Query Execution”的第一作者为博士生宋建森,通讯作者为窦文生、王伟研究员;“Detecting Isolation Bugs via Transaction Oracle Construction”的第一作者为窦文生研究员。上述研究成果已经在浪潮云溪数据库系统、达梦数据库系统上开展实际应用,并检测到若干真实缺陷。研究获得国家自然科学基金、中国科学院青年创新促进会等的支持。

 
特别声明:本文转载仅仅是出于传播信息的需要,并不意味着代表本网站观点或证实其内容的真实性;如其他媒体、网站或个人从本网站转载使用,须保留本网站注明的“来源”,并自负版权等法律责任;作者如果不希望被转载或者联系转载稿费等事宜,请与我们接洽。
 
 打印  发E-mail给: 
    
 
相关新闻 相关论文

图片新闻
《自然》(20241121出版)一周论文导读 清华这位院士搭建了一座室外地质博物园
科学家完整构建火星空间太阳高能粒子能谱 “糖刹车”基因破除番茄产量与品质悖论
>>更多
 
一周新闻排行
 
编辑部推荐博文
 
Baidu
map