數據處理方法和裝置的制造方法
【技術領域】
[0001]本發明實施例涉及計算機技術,尤其涉及一種數據處理方法和裝置。
【背景技術】
[0002]分布式數據庫是指利用高速計算機網絡將物理上分散的多個數據存儲單元連接起來組成一個邏輯上統一的數據庫。分布式數據庫的基本思想是將原來集中式數據庫中的數據分散存儲到多個通過網絡連接的數據存儲結點上,以獲取更大的存儲容量和更高的并發訪問量。近年來,隨著數據量的高速增長,分布式數據庫技術也得到了快速的發展。
[0003]在分布式數據庫下通常具有以下三種業務應用場景,(1)數據需要以一定的分布策略分布在多個數據結點中,系統彈性可伸縮下,數據按照一定的集合方式迀移到的其它結點;(2)多副本冗余,為了提高數據庫系統的可靠性,會對數據進行備份,在備份過程中,利用一定的同步策略將新副本同步到相應結點;(3)在數據庫客戶端應用部署本地快速緩沖貯存區,需要分布式數據庫具有訂閱推送能力,即數據庫服務器可以根據數據特征將數據推送到應用結點中。這些應用場景都需要將滿足一定條件的業務數據同步到其它結點,該結點可以是分布式系統內部的數據結點,如數據庫服務器(DB Server),也可以是數據的使用者,如數據庫客戶端(DB Client) ο
[0004]然而,由于存儲引擎中的數據與數據的分布策略相互獨立,使得在需要將滿足一定條件(分區或訂閱關系)的業務數據同步到其他結點時,需要掃描存儲引擎中的所有業務數據,這樣會導致處理效率低,尤其是在存儲引擎中數量特別大的情況下,數據結點將滿足一定條件的業務數據同步到其他結點所需時間開銷較大。
【發明內容】
[0005]本發明實施例提供一種數據處理方法和裝置,以實現在需要將滿足一定條件業務數據同步到其他結點時,有效降低所需時間開銷。
[0006]第一方面,本發明實施例提供一種數據處理裝置,所述數據處理裝置應用于分布式數據庫系統中的數據節點中,包括:第一哈希模塊、至少一個第二哈希模塊和塊數據掃描器模塊;
[0007]所述第一哈希模塊包括多個槽位,各槽位用于與各數據分區一一對應或者與各數據集合對應;
[0008]至少一個第二哈希模塊中的每一個第二哈希模塊與所述第一哈希模塊中的一個槽位相關聯,所述第二哈希模塊用于存放相關聯槽位對應的數據分區的業務數據在存儲引擎中的位置信息,或者訂閱關系的數據集合中的業務數據在存儲引擎中的位置信息;
[0009]所述塊數據掃描器模塊用于根據所述第一哈希模塊的槽位在與所述槽位對應的第二哈希模塊中進行掃描,獲取業務數據在存儲引擎中的位置信息,并根據所述位置信息在所述存儲引擎中提取業務數據。
[0010]結合第一方面,在第一方面的第一種可能的實現方式中,在數據節點啟動時,所述第一哈希模塊還用于根據分布策略或訂閱關系對第一哈希模塊的槽位,和所述槽位與所述第二哈希模塊的關聯關系進行初始化操作。
[0011]結合第一方面的第一種可能的實現方式,在第一方面的第二種可能的實現方式中,所述分布策略包括所述節點的至少一個分區標識和業務數據的特征值與分區標識的映射函數;
[0012]所述第一哈希模塊還用于根據分布策略對第一哈希模塊的槽位,和所述槽位與所述第二哈希模塊的關聯關系進行初始化操作具體包括:
[0013]所述第一哈希模塊還用于將各分區標識與所述第一哈希模塊的各槽位一一對應,根據業務數據的特征值和所述業務數據的特征值與分區標識的映射函數獲取所述業務數據對應的分區標識,將所述業務數據在存儲引擎中的位置信息存放在與所述分區標識對應的槽位相關聯的第二哈希模塊中。
[0014]結合第一方面的第二種可能的實現方式,在第一方面的第三種可能的實現方式中,若需要在所述數據節點中存儲新增業務數據,將所述新增業務數據存放在所述數據節點的存儲引擎中,所述第一哈希模塊還用于根據所述新增業務數據的特征值和所述映射函數,計算所述新增業務數據對應的分區標識,將所述新增業務數據在存儲引擎中的位置信息存放在與所述新增業務數據對應的分區標識相關聯的第二哈希模塊中。
[0015]結合第一方面的第二種可能的實現方式,在第一方面的第四種可能的實現方式中,若需要刪除所述數據節點中的一業務數據,將存儲引擎中的業務數據刪除,所述第一哈希模塊還用于根據業務數據的特征值和所述映射函數,計算業務數據對應的分區標識,將與業務數據對應的分區標識相關聯的第二哈希模塊中的業務數據在存儲引擎中的位置信息刪除。
[0016]結合第一方面的第一種可能的實現方式,在第一方面的第五種可能的實現方式中,在數據節點啟動時,所述訂閱關系包括至少一個滿足預設條件的數據集合信息;
[0017]所述第一哈希模塊還用于根據訂閱關系對第一哈希模塊的槽位,和所述槽位與所述第二哈希模塊的關聯關系進行初始化操作,具體包括:
[0018]所述第一哈希模塊還用于將各滿足預設條件的數據集合信息與所述第一哈希模塊的槽位一一對應,將滿足預設條件的業務數據的位置信息存放在與滿足預設條件的數據集合信息相關聯的第二哈希模塊中。
[0019]結合第一方面的第五種可能的實現方式,在第一方面的第六種可能的實現方式中,若需要在所述數據節點中存儲新增業務數據,將所述新增業務數據存放在所述數據節點的存儲引擎中,所述第一哈希模塊還用于根據所述新增業務數據的特征值獲取所述新增業務數據所屬的滿足預設條件的數據集合信息,將所述新增業務數據在存儲引擎中的位置信息存放在與所述滿足預設條件的數據集合信息相關聯的第二哈希模塊中。
[0020]結合第一方面的第五種可能的實現方式,在第一方面的第七種可能的實現方式中,若需要刪除所述數據節點中的一業務數據,將存儲引擎中的業務數據刪除,所述第一哈希模塊還用于根據業務數據的特征值獲取業務數據所屬的滿足預設條件的數據集合信息,將與業務數據所屬的滿足預設條件的數據集合信息相關聯的第二哈希模塊中的業務數據在存儲引擎中的位置信息刪除。
[0021]第二方面,本發明實施例提供一種利用第一方面、第一方面的第一種至第七種任一種可能的實現方式的數據處理裝置實現數據處理的方法,包括:
[0022]目的數據節點的數據處理裝置獲取待處理數據分區,將第一哈希模塊的一槽位與所述待處理數據分區對應;
[0023]所述目的數據節點的數據處理裝置創建一新的第二哈希模塊,將所述新的第二哈希模塊與所述第一哈希模塊的所述槽位關聯;
[0024]所述目的數據節點的數據處理裝置接收源數據節點發送的所述待處理數據分區中的業務數據;
[0025]所述目的數據節點的數據處理裝置將所述待處理數據分區中的業務數據存儲在所述目的數據節點的存儲引擎中,并將所述待處理數據分區中的業務數據在存儲引擎中的位置信息存儲在所述新的第二哈希模塊中;
[0026]其中,所述待處理數據分區包括待迀移數據分區和待備份數據分區。
[0027]第三方面,本發明實施例提供一種利用第一方面、第一方面的第一種至第七種任一種可能的實現方式的數據處理裝置實現數據處理的方法,包括:
[0028]源數據節點的數據處理裝置獲取待處理數據分區,根據所述待處理分區獲取第一哈希模塊中與所述待處理分區對應的槽位;
[0029]所述源數據節點的數據處理裝置利用塊數據掃描器模塊獲取與所述待處理數據分區對應的槽位相關聯的第二哈希模塊中的各位置信息,并從存儲引擎中提取各位置信息對應的業務數據;
[0030]所述源數據節點的數據處理裝置將所述業務數據發送給目的數