本公開涉及數(shù)據(jù)庫,具體而言,涉及一種數(shù)據(jù)庫處理方法、裝置、電子設(shè)備、可讀存儲介質(zhì)及計(jì)算機(jī)程序產(chǎn)品。
背景技術(shù):
1、在高并發(fā)場景下,合理使用數(shù)據(jù)庫緩存可以顯著提升應(yīng)用性能和響應(yīng)速度,同時(shí)減輕數(shù)據(jù)庫服務(wù)器的負(fù)載。對于大多數(shù)應(yīng)用來說,數(shù)據(jù)的一致性要求并不是非常高,而且讀請求和寫請求的壓力通常存在較大差異。讀操作通常占據(jù)大部分請求的比例,而寫操作較少。通過將讀寫請求分發(fā)到不同的存儲有數(shù)據(jù)副本的節(jié)點(diǎn)上,可以實(shí)現(xiàn)負(fù)載均衡,從而提高系統(tǒng)的讀寫性能和容量。
2、在所述背景技術(shù)部分公開的上述信息僅用于加強(qiáng)對本公開的背景的理解,因此它可以包括不構(gòu)成對本領(lǐng)域普通技術(shù)人員已知的現(xiàn)有技術(shù)的信息。
技術(shù)實(shí)現(xiàn)思路
1、本公開的目的在于提供一種數(shù)據(jù)庫處理方法、裝置、電子設(shè)備、可讀存儲介質(zhì)及計(jì)算機(jī)程序產(chǎn)品。
2、本公開的其他特性和優(yōu)點(diǎn)將通過下面的詳細(xì)描述變得顯然,或部分地通過本公開的實(shí)踐而習(xí)得。
3、根據(jù)本公開的一方面,提供一種數(shù)據(jù)庫處理方法,包括:響應(yīng)于執(zhí)行數(shù)據(jù)遷移指令,將待遷移數(shù)據(jù)所在的虛擬槽位在第一節(jié)點(diǎn)中的使用狀態(tài)設(shè)置為遷出中,其中,所述數(shù)據(jù)遷移指令包括將源節(jié)點(diǎn)中存儲的所述待遷移數(shù)據(jù)遷移至目標(biāo)節(jié)點(diǎn)的指令,所述第一節(jié)點(diǎn)為數(shù)據(jù)庫集群中的從節(jié)點(diǎn),所述源節(jié)點(diǎn)和所述目標(biāo)節(jié)點(diǎn)均為所述數(shù)據(jù)庫集群中所述第一節(jié)點(diǎn)的主節(jié)點(diǎn)。
4、根據(jù)本公開的一實(shí)施例,所述第一節(jié)點(diǎn)包括所述待遷移數(shù)據(jù)所在的虛擬槽位對應(yīng)的分片上的所有從節(jié)點(diǎn)。
5、根據(jù)本公開的一實(shí)施例,所述方法還包括:響應(yīng)于執(zhí)行對所述數(shù)據(jù)庫集群進(jìn)行擴(kuò)容的指令,將所述目標(biāo)節(jié)點(diǎn)加入所述數(shù)據(jù)庫集群。
6、根據(jù)本公開的一實(shí)施例,所述方法還包括:將所述數(shù)據(jù)庫集群中多個(gè)分片的遷移目標(biāo)設(shè)置為所述目標(biāo)節(jié)點(diǎn),所述多個(gè)分片包括所述待遷移數(shù)據(jù)所在的虛擬槽位對應(yīng)的分片。
7、根據(jù)本公開的再一方面,提供一種數(shù)據(jù)庫處理方法,應(yīng)用于數(shù)據(jù)庫集群,所述方法包括:響應(yīng)于接收第一數(shù)據(jù)查詢請求,在第一節(jié)點(diǎn)中查詢第一關(guān)鍵字對應(yīng)的數(shù)據(jù),所述第一節(jié)點(diǎn)為所述數(shù)據(jù)庫集群中的從節(jié)點(diǎn),所述數(shù)據(jù)查詢請求包括所述第一關(guān)鍵字;響應(yīng)于在所述第一節(jié)點(diǎn)中未查詢到所述第一關(guān)鍵字對應(yīng)的數(shù)據(jù),獲取所述第一關(guān)鍵字所屬的虛擬槽位在所述第一節(jié)點(diǎn)中的使用狀態(tài);響應(yīng)于確定所述第一關(guān)鍵字所屬的虛擬槽位在所述第一節(jié)點(diǎn)中的使用狀態(tài)為遷出中,返回指示信息,所述指示信息包括目標(biāo)節(jié)點(diǎn)的信息,所述第一關(guān)鍵字所屬的虛擬槽位在所述目標(biāo)節(jié)點(diǎn)中的狀態(tài)為遷入中。
8、根據(jù)本公開的一實(shí)施例,所述方法還包括:響應(yīng)于執(zhí)行數(shù)據(jù)遷移指令,將待遷移數(shù)據(jù)所在的虛擬槽位在所述第一節(jié)點(diǎn)中的使用狀態(tài)設(shè)置為遷出中,其中,所述數(shù)據(jù)遷移指令包括將在源節(jié)點(diǎn)中存儲的所述待遷移數(shù)據(jù)的虛擬槽位及其上存儲的數(shù)據(jù)遷移至所述目標(biāo)節(jié)點(diǎn)的指令,所述待遷移數(shù)據(jù)包括所述第一關(guān)鍵字對應(yīng)的數(shù)據(jù),所述源節(jié)點(diǎn)和所述目標(biāo)節(jié)點(diǎn)均為所述數(shù)據(jù)庫集群中所述第一節(jié)點(diǎn)的主節(jié)點(diǎn)。
9、根據(jù)本公開的一實(shí)施例,所述方法還包括:響應(yīng)于執(zhí)行數(shù)據(jù)遷移指令,將待遷移數(shù)據(jù)所在的虛擬槽位在對應(yīng)的分片上的多個(gè)節(jié)點(diǎn)中的使用狀態(tài)設(shè)置為遷出中,其中,所述數(shù)據(jù)遷移指令包括將在源節(jié)點(diǎn)中存儲的所述待遷移數(shù)據(jù)遷移至所述目標(biāo)節(jié)點(diǎn)的指令,所述待遷移數(shù)據(jù)包括所述第一關(guān)鍵字對應(yīng)的數(shù)據(jù),所述多個(gè)節(jié)點(diǎn)包括所述源節(jié)點(diǎn)和所述第一節(jié)點(diǎn),所述源節(jié)點(diǎn)和所述目標(biāo)節(jié)點(diǎn)均為所述數(shù)據(jù)庫集群中所述第一節(jié)點(diǎn)的主節(jié)點(diǎn)。
10、根據(jù)本公開的一實(shí)施例,所述方法還包括:響應(yīng)于執(zhí)行對所述數(shù)據(jù)庫集群進(jìn)行擴(kuò)容的指令,將所述目標(biāo)節(jié)點(diǎn)加入所述數(shù)據(jù)庫集群。
11、根據(jù)本公開的一實(shí)施例,所述方法還包括:將所述數(shù)據(jù)庫集群中多個(gè)分片的遷移目標(biāo)設(shè)置為所述目標(biāo)節(jié)點(diǎn),所述多個(gè)分片包括所述待遷移數(shù)據(jù)所在的虛擬槽位對應(yīng)的分片。
12、根據(jù)本公開的再一方面,提供一種數(shù)據(jù)庫處理方法,應(yīng)用于數(shù)據(jù)庫集群,所述方法包括:響應(yīng)于確定所述數(shù)據(jù)庫集群中的主節(jié)點(diǎn)故障,獲取所述主節(jié)點(diǎn)的數(shù)據(jù)中心標(biāo)識信息;獲取所述主節(jié)點(diǎn)的多個(gè)從節(jié)點(diǎn)的數(shù)據(jù)中心標(biāo)識信息;根據(jù)所述主節(jié)點(diǎn)及其多個(gè)從節(jié)點(diǎn)的數(shù)據(jù)中心標(biāo)識信息,從所述主節(jié)點(diǎn)的多個(gè)從節(jié)點(diǎn)中選擇與所述主節(jié)點(diǎn)所在數(shù)據(jù)中心相同的從節(jié)點(diǎn)作為所述數(shù)據(jù)庫集群中新的主節(jié)點(diǎn)。
13、根據(jù)本公開的一實(shí)施例,所述方法還包括:響應(yīng)于為所述數(shù)據(jù)庫集群添加節(jié)點(diǎn)的請求,獲得所述節(jié)點(diǎn)的數(shù)據(jù)中心標(biāo)識信息,并將所述數(shù)據(jù)中心標(biāo)識信息關(guān)聯(lián)到所述節(jié)點(diǎn),其中,所述節(jié)點(diǎn)為所述主節(jié)點(diǎn)及其多個(gè)從節(jié)點(diǎn)中的至少一個(gè)節(jié)點(diǎn)。
14、根據(jù)本公開的一實(shí)施例,根據(jù)所述主節(jié)點(diǎn)及其多個(gè)從節(jié)點(diǎn)的數(shù)據(jù)中心標(biāo)識信息,從所述主節(jié)點(diǎn)的多個(gè)從節(jié)點(diǎn)中選擇與所述主節(jié)點(diǎn)所在數(shù)據(jù)中心相同的從節(jié)點(diǎn)作為所述數(shù)據(jù)庫集群中新的主節(jié)點(diǎn),包括:根據(jù)所述主節(jié)點(diǎn)及其多個(gè)從節(jié)點(diǎn)的數(shù)據(jù)中心標(biāo)識信息,從所述主節(jié)點(diǎn)的多個(gè)從節(jié)點(diǎn)中確定多個(gè)候選節(jié)點(diǎn),所述多個(gè)候選節(jié)點(diǎn)均與所述主節(jié)點(diǎn)所在數(shù)據(jù)中心相同;獲取所述多個(gè)候選節(jié)點(diǎn)的優(yōu)先級信息;根據(jù)所述多個(gè)候選節(jié)點(diǎn)的優(yōu)先級信息從所述多個(gè)候選節(jié)點(diǎn)中確定優(yōu)先級最高的候選節(jié)點(diǎn)為所述數(shù)據(jù)庫集群中新的主節(jié)點(diǎn)。
15、根據(jù)本公開的一實(shí)施例,所述方法還包括:響應(yīng)于執(zhí)行主節(jié)點(diǎn)切換指令,獲取目標(biāo)數(shù)據(jù)中心標(biāo)識信息,并將在所述目標(biāo)數(shù)據(jù)中心標(biāo)識信息對應(yīng)的數(shù)據(jù)中心部署的多個(gè)從節(jié)點(diǎn)均設(shè)置為所述數(shù)據(jù)庫集群中新的主節(jié)點(diǎn),其中,所述目標(biāo)數(shù)據(jù)中心標(biāo)識信息對應(yīng)的數(shù)據(jù)中心與所述主節(jié)點(diǎn)的數(shù)據(jù)中心標(biāo)識信息對應(yīng)的數(shù)據(jù)中心不同。
16、根據(jù)本公開的再一方面,提供一種數(shù)據(jù)庫處理方法,應(yīng)用于客戶端,所述客戶端用于訪問如上述任一種數(shù)據(jù)庫處理方法的所述數(shù)據(jù)庫集群,所述數(shù)據(jù)庫集群包括應(yīng)用節(jié)點(diǎn),所述方法包括:響應(yīng)于執(zhí)行第二數(shù)據(jù)查詢指令,從所述第二數(shù)據(jù)查詢指令中獲取待查詢的第二關(guān)鍵字;獲取所述第二關(guān)鍵字所屬的虛擬槽位的信息;根據(jù)所述第二關(guān)鍵字所屬的虛擬槽位的信息獲取所述第二關(guān)鍵字所屬的虛擬槽位對應(yīng)的分片的信息;根據(jù)所述第二關(guān)鍵字所屬的虛擬槽位對應(yīng)的分片的信息,獲取所述第二關(guān)鍵字所屬的虛擬槽位對應(yīng)的分片上的多個(gè)節(jié)點(diǎn)的數(shù)據(jù)中心標(biāo)識信息;獲取所述應(yīng)用節(jié)點(diǎn)的數(shù)據(jù)中心標(biāo)識信息;根據(jù)所述應(yīng)用節(jié)點(diǎn)的數(shù)據(jù)中心標(biāo)識信息和所述多個(gè)節(jié)點(diǎn)的數(shù)據(jù)中心標(biāo)識信息,在所述多個(gè)節(jié)點(diǎn)中與所述應(yīng)用節(jié)點(diǎn)所在數(shù)據(jù)中心相同的至少一個(gè)節(jié)點(diǎn)中查詢所述第二關(guān)鍵字對應(yīng)的數(shù)據(jù)。
17、根據(jù)本公開的一實(shí)施例,根據(jù)所述應(yīng)用節(jié)點(diǎn)的數(shù)據(jù)中心標(biāo)識信息和所述多個(gè)節(jié)點(diǎn)的數(shù)據(jù)中心標(biāo)識信息,在所述多個(gè)節(jié)點(diǎn)中與所述應(yīng)用節(jié)點(diǎn)所在數(shù)據(jù)中心相同的至少一個(gè)節(jié)點(diǎn)中查詢所述第二關(guān)鍵字對應(yīng)的數(shù)據(jù),包括:將所述應(yīng)用節(jié)點(diǎn)的數(shù)據(jù)中心標(biāo)識信息與所述多個(gè)節(jié)點(diǎn)的數(shù)據(jù)中心標(biāo)識信息分別進(jìn)行比較,確定數(shù)據(jù)中心標(biāo)識信息與所述多個(gè)節(jié)點(diǎn)的數(shù)據(jù)中心標(biāo)識信息相同的至少一個(gè)節(jié)點(diǎn)為待查詢節(jié)點(diǎn);在所述待查詢節(jié)點(diǎn)中查詢所述第二關(guān)鍵字對應(yīng)的數(shù)據(jù)。
18、根據(jù)本公開的一實(shí)施例,將所述應(yīng)用節(jié)點(diǎn)的數(shù)據(jù)中心標(biāo)識信息與所述多個(gè)節(jié)點(diǎn)的數(shù)據(jù)中心標(biāo)識信息分別進(jìn)行比較,確定數(shù)據(jù)中心標(biāo)識信息與所述多個(gè)節(jié)點(diǎn)的數(shù)據(jù)中心標(biāo)識信息相同的至少一個(gè)節(jié)點(diǎn)為待查詢節(jié)點(diǎn),包括:將所述應(yīng)用節(jié)點(diǎn)的數(shù)據(jù)中心標(biāo)識信息與所述多個(gè)節(jié)點(diǎn)的數(shù)據(jù)中心標(biāo)識信息分別進(jìn)行比較,確定數(shù)據(jù)中心標(biāo)識信息與所述多個(gè)節(jié)點(diǎn)的數(shù)據(jù)中心標(biāo)識信息相同的多個(gè)節(jié)點(diǎn)為候選待查詢節(jié)點(diǎn);從多個(gè)候選待查詢節(jié)點(diǎn)中選擇至少一個(gè)從節(jié)點(diǎn)為所述待查詢節(jié)點(diǎn)。
19、根據(jù)本公開的再一方面,提供一種數(shù)據(jù)庫處理裝置,包括:設(shè)置模塊,用于響應(yīng)于執(zhí)行數(shù)據(jù)遷移指令,將待遷移數(shù)據(jù)所在的虛擬槽位在第一節(jié)點(diǎn)中的使用狀態(tài)設(shè)置為遷出中,其中,所述數(shù)據(jù)遷移指令包括將源節(jié)點(diǎn)中存儲的所述待遷移數(shù)據(jù)遷移至目標(biāo)節(jié)點(diǎn)的指令,所述第一節(jié)點(diǎn)為數(shù)據(jù)庫集群中的從節(jié)點(diǎn),所述源節(jié)點(diǎn)和所述目標(biāo)節(jié)點(diǎn)均為所述數(shù)據(jù)庫集群中所述第一節(jié)點(diǎn)的主節(jié)點(diǎn)。
20、根據(jù)本公開的再一方面,提供一種數(shù)據(jù)庫處理裝置,應(yīng)用于數(shù)據(jù)庫集群,所述裝置包括:讀取模塊,用于響應(yīng)于接收第一數(shù)據(jù)查詢請求,在第一節(jié)點(diǎn)中查詢第一關(guān)鍵字對應(yīng)的數(shù)據(jù),所述第一節(jié)點(diǎn)為所述數(shù)據(jù)庫集群中的從節(jié)點(diǎn),所述數(shù)據(jù)查詢請求包括所述第一關(guān)鍵字;獲取模塊,用于響應(yīng)于在所述第一節(jié)點(diǎn)中未查詢到所述第一關(guān)鍵字對應(yīng)的數(shù)據(jù),獲取所述第一關(guān)鍵字所屬的虛擬槽位在所述第一節(jié)點(diǎn)中的使用狀態(tài);返回模塊,用于響應(yīng)于確定所述第一關(guān)鍵字所屬的虛擬槽位在所述第一節(jié)點(diǎn)中的使用狀態(tài)為遷出中,返回指示信息,所述指示信息包括目標(biāo)節(jié)點(diǎn)的信息,所述第一關(guān)鍵字所屬的虛擬槽位在所述目標(biāo)節(jié)點(diǎn)中的狀態(tài)為遷入中。
21、根據(jù)本公開的再一方面,提供一種數(shù)據(jù)庫處理裝置,應(yīng)用于數(shù)據(jù)庫集群,所述裝置包括:獲取模塊,用于響應(yīng)于確定所述數(shù)據(jù)庫集群中的主節(jié)點(diǎn)故障,獲取所述主節(jié)點(diǎn)的數(shù)據(jù)中心標(biāo)識信息;所述獲取模塊,還用于獲取所述主節(jié)點(diǎn)的多個(gè)從節(jié)點(diǎn)的數(shù)據(jù)中心標(biāo)識信息;選舉模塊,用于根據(jù)所述主節(jié)點(diǎn)及其多個(gè)從節(jié)點(diǎn)的數(shù)據(jù)中心標(biāo)識信息,從所述主節(jié)點(diǎn)的多個(gè)從節(jié)點(diǎn)中選擇與所述主節(jié)點(diǎn)所在數(shù)據(jù)中心相同的從節(jié)點(diǎn)作為所述數(shù)據(jù)庫集群中新的主節(jié)點(diǎn)。
22、根據(jù)本公開的再一方面,提供一種數(shù)據(jù)庫處理裝置,應(yīng)用于客戶端,所述客戶端用于訪問上述的數(shù)據(jù)庫處理方法中的所述數(shù)據(jù)庫集群,所述數(shù)據(jù)庫集群包括應(yīng)用節(jié)點(diǎn),所述裝置包括:獲取模塊,用于響應(yīng)于執(zhí)行第二數(shù)據(jù)查詢指令,從所述第二數(shù)據(jù)查詢指令中獲取待查詢的第二關(guān)鍵字;獲取所述第二關(guān)鍵字所屬的虛擬槽位的信息;根據(jù)所述第二關(guān)鍵字所屬的虛擬槽位的信息獲取所述第二關(guān)鍵字所屬的虛擬槽位對應(yīng)的分片的信息;根據(jù)所述第二關(guān)鍵字所屬的虛擬槽位對應(yīng)的分片的信息,獲取所述第二關(guān)鍵字所屬的虛擬槽位對應(yīng)的分片上的多個(gè)節(jié)點(diǎn)的數(shù)據(jù)中心標(biāo)識信息;獲取所述應(yīng)用節(jié)點(diǎn)的數(shù)據(jù)中心標(biāo)識信息;查詢模塊,用于根據(jù)所述應(yīng)用節(jié)點(diǎn)的數(shù)據(jù)中心標(biāo)識信息和所述多個(gè)節(jié)點(diǎn)的數(shù)據(jù)中心標(biāo)識信息,在所述多個(gè)節(jié)點(diǎn)中與所述應(yīng)用節(jié)點(diǎn)所在數(shù)據(jù)中心相同的至少一個(gè)節(jié)點(diǎn)中查詢所述第二關(guān)鍵字對應(yīng)的數(shù)據(jù)。
23、根據(jù)本公開的再一方面,提供一種電子設(shè)備,包括:存儲器、處理器及存儲在所述存儲器中并可在所述處理器中運(yùn)行的可執(zhí)行指令,所述處理器執(zhí)行所述可執(zhí)行指令時(shí)實(shí)現(xiàn)如上述任一種方法。
24、根據(jù)本公開的再一方面,提供一種計(jì)算機(jī)可讀存儲介質(zhì),其上存儲有計(jì)算機(jī)可執(zhí)行指令,所述可執(zhí)行指令被處理器執(zhí)行時(shí)實(shí)現(xiàn)如上述任一種方法。
25、本公開實(shí)施例提供了一種計(jì)算機(jī)程序產(chǎn)品或計(jì)算機(jī)程序,該計(jì)算機(jī)程序產(chǎn)品或計(jì)算機(jī)程序包括計(jì)算機(jī)指令,該計(jì)算機(jī)指令存儲在計(jì)算機(jī)可讀存儲介質(zhì)中。計(jì)算機(jī)設(shè)備的處理器從計(jì)算機(jī)可讀存儲介質(zhì)讀取該計(jì)算機(jī)指令,處理器執(zhí)行該計(jì)算機(jī)指令,使得該計(jì)算機(jī)設(shè)備執(zhí)行上述各種可選實(shí)現(xiàn)方式中提供的方法。
26、應(yīng)當(dāng)理解的是,以上的一般描述和后文的細(xì)節(jié)描述僅是示例性的,并不能限制本公開。