System.ArgumentOutOfRangeException: 索引和長度必須引用該字符串內(nèi)的位置。 參數(shù)名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技術(shù)實(shí)現(xiàn)步驟摘要】
本申請(qǐng)涉及互聯(lián)網(wǎng)基礎(chǔ)設(shè)施,尤其涉及一種分布式數(shù)據(jù)庫系統(tǒng)下的熱備方法、裝置和電子設(shè)備。
技術(shù)介紹
1、現(xiàn)有技術(shù)中,在postgresql數(shù)據(jù)庫中存在一種高可用實(shí)現(xiàn),一臺(tái)主數(shù)據(jù)庫(又稱primary?database)提供讀寫服務(wù),通過wal日志記錄,把數(shù)據(jù)變更同步到另外一臺(tái)從庫(又稱mirror?database),然后從庫不斷地應(yīng)用從主庫接收的wal日志記錄,從庫只提供讀服務(wù),不提供寫服務(wù)。從庫接收主庫數(shù)據(jù)的同時(shí)又能提供讀服務(wù),當(dāng)主庫出現(xiàn)故障時(shí),可以切換到從庫,并提供讀寫服務(wù),這種高可用方案叫做hot?standby。
2、這種高可用方案,既能在主數(shù)據(jù)庫出現(xiàn)故障時(shí),快速切換到從庫,保證數(shù)據(jù)庫系統(tǒng)的可用性;同時(shí)從庫還能對(duì)外提供查詢服務(wù),降低主庫的負(fù)載,提高數(shù)據(jù)庫系統(tǒng)的整體利用率。
3、postgresql的hot?standby方案是在單機(jī)數(shù)據(jù)庫上實(shí)現(xiàn)的,對(duì)于基于postgresql構(gòu)建的分布式數(shù)據(jù)庫來說,在分布式環(huán)境下,每個(gè)單機(jī)數(shù)據(jù)庫實(shí)例都有自己的本地事務(wù),主備之間的wal同步進(jìn)度也不一定相同,所以單機(jī)的hot?standby方案無法直接應(yīng)用在分布式數(shù)據(jù)庫上。
4、在mpp分布式數(shù)據(jù)庫中一般有coordinator(協(xié)調(diào)服務(wù))和executor(執(zhí)行服務(wù))兩種角色,為了保證任何一個(gè)角色出現(xiàn)故障時(shí)系統(tǒng)依然可用,都會(huì)有相應(yīng)角色的mirror節(jié)點(diǎn)存在,分布式系統(tǒng)的節(jié)點(diǎn)數(shù)一般都很多,在支持傳統(tǒng)standby方案的分布式數(shù)據(jù)庫中,大量的mirror節(jié)點(diǎn)在數(shù)據(jù)庫系統(tǒng)正常工作時(shí),都處于空閑狀態(tài),存在大量的資
技術(shù)實(shí)現(xiàn)思路
1、有鑒于此,本申請(qǐng)?zhí)岢隽艘环N分布式數(shù)據(jù)庫系統(tǒng)下的熱備方法,以解決上述
技術(shù)介紹
所體現(xiàn)的問題。
2、根據(jù)本申請(qǐng)的一方面,提供了一種分布式數(shù)據(jù)庫系統(tǒng)下的熱備方法,包括:
3、接收待處理寫入事務(wù);
4、將所述待處理寫入事務(wù)的狀態(tài)信息添加至預(yù)設(shè)日志中;
5、判斷所述預(yù)設(shè)日志是否能讀取所述待處理寫入事務(wù);
6、在所述預(yù)設(shè)日志中含有預(yù)設(shè)標(biāo)志記錄時(shí),判定可以讀取所述待處理寫入事務(wù)。
7、作為本申請(qǐng)的一種可選實(shí)施方案,將所述待處理寫入事務(wù)的狀態(tài)信息添加至預(yù)設(shè)日志中,包括:
8、建立第一分布式快照信息;
9、將所述待處理寫入事務(wù)的運(yùn)行記錄添加到所述第一分布式快照信息中,在所述第一分布式快照信息中根據(jù)所述運(yùn)行記錄得到待處理寫入事務(wù)的狀態(tài)信息;
10、將所述待處理寫入事務(wù)的狀態(tài)信息添加至預(yù)設(shè)日志。
11、作為本申請(qǐng)的一種可選實(shí)施方案,判斷所述預(yù)設(shè)日志是否能讀取所述待處理寫入事務(wù),包括:
12、建立第二分布式快照信息;
13、讀取所述預(yù)設(shè)日志中所述待處理寫入事務(wù)的狀態(tài)信息,根據(jù)所述狀態(tài)信息在所述第二分布式快照信息中更新所述待處理寫入事務(wù)的狀態(tài)信息;
14、根據(jù)待處理寫入事務(wù)的狀態(tài)信息判斷是否能讀取所述待處理寫入事務(wù)。
15、作為本申請(qǐng)的一種可選實(shí)施方案,還包括:
16、接收讀取事務(wù)請(qǐng)求;
17、根據(jù)所述讀取事務(wù)請(qǐng)求得到對(duì)應(yīng)數(shù)據(jù)的事務(wù)id;
18、根據(jù)所述事務(wù)id判斷所述讀取事務(wù)請(qǐng)求能否讀取所述對(duì)應(yīng)數(shù)據(jù)。
19、作為本申請(qǐng)的一種可選實(shí)施方案,根據(jù)所述事務(wù)id判斷所述讀取事務(wù)請(qǐng)求能否讀取所述對(duì)應(yīng)數(shù)據(jù),包括:
20、根據(jù)事務(wù)id判斷所述對(duì)應(yīng)數(shù)據(jù)的屬性;
21、在所述對(duì)應(yīng)數(shù)據(jù)的屬性為數(shù)據(jù)可見時(shí),所述讀取事務(wù)請(qǐng)求能讀取所述對(duì)應(yīng)數(shù)據(jù)。
22、作為本申請(qǐng)的一種可選實(shí)施方案,還包括:
23、在所述對(duì)應(yīng)數(shù)據(jù)的屬性為數(shù)據(jù)不可見時(shí),所述讀取事務(wù)請(qǐng)求不能讀取所述對(duì)應(yīng)數(shù)據(jù)。
24、作為本申請(qǐng)的一種可選實(shí)施方案,根據(jù)事務(wù)id判斷所述對(duì)應(yīng)數(shù)據(jù)的屬性,包括:
25、獲取id序列表;
26、獲取所述讀取事務(wù)請(qǐng)求的讀取事務(wù)id;
27、所述事務(wù)id小于所述id序列表中的最小id或所述事務(wù)id等于所述讀取事務(wù)id且所述事務(wù)id位于所述id序列表中時(shí),所述對(duì)應(yīng)數(shù)據(jù)的屬性為數(shù)據(jù)可見。
28、作為本申請(qǐng)的一種可選實(shí)施方案,還包括:
29、所述事務(wù)id大于所述id序列表中的最大id或所述事務(wù)id不等于所述讀取事務(wù)id且所述事務(wù)id位于所述id序列表中時(shí),所述對(duì)應(yīng)數(shù)據(jù)的屬性為數(shù)據(jù)不可見。
30、本申請(qǐng)還提供了一種分布式數(shù)據(jù)庫系統(tǒng)下的熱備裝置,包括以下模塊:
31、接收寫入事務(wù)模塊,用于接收待處理寫入事務(wù);
32、更新狀態(tài)信息模塊,用于將所述待處理寫入事務(wù)的狀態(tài)信息添加至預(yù)設(shè)日志中;
33、判斷模塊,用于判斷所述預(yù)設(shè)日志是否能讀取所述待處理寫入事務(wù);
34、讀取模塊,用于在所述預(yù)設(shè)日志中含有預(yù)設(shè)標(biāo)志記錄時(shí),判定可以讀取所述待處理寫入事務(wù)。
35、本申請(qǐng)還提供了一種電子設(shè)備,包括:
36、處理器;
37、用于存儲(chǔ)處理器可執(zhí)行指令的存儲(chǔ)器;
38、其中,所述處理器被配置為執(zhí)行所述可執(zhí)行指令時(shí)實(shí)現(xiàn)上述所述的分布式數(shù)據(jù)庫系統(tǒng)下的熱備方法。
39、本申請(qǐng)的有益效果:
40、本專利技術(shù)通過接收待處理寫入事務(wù),將所述待處理寫入事務(wù)的狀態(tài)信息添加至預(yù)設(shè)日志中,判斷所述預(yù)設(shè)日志是否能讀取所述待處理寫入事務(wù),在所述預(yù)設(shè)日志中含有預(yù)設(shè)標(biāo)志記錄時(shí),判定可以讀取所述待處理寫入事務(wù)。可以利用大量閑置的mirror節(jié)點(diǎn)基于mvcc的方式提供讀服務(wù),通過負(fù)載均衡,能夠降低primary節(jié)點(diǎn)的負(fù)載,使系統(tǒng)具備更高的穩(wěn)定性和延遲,同時(shí)增加系統(tǒng)的整體吞吐,加速查詢業(yè)務(wù),提高了系統(tǒng)的資源利用率。
41、根據(jù)下面參考附圖對(duì)示例性實(shí)施例的詳細(xì)說明,本申請(qǐng)的其它特征及方面將變得清楚。
本文檔來自技高網(wǎng)...【技術(shù)保護(hù)點(diǎn)】
1.一種分布式數(shù)據(jù)庫系統(tǒng)下的熱備方法,其特征在于,包括:
2.根據(jù)權(quán)利要求1所述的分布式數(shù)據(jù)庫系統(tǒng)下的熱備方法,其特征在于,將所述待處理寫入事務(wù)的狀態(tài)信息添加至預(yù)設(shè)日志中,包括:
3.根據(jù)權(quán)利要求1所述的分布式數(shù)據(jù)庫系統(tǒng)下的熱備方法,其特征在于,判斷所述預(yù)設(shè)日志是否能讀取所述待處理寫入事務(wù),包括:
4.根據(jù)權(quán)利要求1-3任一項(xiàng)所述的分布式數(shù)據(jù)庫系統(tǒng)下的熱備方法,其特征在于,還包括:
5.根據(jù)權(quán)利要求4所述分布式數(shù)據(jù)庫系統(tǒng)下的熱備方法,其特征在于,根據(jù)所述事務(wù)ID判斷所述讀取事務(wù)請(qǐng)求能否讀取所述對(duì)應(yīng)數(shù)據(jù),包括:
6.根據(jù)權(quán)利要求5所述的分布式數(shù)據(jù)庫系統(tǒng)下的熱備方法,其特征在于,還包括:
7.根據(jù)權(quán)利要求5所述的分布式數(shù)據(jù)庫系統(tǒng)下的熱備方法,其特征在于,根據(jù)事務(wù)ID判斷所述對(duì)應(yīng)數(shù)據(jù)的屬性,包括:
8.根據(jù)權(quán)利要求7所述的分布式數(shù)據(jù)庫系統(tǒng)下的熱備方法,其特征在于,還包括:
9.一種分布式數(shù)據(jù)庫系統(tǒng)下的熱備裝置,其特征在于,包括以下模塊:
10.一種電子設(shè)備,其特征在于,包括:
...【技術(shù)特征摘要】
1.一種分布式數(shù)據(jù)庫系統(tǒng)下的熱備方法,其特征在于,包括:
2.根據(jù)權(quán)利要求1所述的分布式數(shù)據(jù)庫系統(tǒng)下的熱備方法,其特征在于,將所述待處理寫入事務(wù)的狀態(tài)信息添加至預(yù)設(shè)日志中,包括:
3.根據(jù)權(quán)利要求1所述的分布式數(shù)據(jù)庫系統(tǒng)下的熱備方法,其特征在于,判斷所述預(yù)設(shè)日志是否能讀取所述待處理寫入事務(wù),包括:
4.根據(jù)權(quán)利要求1-3任一項(xiàng)所述的分布式數(shù)據(jù)庫系統(tǒng)下的熱備方法,其特征在于,還包括:
5.根據(jù)權(quán)利要求4所述分布式數(shù)據(jù)庫系統(tǒng)下的熱備方法,其特征在于...
【專利技術(shù)屬性】
技術(shù)研發(fā)人員:龔勛,
申請(qǐng)(專利權(quán))人:北京酷克數(shù)據(jù)科技有限公司,
類型:發(fā)明
國別省市:
還沒有人留言評(píng)論。發(fā)表了對(duì)其他瀏覽者有用的留言會(huì)獲得科技券。