中科院軟件所在數(shù)據(jù)庫系統(tǒng)的正確性保障方面取得進展

2023-01-11 13:16:06


(資料圖)

近日,中科院軟件所軟件工程中心數(shù)據(jù)庫系統(tǒng)可靠性保障團隊的兩篇論文被ICSE 2023接收。ICSE(International Conference on Software Engineering)是軟件工程領(lǐng)域的頂級國際會議,迄今已經(jīng)舉辦45屆。研究成果聚焦數(shù)據(jù)庫系統(tǒng)在SQL語句、事務(wù)執(zhí)行方面的正確性,是該研究團隊在數(shù)據(jù)庫系統(tǒng)可靠性保障方向的新探索。

論文“Testing Database Systems via Differential Query Execution”關(guān)注數(shù)據(jù)庫系統(tǒng)中單條SQL語句執(zhí)行的正確性。關(guān)系型數(shù)據(jù)庫系統(tǒng)使用結(jié)構(gòu)化查詢語言(SQL)高效地存儲和檢索數(shù)據(jù)。如果SQL語句執(zhí)行存在缺陷,可能會導(dǎo)致數(shù)據(jù)庫狀態(tài)錯誤、系統(tǒng)宕機等嚴重后果。因此,SQL語句執(zhí)行的正確性是基于數(shù)據(jù)庫系統(tǒng)的各類應(yīng)用正確性保障的關(guān)鍵?,F(xiàn)有數(shù)據(jù)庫系統(tǒng)測試方法主要關(guān)注SELECT語句執(zhí)行的正確性,無法檢測UPDATE、DELETE等更新語句中的缺陷。同時,研究團隊發(fā)現(xiàn)SELECT、UPDATE和DELETE語句都使用WHERE子句作為查詢條件與數(shù)據(jù)庫系統(tǒng)進行交互,相同的WHERE子句應(yīng)該影響到數(shù)據(jù)庫中相同的數(shù)據(jù)行。基于上述發(fā)現(xiàn)和現(xiàn)有檢查方法存在的問題,研究團隊提出了差分語句執(zhí)行方法DQE(Differential Query Execution),通過分析使用相同WHERE子句的SELECT、UPDATE和DELETE的執(zhí)行差異,自動化判斷單個數(shù)據(jù)庫系統(tǒng)中SQL語句執(zhí)行的正確性。

圖1展示了DQE的測試流程。該研究團隊在5個知名數(shù)據(jù)庫系統(tǒng)(MySQL、MariaDB、TiDB、CockroachDB和SQLite)中,共計檢測了50個新缺陷,其中41個缺陷得到開發(fā)人員確認,11個已經(jīng)被修復(fù)。

圖1 DQE的測試流程

論文“Detecting Isolation Bugs via Transaction Oracle Construction”關(guān)注數(shù)據(jù)庫系統(tǒng)中事務(wù)執(zhí)行的正確性。關(guān)系型數(shù)據(jù)庫系統(tǒng)是利用事務(wù)機制來保障數(shù)據(jù)的完整性,但數(shù)據(jù)庫系統(tǒng)可能違反事務(wù)執(zhí)行的隔離性要求,導(dǎo)致數(shù)據(jù)庫系統(tǒng)出現(xiàn)查詢結(jié)果錯誤、數(shù)據(jù)庫狀態(tài)錯誤等嚴重缺陷。而現(xiàn)有事務(wù)可靠性保障研究主要依賴簡單數(shù)據(jù)結(jié)構(gòu)與事務(wù)執(zhí)行歷史來驗證事務(wù)隔離性,不能支持實際數(shù)據(jù)庫系統(tǒng)中大部分常見事務(wù)特性。

針對該問題,研究團隊提出一種自動化檢測數(shù)據(jù)庫系統(tǒng)中事務(wù)缺陷的方法Troc。該方法的核心思想是把并行事務(wù)對解耦成一組按照一定順序、在特定數(shù)據(jù)庫視圖上執(zhí)行的獨立SQL語句,以此作為事務(wù)執(zhí)行預(yù)言。實際事務(wù)執(zhí)行結(jié)果與獨立語句執(zhí)行結(jié)果之間的不一致表明存在事務(wù)缺陷。

圖2展示了Troc的測試流程。該研究團隊在3個知名關(guān)系型數(shù)據(jù)庫系統(tǒng)(MySQL、MariaDB、TiDB)中,發(fā)現(xiàn)了12個事務(wù)相關(guān)的隔離缺陷,其中7個是尚未被披露的新缺陷。

圖2 Troc的測試流程

“Testing Database Systems via Differential Query Execution”的第一作者為博士生宋建森,通訊作者為竇文生、王偉研究員;“Detecting Isolation Bugs via Transaction Oracle Construction”的第一作者為竇文生研究員。上述研究成果已經(jīng)在浪潮云溪數(shù)據(jù)庫系統(tǒng)、達夢數(shù)據(jù)庫系統(tǒng)上開展實際應(yīng)用,并檢測到若干真實缺陷。研究獲得國家自然科學(xué)基金、中國科學(xué)院青年創(chuàng)新促進會等的支持。

標(biāo)簽:

關(guān)閉
新聞速遞