本技術涉及云計算,尤其涉及一種事務處理方法、系統(tǒng)及計算設備集群、計算機可讀存儲介質(zhì)、計算機程序產(chǎn)品。
背景技術:
1、大數(shù)據(jù)在企業(yè)中的應用越來越廣泛,數(shù)據(jù)庫作為大數(shù)據(jù)存儲和分析的載體市場廣大。其中,云原生數(shù)據(jù)庫基于云上基礎設施提供數(shù)據(jù)存儲服務,相比本地數(shù)據(jù)庫具有更高的性價比和性能優(yōu)勢,逐漸成為各大企業(yè)的首選。
2、云原生數(shù)據(jù)庫系統(tǒng)多采用存算分離架構,數(shù)據(jù)的元數(shù)據(jù)信息與計算節(jié)點綁定,為了提高計算層的彈性擴展能力,將計算節(jié)點上存儲的數(shù)據(jù)的元數(shù)據(jù)信息分離出來已成為云廠商的研究熱點。但將元數(shù)據(jù)信息分離出來后,數(shù)據(jù)庫系統(tǒng)如何保證數(shù)據(jù)操作的正確性、對外呈現(xiàn)統(tǒng)一的事務處理能力成為一個難點。
技術實現(xiàn)思路
1、本技術提出了一種事務處理方法,該方法采用單獨的元數(shù)據(jù)集群管理元數(shù)據(jù),實現(xiàn)了元數(shù)據(jù)和計算集群的解耦,使得計算層進行節(jié)點擴縮容時更簡單高效,同時保證了數(shù)據(jù)庫系統(tǒng)對外呈現(xiàn)統(tǒng)一的事務處理能力。本技術還提供了對應的系統(tǒng)、計算設備集群、計算機可讀存儲介質(zhì)以及計算機程序產(chǎn)品。
2、第一方面,本技術提供了一種事務處理方法,應用于數(shù)據(jù)庫系統(tǒng),所述數(shù)據(jù)庫系統(tǒng)包括協(xié)調(diào)節(jié)點、計算集群、元數(shù)據(jù)集群和存儲系統(tǒng),該方法包括:所述協(xié)調(diào)節(jié)點接收處理事務的請求;所述協(xié)調(diào)節(jié)點響應于所述事務中的寫數(shù)據(jù)操作,將所述寫數(shù)據(jù)操作對應的第一數(shù)據(jù)分發(fā)給所述計算集群的至少一個第一計算節(jié)點;所述至少一個第一計算節(jié)點將所述第一數(shù)據(jù)寫入所述存儲系統(tǒng);所述至少一個第一計算節(jié)點將所述第一數(shù)據(jù)的元數(shù)據(jù)存儲至所述元數(shù)據(jù)集群的至少一個第一元數(shù)據(jù)節(jié)點;在響應完所述事務中的所有操作后,所述數(shù)據(jù)庫系統(tǒng)對所述事務進行提交。
3、一種可能的實現(xiàn)方式中,事務處理方法還包括:所述協(xié)調(diào)節(jié)點響應于所述事務中的更新數(shù)據(jù)操作,從所述元數(shù)據(jù)集群獲取所述更新數(shù)據(jù)操作對應的舊數(shù)據(jù)的元數(shù)據(jù);所述協(xié)調(diào)節(jié)點將所述舊數(shù)據(jù)的元數(shù)據(jù)分發(fā)給所述計算集群的至少一個第二計算節(jié)點;所述至少一個第二計算節(jié)點根據(jù)所述舊數(shù)據(jù)的元數(shù)據(jù),從所述至少一個第二計算節(jié)點或所述存儲系統(tǒng)讀取所述舊數(shù)據(jù);所述至少一個第二計算節(jié)點將所述舊數(shù)據(jù)更新為所述更新數(shù)據(jù)操作對應的新數(shù)據(jù),并將所述新數(shù)據(jù)寫入所述存儲系統(tǒng);所述至少一個第二計算節(jié)點將所述新數(shù)據(jù)的元數(shù)據(jù)存儲至所述元數(shù)據(jù)集群的至少一個第二元數(shù)據(jù)節(jié)點。
4、一種可能的實現(xiàn)方式中,事務處理方法還包括:所述協(xié)調(diào)節(jié)點響應于所述事務中的查詢數(shù)據(jù)操作,從所述元數(shù)據(jù)集群獲取所述查詢數(shù)據(jù)操作對應的第二數(shù)據(jù)的元數(shù)據(jù);所述協(xié)調(diào)節(jié)點將所述第二數(shù)據(jù)的元數(shù)據(jù)分發(fā)給所述計算集群的至少一個第三計算節(jié)點;所述至少一個第三計算節(jié)點根據(jù)所述第二數(shù)據(jù)的元數(shù)據(jù),從所述至少一個第三計算節(jié)點或所述存儲系統(tǒng)讀取所述第二數(shù)據(jù)。
5、一種可能的實現(xiàn)方式中,事務處理方法還包括:所述協(xié)調(diào)節(jié)點響應于所述事務中的刪除數(shù)據(jù)操作,從所述元數(shù)據(jù)集群獲取所述刪除數(shù)據(jù)操作對應的第三數(shù)據(jù)的元數(shù)據(jù);所述協(xié)調(diào)節(jié)點將所述第三數(shù)據(jù)的元數(shù)據(jù)分發(fā)給所述計算集群的至少一個第四計算節(jié)點;所述至少一個第四計算節(jié)點根據(jù)所述第三數(shù)據(jù)的元數(shù)據(jù),從所述存儲系統(tǒng)刪除所述第三數(shù)據(jù);所述至少一個第四計算節(jié)點通知所述元數(shù)據(jù)集群刪除所述第三數(shù)據(jù)的元數(shù)據(jù)。
6、本技術提供的事務處理方法中,元數(shù)據(jù)操作和數(shù)據(jù)操作統(tǒng)一在一個事務內(nèi),在計算集群將數(shù)據(jù)寫入存儲系統(tǒng)并將產(chǎn)生的元數(shù)據(jù)存儲至元數(shù)據(jù)集群后提交事務,保證了數(shù)據(jù)的新鮮度和一致性。
7、一種可能的實現(xiàn)方式中,所述數(shù)據(jù)庫系統(tǒng)還包括全局事務管理器,事務處理方法還包括:所述協(xié)調(diào)節(jié)點從所述全局事務管理器獲取時間戳;所述協(xié)調(diào)節(jié)點在響應每個目標操作時,均根據(jù)所述時間戳從所述元數(shù)據(jù)集群獲取與所述目標操作對應的元數(shù)據(jù),其中,所述目標操作為所述事務中的更新數(shù)據(jù)操作或查詢數(shù)據(jù)操作或刪除數(shù)據(jù)操作。
8、一種可能的實現(xiàn)方式中,所述數(shù)據(jù)庫系統(tǒng)還包括全局事務管理器,事務處理方法還包括:所述協(xié)調(diào)節(jié)點在響應每個目標操作時,分別從所述全局事務管理器獲取用于響應所述目標操作的時間戳,其中,所述目標操作為所述事務中的更新數(shù)據(jù)操作或查詢數(shù)據(jù)操作或刪除數(shù)據(jù)操作;所述協(xié)調(diào)節(jié)點根據(jù)所述時間戳,從所述元數(shù)據(jù)集群獲取所述目標操作對應的元數(shù)據(jù)。
9、本技術提供的事務處理方法可同時支持rc和rr兩種事務隔離級別,并且通過協(xié)調(diào)節(jié)點從元數(shù)據(jù)集群獲取元數(shù)據(jù)后分發(fā)給計算節(jié)點,可以進行查詢優(yōu)化和剪枝等操作,減少數(shù)據(jù)的讀取和發(fā)送。
10、一種可能的實現(xiàn)方式中,所述數(shù)據(jù)庫系統(tǒng)對所述事務進行提交,包括:所述協(xié)調(diào)節(jié)點通知參與所述事務的計算節(jié)點提交所述事務;在接收到所述協(xié)調(diào)節(jié)點的通知后,所述參與所述事務的計算節(jié)點通知參與所述事務的元數(shù)據(jù)節(jié)點提交所述事務;在接收到所述參與所述事務的元數(shù)據(jù)節(jié)點返回的提交所述事務成功的消息,并且所述參與所述事務的計算節(jié)點提交所述事務成功后,所述參與所述事務的計算節(jié)點向所述協(xié)調(diào)節(jié)點返回提交所述事務成功的消息;所述協(xié)調(diào)節(jié)點向用戶反饋所述事務提交成功。
11、一種可能的實現(xiàn)方式中,所述數(shù)據(jù)庫系統(tǒng)對所述事務進行提交,包括:所述協(xié)調(diào)節(jié)點通知參與所述事務的計算節(jié)點和參與所述事務的元數(shù)據(jù)節(jié)點提交所述事務;在接收到所述參與所述事務的計算節(jié)點返回的提交所述事務成功的消息,以及接收到所述參與所述事務的元數(shù)據(jù)節(jié)點返回的提交所述事務成功的消息后,所述協(xié)調(diào)節(jié)點向用戶反饋所述事務提交成功。
12、第二方面,本技術提供了一種事務處理系統(tǒng),用于實現(xiàn)上述第一方面或第一方面中任一種可能的實現(xiàn)方式所提供的事務處理方法。
13、該事務處理系統(tǒng)包括協(xié)調(diào)節(jié)點、計算集群、元數(shù)據(jù)集群和存儲系統(tǒng),其中,所述計算集群包括至少一個第一計算節(jié)點;所述元數(shù)據(jù)集群包括至少一個第一元數(shù)據(jù)節(jié)點;所述協(xié)調(diào)節(jié)點,用于接收處理事務的請求;所述協(xié)調(diào)節(jié)點,還用于響應于所述事務中的寫數(shù)據(jù)操作,將所述寫數(shù)據(jù)操作對應的第一數(shù)據(jù)分發(fā)給所述至少一個第一計算節(jié)點;所述至少一個第一計算節(jié)點,用于將所述第一數(shù)據(jù)寫入所述存儲系統(tǒng);所述至少一個第一計算節(jié)點,還用于將所述第一數(shù)據(jù)的元數(shù)據(jù)存儲至所述至少一個第一元數(shù)據(jù)節(jié)點;所述事務處理系統(tǒng),用于在響應完所述事務中的所有操作后,對所述事務進行提交。
14、一種可能的實現(xiàn)方式中,所述計算集群還包括至少一個第二計算節(jié)點;所述元數(shù)據(jù)集群還包括至少一個第二元數(shù)據(jù)節(jié)點;所述協(xié)調(diào)節(jié)點還用于:響應于所述事務中的更新數(shù)據(jù)操作,從所述元數(shù)據(jù)集群獲取所述更新數(shù)據(jù)操作對應的舊數(shù)據(jù)的元數(shù)據(jù);以及,將所述舊數(shù)據(jù)的元數(shù)據(jù)分發(fā)給所述計算集群的至少一個第二計算節(jié)點;所述至少一個第二計算節(jié)點用于:根據(jù)所述舊數(shù)據(jù)的元數(shù)據(jù),從所述至少一個第二計算節(jié)點或所述存儲系統(tǒng)讀取所述舊數(shù)據(jù);將所述舊數(shù)據(jù)更新為所述更新數(shù)據(jù)操作對應的新數(shù)據(jù),并將所述新數(shù)據(jù)寫入所述存儲系統(tǒng);以及,將所述新數(shù)據(jù)的元數(shù)據(jù)存儲至所述至少一個第二元數(shù)據(jù)節(jié)點。
15、一種可能的實現(xiàn)方式中,所述計算集群還包括至少一個第三計算節(jié)點;所述協(xié)調(diào)節(jié)點還用于:響應于所述事務中的查詢數(shù)據(jù)操作,從所述元數(shù)據(jù)集群獲取所述查詢數(shù)據(jù)操作對應的第二數(shù)據(jù)的元數(shù)據(jù);以及,將所述第二數(shù)據(jù)的元數(shù)據(jù)分發(fā)給所述至少一個第三計算節(jié)點;所述至少一個第三計算節(jié)點用于:根據(jù)所述第二數(shù)據(jù)的元數(shù)據(jù),從所述至少一個第三計算節(jié)點或所述存儲系統(tǒng)讀取所述第二數(shù)據(jù)。
16、一種可能的實現(xiàn)方式中,所述計算集群還包括至少一個第四計算節(jié)點;所述協(xié)調(diào)節(jié)點還用于:響應于所述事務中的刪除數(shù)據(jù)操作,從所述元數(shù)據(jù)集群獲取所述刪除數(shù)據(jù)操作對應的第三數(shù)據(jù)的元數(shù)據(jù);以及將所述第三數(shù)據(jù)的元數(shù)據(jù)分發(fā)給所述至少一個第四計算節(jié)點;所述至少一個第四計算節(jié)點用于:根據(jù)所述第三數(shù)據(jù)的元數(shù)據(jù),從所述存儲系統(tǒng)刪除所述第三數(shù)據(jù);以及,通知所述元數(shù)據(jù)集群刪除所述第三數(shù)據(jù)的元數(shù)據(jù)。
17、一種可能的實現(xiàn)方式中,事務處理系統(tǒng)700還包括全局事務管理器,所述協(xié)調(diào)節(jié)點還用于:從所述全局事務管理器獲取時間戳;在響應每個目標操作時,均根據(jù)所述時間戳從所述元數(shù)據(jù)集群獲取與所述目標操作對應的元數(shù)據(jù),其中,所述目標操作為所述事務中的更新數(shù)據(jù)操作或查詢數(shù)據(jù)操作或刪除數(shù)據(jù)操作。
18、一種可能的實現(xiàn)方式中,事務處理系統(tǒng)700還包括全局事務管理器,所述協(xié)調(diào)節(jié)點還用于:在響應每個目標操作時,分別從所述全局事務管理器獲取用于響應所述目標操作的時間戳,其中,所述目標操作為所述事務中的更新數(shù)據(jù)操作或查詢數(shù)據(jù)操作或刪除數(shù)據(jù)操作;根據(jù)所述時間戳,從所述元數(shù)據(jù)集群獲取所述目標操作對應的元數(shù)據(jù)。
19、一種可能的實現(xiàn)方式中,所述事務處理系統(tǒng)用于在響應完所述事務中的所有操作后,對所述事務進行提交,具體包括:所述協(xié)調(diào)節(jié)點,用于通知所述計算集群中參與所述事務的計算節(jié)點提交所述事務;所述參與所述事務的計算節(jié)點用于:在接收到所述協(xié)調(diào)節(jié)點的通知后,通知參與所述事務的元數(shù)據(jù)節(jié)點提交所述事務;以及,在接收到所述參與所述事務的元數(shù)據(jù)節(jié)點返回的提交所述事務成功的消息,并且所述參與所述事務的計算節(jié)點提交所述事務成功后,向所述協(xié)調(diào)節(jié)點返回提交所述事務成功的消息;所述協(xié)調(diào)節(jié)點,還用于向用戶反饋所述事務提交成功。
20、一種可能的實現(xiàn)方式中,所述事務處理系統(tǒng)用于在響應完所述事務中的所有操作后,對所述事務進行提交,具體包括:所述協(xié)調(diào)節(jié)點用于:通知參與所述事務的計算節(jié)點和參與所述事務的元數(shù)據(jù)節(jié)點提交所述事務;以及,在接收到所述參與所述事務的計算節(jié)點返回的提交所述事務成功的消息,并且接收到所述參與所述事務的元數(shù)據(jù)節(jié)點返回的提交所述事務成功的消息后,向用戶反饋所述事務提交成功。
21、第三方面,本技術提供了一種計算設備集群,包括至少一個計算設備,每個計算設備包括處理器和存儲器;該至少一個計算設備的處理器用于執(zhí)行該至少一個計算設備的存儲器中存儲的指令,以使得該計算設備集群執(zhí)行如上述第一方面或第一方面中任一種可能的實現(xiàn)方式所對應的事務處理方法。
22、第四方面,本技術提供了一種包含指令的計算機程序產(chǎn)品,當該指令被計算設備集群運行時,使得該計算設備集群執(zhí)行如上述第一方面或第一方面中任一種可能的實現(xiàn)方式所對應的事務處理方法。
23、第五方面,本技術提供了一種計算機可讀存儲介質(zhì),包括計算機程序指令,當該計算機程序指令由計算設備集群執(zhí)行時,該計算設備集群執(zhí)行如上述第一方面或第一方面中任一種可能的實現(xiàn)方式所對應的事務處理方法。