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