0115]A4、如A3所述的方法,所述在多臺(tái)機(jī)器上利用各數(shù)據(jù)庫中心的客戶端進(jìn)行所述多份子鍵值對數(shù)據(jù)的修復(fù)的步驟,包括:
[0116]在每臺(tái)機(jī)器上啟動(dòng)進(jìn)程來運(yùn)行所有數(shù)據(jù)中心的客戶端,并利用所有數(shù)據(jù)中心的客戶端進(jìn)行所述每份子鍵值對數(shù)據(jù)的修復(fù)。
[0117]A5、如A2所述的方法,所述利用各數(shù)據(jù)庫中心的客戶端進(jìn)行不一致的檢測結(jié)果的修復(fù)的步驟,包括:
[0118]針對不一致的檢測結(jié)果,獲取其對應(yīng)待修復(fù)鍵及對應(yīng)主數(shù)據(jù)中心的值;
[0119]利用從數(shù)據(jù)中心的客戶端向?qū)?yīng)從數(shù)據(jù)中心發(fā)送命令;其中,所述命令用于指示所述從數(shù)據(jù)中心將所述不一致鍵對應(yīng)的值設(shè)置為所述主數(shù)據(jù)中心的值。
[0120]A6、如A3所述的方法,所述不一致的檢測結(jié)果對應(yīng)鍵值對數(shù)據(jù)存儲(chǔ)于數(shù)據(jù)庫文件中,則所述將所述不一致的檢測結(jié)果對應(yīng)鍵值對數(shù)據(jù)劃分為多份子鍵值對數(shù)據(jù)的步驟具體為,將所述數(shù)據(jù)庫文件分割為多個(gè)子數(shù)據(jù)庫文件,其中,每份子數(shù)據(jù)庫文件中存儲(chǔ)有對應(yīng)的子鍵值對數(shù)據(jù)。
[0121]A7、如Al所述的方法,所述利用分布式計(jì)算框架進(jìn)行所述待同步數(shù)據(jù)中心的鍵值對數(shù)據(jù)的一致性檢測,得到一致或不一致的檢測結(jié)果的步驟,包括:
[0122]在映射階段,利用所述分布式計(jì)算框架的計(jì)算節(jié)點(diǎn)從輸入的所述待同步數(shù)據(jù)中心的鍵值對數(shù)據(jù)中抽取鍵值對,將每個(gè)鍵值對作為參數(shù)傳遞給映射函數(shù),經(jīng)過映射函數(shù)處理后將產(chǎn)生的中間結(jié)果寫入本地磁盤中;以及
[0123]在化簡階段,利用所述分布式計(jì)算框架的計(jì)算節(jié)點(diǎn)根據(jù)所述中間結(jié)果的位置從磁盤中讀取所述中間結(jié)果,對所述中間結(jié)果進(jìn)行排序,并針對排序后中間結(jié)果中每個(gè)唯一的鍵,將其鍵值對傳遞給化簡函數(shù),經(jīng)過化簡函數(shù)處理后產(chǎn)生檢測結(jié)果;其中,所述化簡函數(shù)的處理過程包括:對每個(gè)唯一的鍵對應(yīng)的多個(gè)值進(jìn)行比較,若相同則得到一致的檢測結(jié)果,若不同則得到不一致的檢測結(jié)果。
[0124]B8、一種跨數(shù)據(jù)中心的數(shù)據(jù)同步裝置,包括:
[0125]收集模塊,用于收集待同步數(shù)據(jù)中心的鍵值對數(shù)據(jù);以及
[0126]檢測模塊,用于利用分布式計(jì)算框架進(jìn)行所述待同步數(shù)據(jù)中心的鍵值對數(shù)據(jù)的一致性檢測,得到一致或不一致的檢測結(jié)果。
[0127]B9、如B8所述的裝置,所述裝置還包括:
[0128]修復(fù)模塊,用于利用各數(shù)據(jù)庫中心的客戶端進(jìn)行不一致的檢測結(jié)果對應(yīng)鍵值對數(shù)據(jù)的修復(fù)。
[0129]BlOJn B9所述的裝置,所述修復(fù)模塊,包括:
[0130]劃分子模塊,用于將所述不一致的檢測結(jié)果對應(yīng)鍵值對數(shù)據(jù)劃分為多份子鍵值對數(shù)據(jù);以及
[0131]并行修復(fù)子模塊,用于在多臺(tái)機(jī)器上利用各數(shù)據(jù)庫中心的客戶端進(jìn)行所述多份子鍵值對數(shù)據(jù)的修復(fù);其中,所述機(jī)器的數(shù)量等于所述子鍵值對數(shù)據(jù)的份數(shù)。
[0132]B11、如BlO所述的裝置,所述并行修復(fù)子模塊,具體用于在每臺(tái)機(jī)器上啟動(dòng)進(jìn)程來運(yùn)行所有數(shù)據(jù)中心的客戶端,并利用所有數(shù)據(jù)中心的客戶端進(jìn)行所述每份子鍵值對數(shù)據(jù)的修復(fù)。
[0133]B12、如B9所述的裝置,所述修復(fù)模塊,包括:
[0134]獲取子模塊,用于針對不一致的檢測結(jié)果,獲取其對應(yīng)待修復(fù)鍵及對應(yīng)主數(shù)據(jù)中心的值;以及
[0135]發(fā)送子模塊,用于利用從數(shù)據(jù)中心的客戶端向?qū)?yīng)從數(shù)據(jù)中心發(fā)送命令;其中,所述命令用于指示所述從數(shù)據(jù)中心將所述不一致鍵對應(yīng)的值設(shè)置為所述主數(shù)據(jù)中心的值。
[0136]B13、如BlO所述的裝置,所述不一致的檢測結(jié)果對應(yīng)鍵值對數(shù)據(jù)存儲(chǔ)于數(shù)據(jù)庫文件中,則所述劃分子模塊,具體用于將所述數(shù)據(jù)庫文件分割為多個(gè)子數(shù)據(jù)庫文件,其中,每份子數(shù)據(jù)庫文件中存儲(chǔ)有對應(yīng)的子鍵值對數(shù)據(jù)。
[0137]B14、如BlO所述的裝置,所述檢測模塊,包括:
[0138]映射子模塊,用于在映射階段,所述分布式計(jì)算框架的計(jì)算節(jié)點(diǎn)從輸入的所述待同步數(shù)據(jù)中心的鍵值對數(shù)據(jù)中抽取鍵值對,將每個(gè)鍵值對作為參數(shù)傳遞給映射函數(shù),經(jīng)過映射函數(shù)處理后將產(chǎn)生的中間結(jié)果寫入本地磁盤中;以及
[0139]化簡子模塊,用于在化簡階段,所述分布式計(jì)算框架的計(jì)算節(jié)點(diǎn)根據(jù)所述中間結(jié)果的位置從磁盤中讀取所述中間結(jié)果,對所述中間結(jié)果進(jìn)行排序,并針對排序后中間結(jié)果中每個(gè)唯一的鍵,將其鍵值對傳遞給化簡函數(shù),經(jīng)過化簡函數(shù)處理后產(chǎn)生檢測結(jié)果;其中,所述化簡函數(shù)的處理過程包括:對每個(gè)唯一的鍵對應(yīng)的多個(gè)值進(jìn)行比較,若相同則得到一致的檢測結(jié)果,若不同則得到不一致的檢測結(jié)果。
【主權(quán)項(xiàng)】
1.一種跨數(shù)據(jù)中心的數(shù)據(jù)同步方法,包括: 收集待同步數(shù)據(jù)中心的鍵值對數(shù)據(jù);以及 利用分布式計(jì)算框架進(jìn)行所述待同步數(shù)據(jù)中心的鍵值對數(shù)據(jù)的一致性檢測,得到一致或不一致的檢測結(jié)果。
2.如權(quán)利要求1所述的方法,其特征在于,所述方法還包括: 利用各數(shù)據(jù)庫中心的客戶端進(jìn)行不一致的檢測結(jié)果對應(yīng)鍵值對數(shù)據(jù)的修復(fù)。
3.如權(quán)利要求2所述的方法,其特征在于,所述利用各數(shù)據(jù)庫中心的客戶端進(jìn)行不一致的檢測結(jié)果對應(yīng)鍵值對數(shù)據(jù)的修復(fù)的步驟,包括: 將所述不一致的檢測結(jié)果對應(yīng)鍵值對數(shù)據(jù)劃分為多份子鍵值對數(shù)據(jù); 在多臺(tái)機(jī)器上利用各數(shù)據(jù)庫中心的客戶端進(jìn)行所述多份子鍵值對數(shù)據(jù)的修復(fù);其中,所述機(jī)器的數(shù)量等于所述子鍵值對數(shù)據(jù)的份數(shù)。
4.如權(quán)利要求3所述的方法,其特征在于,所述在多臺(tái)機(jī)器上利用各數(shù)據(jù)庫中心的客戶端進(jìn)行所述多份子鍵值對數(shù)據(jù)的修復(fù)的步驟,包括: 在每臺(tái)機(jī)器上啟動(dòng)進(jìn)程來運(yùn)行所有數(shù)據(jù)中心的客戶端,并利用所有數(shù)據(jù)中心的客戶端進(jìn)行所述每份子鍵值對數(shù)據(jù)的修復(fù)。
5.如權(quán)利要求2所述的方法,其特征在于,所述利用各數(shù)據(jù)庫中心的客戶端進(jìn)行不一致的檢測結(jié)果的修復(fù)的步驟,包括: 針對不一致的檢測結(jié)果,獲取其對應(yīng)待修復(fù)鍵及對應(yīng)主數(shù)據(jù)中心的值; 利用從數(shù)據(jù)中心的客戶端向?qū)?yīng)從數(shù)據(jù)中心發(fā)送命令;其中,所述命令用于指示所述從數(shù)據(jù)中心將所述不一致鍵對應(yīng)的值設(shè)置為所述主數(shù)據(jù)中心的值。
6.如權(quán)利要求3所述的方法,其特征在于,所述不一致的檢測結(jié)果對應(yīng)鍵值對數(shù)據(jù)存儲(chǔ)于數(shù)據(jù)庫文件中,則所述將所述不一致的檢測結(jié)果對應(yīng)鍵值對數(shù)據(jù)劃分為多份子鍵值對數(shù)據(jù)的步驟具體為,將所述數(shù)據(jù)庫文件分割為多個(gè)子數(shù)據(jù)庫文件,其中,每份子數(shù)據(jù)庫文件中存儲(chǔ)有對應(yīng)的子鍵值對數(shù)據(jù)。
7.如權(quán)利要求1所述的方法,其特征在于,所述利用分布式計(jì)算框架進(jìn)行所述待同步數(shù)據(jù)中心的鍵值對數(shù)據(jù)的一致性檢測,得到一致或不一致的檢測結(jié)果的步驟,包括: 在映射階段,利用所述分布式計(jì)算框架的計(jì)算節(jié)點(diǎn)從輸入的所述待同步數(shù)據(jù)中心的鍵值對數(shù)據(jù)中抽取鍵值對,將每個(gè)鍵值對作為參數(shù)傳遞給映射函數(shù),經(jīng)過映射函數(shù)處理后將產(chǎn)生的中間結(jié)果寫入本地磁盤中;以及 在化簡階段,利用所述分布式計(jì)算框架的計(jì)算節(jié)點(diǎn)根據(jù)所述中間結(jié)果的位置從磁盤中讀取所述中間結(jié)果,對所述中間結(jié)果進(jìn)行排序,并針對排序后中間結(jié)果中每個(gè)唯一的鍵,將其鍵值對傳遞給化簡函數(shù),經(jīng)過化簡函數(shù)處理后產(chǎn)生檢測結(jié)果;其中,所述化簡函數(shù)的處理過程包括:對每個(gè)唯一的鍵對應(yīng)的多個(gè)值進(jìn)行比較,若相同則得到一致的檢測結(jié)果,若不同則得到不一致的檢測結(jié)果。
8.一種跨數(shù)據(jù)中心的數(shù)據(jù)同步裝置,包括: 收集模塊,用于收集待同步數(shù)據(jù)中心的鍵值對數(shù)據(jù);以及 檢測模塊,用于利用分布式計(jì)算框架進(jìn)行所述待同步數(shù)據(jù)中心的鍵值對數(shù)據(jù)的一致性檢測,得到一致或不一致的檢測結(jié)果。
9.如權(quán)利要求8所述的裝置,其特征在于,所述裝置還包括: 修復(fù)模塊,用于利用各數(shù)據(jù)庫中心的客戶端進(jìn)行不一致的檢測結(jié)果對應(yīng)鍵值對數(shù)據(jù)的修復(fù)。
10.如權(quán)利要求9所述的裝置,其特征在于,所述修復(fù)模塊,包括: 劃分子模塊,用于將所述不一致的檢測結(jié)果對應(yīng)鍵值對數(shù)據(jù)劃分為多份子鍵值對數(shù)據(jù);以及 并行修復(fù)子模塊,用于在多臺(tái)機(jī)器上利用各數(shù)據(jù)庫中心的客戶端進(jìn)行所述多份子鍵值對數(shù)據(jù)的修復(fù);其中,所述機(jī)器的數(shù)量等于所述子鍵值對數(shù)據(jù)的份數(shù)。
【專利摘要】本發(fā)明實(shí)施例提供了一種跨數(shù)據(jù)中心的數(shù)據(jù)同步方法和裝置,其中的方法具體包括:收集待同步數(shù)據(jù)中心的鍵值對數(shù)據(jù);以及利用分布式計(jì)算框架進(jìn)行所述待同步數(shù)據(jù)中心的鍵值對數(shù)據(jù)的一致性檢測,得到一致或不一致的檢測結(jié)果。本發(fā)明實(shí)施例能夠減少對各數(shù)據(jù)中心的訪問次數(shù),從而能夠減輕對各數(shù)據(jù)中心的線上訪問壓力,并且既能夠提高跨數(shù)據(jù)中心的數(shù)據(jù)同步效率,又能夠避免占用各數(shù)據(jù)中心的計(jì)算資源,從而避免影響到各數(shù)據(jù)中心的性能。
【IPC分類】G06F17-30
【公開號】CN104572921
【申請?zhí)枴緾N201410836037
【發(fā)明人】陳宗志, 王超, 陳營, 李明昊, 宋昭
【申請人】北京奇虎科技有限公司, 奇智軟件(北京)有限公司
【公開日】2015年4月29日
【申請日】2014年12月27日