国产真实乱全部视频,黄色片视频在线免费观看,密臀av一区二区三区,av黄色一级,中文字幕.com,日本a级网站,在线视频观看91

一種并發(fā)控制解耦的云原生數(shù)據(jù)庫系統(tǒng)及其事務(wù)處理方法

文檔序號:42326796發(fā)布日期:2025-07-01 19:46閱讀:9來源:國知局

本發(fā)明涉及數(shù)據(jù)庫,具體涉及一種并發(fā)控制解耦的云原生數(shù)據(jù)庫系統(tǒng)及其事務(wù)處理方法。


背景技術(shù):

1、隨著云計(jì)算技術(shù)的快速發(fā)展,云原生數(shù)據(jù)庫架構(gòu)逐漸成為數(shù)據(jù)庫系統(tǒng)的主流設(shè)計(jì)范式。傳統(tǒng)云原生數(shù)據(jù)庫系統(tǒng)將執(zhí)行層與數(shù)據(jù)存儲層解耦,形成存算分離的兩層架構(gòu),從而實(shí)現(xiàn)計(jì)算與存儲的獨(dú)立擴(kuò)展,提升數(shù)據(jù)庫系統(tǒng)的可擴(kuò)展性與彈性。

2、并發(fā)控制(concurrency?control,cc)作為數(shù)據(jù)庫系統(tǒng)中的核心功能模塊,旨在保障數(shù)據(jù)的原子性、一致性、隔離性與持久性。如圖1(a)和(b)所示,目前大多數(shù)云原生數(shù)據(jù)庫系統(tǒng)要么將并發(fā)控制與執(zhí)行層耦合,要么將并發(fā)控制與數(shù)據(jù)存儲層耦合。但是,隨著數(shù)據(jù)規(guī)模的不斷增加,這種并發(fā)控制耦合的云原生數(shù)據(jù)庫系統(tǒng)面臨著嚴(yán)峻的可擴(kuò)展性挑戰(zhàn)。例如,當(dāng)并發(fā)控制與執(zhí)行層耦合時(shí),需要增加執(zhí)行節(jié)點(diǎn)數(shù)量來提升并發(fā)控制性能,但執(zhí)行節(jié)點(diǎn)間的協(xié)調(diào)開銷也隨之增加,當(dāng)協(xié)調(diào)開銷超過了新增節(jié)點(diǎn)所帶來的性能收益時(shí),數(shù)據(jù)庫系統(tǒng)整體性能就會下降;當(dāng)并發(fā)控制與數(shù)據(jù)存儲層耦合時(shí),由于并發(fā)控制需要大量計(jì)算資源來解決并發(fā)沖突且數(shù)據(jù)存儲節(jié)點(diǎn)計(jì)算資源有限,即使增加數(shù)據(jù)存儲節(jié)點(diǎn)的數(shù)量,也難以提高并發(fā)控制的性能。因此,并發(fā)控制的資源需求既不與執(zhí)行層一致,也不與數(shù)據(jù)存儲層一致,為了提高并發(fā)控制的性能和拓展性,需要將并發(fā)控制解耦,形成執(zhí)行層-并發(fā)控制層-數(shù)據(jù)存儲層三層解耦的云原生數(shù)據(jù)庫系統(tǒng)。


技術(shù)實(shí)現(xiàn)思路

1、本發(fā)明的目的在于提供一種并發(fā)控制解耦的云原生數(shù)據(jù)庫系統(tǒng)及其事務(wù)處理方法:一方面,將數(shù)據(jù)庫并發(fā)控制從數(shù)據(jù)存儲層與執(zhí)行層中解耦,構(gòu)建執(zhí)行層-并發(fā)控制層-數(shù)據(jù)存儲層三層解耦的云原生數(shù)據(jù)庫系統(tǒng),以避免傳統(tǒng)并發(fā)控制耦合架構(gòu)的性能瓶頸,提升數(shù)據(jù)庫并發(fā)控制的靈活性、彈性和可拓展性,為高并發(fā)、大規(guī)模數(shù)據(jù)處理提供強(qiáng)有力的支持;另一方面,提供了一種事務(wù)處理方法,該方法應(yīng)用于所述并發(fā)控制解耦的云原生數(shù)據(jù)庫系統(tǒng),提高并發(fā)控制的可拓展性。

2、本發(fā)明的技術(shù)方案具體是:

3、一種并發(fā)控制解耦的云原生數(shù)據(jù)庫系統(tǒng),包括并發(fā)控制、執(zhí)行層和數(shù)據(jù)存儲層,并發(fā)控制從數(shù)據(jù)存儲層與執(zhí)行層中解耦,形成執(zhí)行層-并發(fā)控制層-數(shù)據(jù)存儲層的三層解耦的云原生數(shù)據(jù)庫系統(tǒng)。

4、如上所述的云原生數(shù)據(jù)庫系統(tǒng)的事務(wù)處理方法,包括如下步驟:

5、步驟1:初始化執(zhí)行節(jié)點(diǎn)的事務(wù)批處理的時(shí)間間隔epoch并設(shè)置并發(fā)控制節(jié)點(diǎn)的事務(wù)隔離級別;

6、步驟2:執(zhí)行節(jié)點(diǎn)根據(jù)設(shè)定的epoch的大小從客戶端接收事務(wù)請求;

7、步驟3:執(zhí)行節(jié)點(diǎn)為接收的事務(wù)生成對應(yīng)的讀集和寫集;

8、步驟4:執(zhí)行節(jié)點(diǎn)將讀集和寫集發(fā)送給并發(fā)控制節(jié)點(diǎn),并等待并發(fā)控制節(jié)點(diǎn)的事務(wù)處理結(jié)果反饋;

9、步驟5:并發(fā)控制節(jié)點(diǎn)對同一epoch內(nèi)的每個(gè)事務(wù)進(jìn)行讀集驗(yàn)證,若事務(wù)通過讀集驗(yàn)證,將該事務(wù)中的寫集發(fā)送給其他并發(fā)控制節(jié)點(diǎn),否則將該事務(wù)的狀態(tài)設(shè)置為回滾狀態(tài);

10、步驟6:并發(fā)控制節(jié)點(diǎn)等待當(dāng)前epoch的寫集收集完整;

11、步驟7:引入全局寫版本映射表和局部寫版本映射表這兩個(gè)輔助數(shù)據(jù)結(jié)構(gòu),對當(dāng)前epoch內(nèi)的每個(gè)事務(wù)進(jìn)行寫集驗(yàn)證;

12、所述全局寫版本映射表,用于維護(hù)系統(tǒng)范圍內(nèi)的全局版本信息,確保任何事務(wù)均能獲取數(shù)據(jù)行的最新版本和刪除狀態(tài);

13、所述局部寫版本映射表,用于記錄當(dāng)前epoch內(nèi)的事務(wù)臨時(shí)寫入版本,以便檢測同一epoch內(nèi)事務(wù)之間的并發(fā)寫沖突;

14、步驟8:并發(fā)控制節(jié)點(diǎn)更新全局寫版本映射表并寫入持久化日志,且將本epoch的所有事務(wù)的狀態(tài)反饋給執(zhí)行節(jié)點(diǎn);

15、步驟9:并發(fā)控制節(jié)點(diǎn)將持久化日志異步發(fā)送給存儲節(jié)點(diǎn)。

16、如上所述的事務(wù)處理方法,所述事務(wù)隔離級別包括讀已提交、可重復(fù)讀以及快照隔離。

17、如上所述的事務(wù)處理方法,步驟2所述的執(zhí)行節(jié)點(diǎn)根據(jù)設(shè)定的epoch的大小從客戶端接收事務(wù)請求為:執(zhí)行節(jié)點(diǎn)判斷當(dāng)前epoch號是否發(fā)生了改變,若否,執(zhí)行節(jié)點(diǎn)繼續(xù)從客戶端接收事務(wù)請求;若是,則當(dāng)前epoch號代表的本批次的事務(wù)收集完成,開啟下一個(gè)epoch號所代表批次的事務(wù)收集。

18、如上所述的事務(wù)處理方法,所述步驟3所述執(zhí)行節(jié)點(diǎn)為接收的事務(wù)生成對應(yīng)的讀集和寫集包括:

19、當(dāng)一個(gè)epoch的事務(wù)收集完整后,執(zhí)行節(jié)點(diǎn)為本批次的事務(wù)生成對應(yīng)的讀集和寫集;

20、執(zhí)行節(jié)點(diǎn)將事務(wù)內(nèi)的sql語句經(jīng)過詞法分析、語法分析、查詢優(yōu)化后生成物理執(zhí)行計(jì)劃,并根據(jù)物理執(zhí)行計(jì)劃從數(shù)據(jù)存儲節(jié)點(diǎn)獲取元數(shù)據(jù),依據(jù)元數(shù)據(jù)生成對應(yīng)的讀集和寫集。

21、如上所述的事務(wù)處理方法,所述步驟4具體為:當(dāng)一個(gè)epoch內(nèi)的所有事務(wù)的讀集和寫集生成完畢后,執(zhí)行節(jié)點(diǎn)將這些讀寫集進(jìn)行序列化和數(shù)據(jù)壓縮,并發(fā)送至任一并發(fā)控制節(jié)點(diǎn);完成發(fā)送操作后,執(zhí)行節(jié)點(diǎn)中負(fù)責(zé)當(dāng)前epoch事務(wù)處理的線程將進(jìn)入阻塞狀態(tài),以等待來自并發(fā)控制節(jié)點(diǎn)的事務(wù)處理結(jié)果反饋。

22、如上所述的事務(wù)處理方法,在所述步驟5中,在收到執(zhí)行節(jié)點(diǎn)發(fā)來的讀集和寫集后,并發(fā)控制節(jié)點(diǎn)根據(jù)步驟1設(shè)置的事務(wù)隔離級別,基于當(dāng)前的epoch號獨(dú)立驗(yàn)證本地的讀集:如果并發(fā)控制節(jié)點(diǎn)的事務(wù)隔離級別是讀已提交,直接將寫集發(fā)送給其他并發(fā)控制節(jié)點(diǎn);如果事務(wù)隔離級別是可重復(fù)讀,遍歷當(dāng)前的所有讀集,如果發(fā)現(xiàn)有讀集的版本和當(dāng)前記錄的版本不一致,回滾當(dāng)前的事務(wù),否則將寫集發(fā)送給其他所有對等并發(fā)控制節(jié)點(diǎn);如果事務(wù)隔離級別是快照隔離,驗(yàn)證當(dāng)前快照是否被更新,如果被更新中止當(dāng)前事務(wù),否則將寫集發(fā)送給其他并發(fā)控制節(jié)點(diǎn)。

23、如上所述的事務(wù)處理方法,步驟7進(jìn)一步包括:

24、步驟7.1:并發(fā)控制節(jié)點(diǎn)驗(yàn)證當(dāng)前epoch內(nèi)的事務(wù)和之前epoch的事務(wù)之間的寫沖突;

25、步驟7.2:并發(fā)控制節(jié)點(diǎn)驗(yàn)證當(dāng)前epoch內(nèi)事務(wù)之間的寫沖突。

26、如上所述的事務(wù)處理方法,步驟7.1所述并發(fā)控制節(jié)點(diǎn)驗(yàn)證當(dāng)前epoch內(nèi)的事務(wù)和之前epoch的事務(wù)之間的寫沖突的方法為:并發(fā)控制節(jié)點(diǎn)遍歷當(dāng)前epoch內(nèi)所有事務(wù)的寫集,對每個(gè)寫操作執(zhí)行有效性檢查,若寫操作為更新或刪除,則要求目標(biāo)數(shù)據(jù)行必須在全局寫版本映射表中存在且未被邏輯刪除;若寫操作為插入,則目標(biāo)數(shù)據(jù)行不得存在于全局寫版本映射表中;對于有效性檢查未通過的事務(wù),并發(fā)控制節(jié)點(diǎn)將其事務(wù)狀態(tài)設(shè)置為回滾狀態(tài)。

27、如上所述的事務(wù)處理方法,步驟7.2所述并發(fā)控制節(jié)點(diǎn)驗(yàn)證當(dāng)前epoch內(nèi)事務(wù)之間的寫沖突,對于epoch內(nèi)的一個(gè)事務(wù)驗(yàn)證流程如下:遍歷這個(gè)事務(wù)的所有寫集,通過局部寫版本映射表查找當(dāng)前epoch的最新寫集的數(shù)據(jù)行,如果找到的數(shù)據(jù)行為空,表明沒有其他事務(wù)試圖更新該行,因此當(dāng)前事務(wù)可以繼續(xù)執(zhí)行,將事務(wù)需要更新的數(shù)據(jù)行插入到局部寫版本映射表中;否則,epoch內(nèi)的事務(wù)之間發(fā)生了寫沖突,通過比較事務(wù)號的大小來確定哪個(gè)事務(wù)能夠成功提交,哪個(gè)事務(wù)需要進(jìn)行回滾;并發(fā)控制節(jié)點(diǎn)將能夠提交的事務(wù)的狀態(tài)設(shè)置為提交,將需要回滾的事務(wù)狀態(tài)設(shè)置為回滾。

28、與現(xiàn)有技術(shù)相比較,本發(fā)明具有如下有益效果:本發(fā)明將數(shù)據(jù)庫并發(fā)控制從數(shù)據(jù)存儲層與執(zhí)行層中解耦,構(gòu)建執(zhí)行層-并發(fā)控制層-數(shù)據(jù)存儲層三層解耦的云原生數(shù)據(jù)庫系統(tǒng),能夠避免傳統(tǒng)并發(fā)控制耦合架構(gòu)的性能瓶頸,將數(shù)據(jù)庫并發(fā)控制模塊解耦后,每個(gè)并發(fā)控制節(jié)點(diǎn)都可以接收事務(wù)并解決沖突,且可以根據(jù)具體的工作負(fù)載獨(dú)立伸縮,提升了數(shù)據(jù)庫并發(fā)控制的靈活性、彈性和可拓展性,在面對大規(guī)模的工作負(fù)載時(shí),并發(fā)控制能夠獨(dú)立地彈性伸縮,適應(yīng)實(shí)時(shí)變化的工作負(fù)載,可以為高并發(fā)、大規(guī)模數(shù)據(jù)處理提供強(qiáng)有力的支持;并提供了一種事務(wù)處理方法,該方法應(yīng)用于所述并發(fā)控制解耦的云原生數(shù)據(jù)庫系統(tǒng),提高并發(fā)控制的可拓展性。

當(dāng)前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1