[發明專利]一種數據重分布方法及裝置在審
| 申請號: | 201410102711.X | 申請日: | 2014-03-19 |
| 公開(公告)號: | CN104932986A | 公開(公告)日: | 2015-09-23 |
| 發明(設計)人: | 杜宇健 | 申請(專利權)人: | 中國移動通信集團公司 |
| 主分類號: | G06F12/06 | 分類號: | G06F12/06 |
| 代理公司: | 北京同達信恒知識產權代理有限公司 11291 | 代理人: | 郭潤湘 |
| 地址: | 100032 *** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 數據 分布 方法 裝置 | ||
技術領域
本發明涉及數據存儲技術領域,尤其涉及一種數據重分布方法及裝置。
背景技術
隨著大數據時代的到來,對于海量數據的存儲處理越來越重要。目前,主流的海量數據存儲技術是采用分布式存儲系統。
分布式存儲系統中有多個存儲節點和一個數據管理節點,數據管理節點也可以和存儲節點合設,通常按照一定的算法將數據塊分散存儲在各個存儲節點上,常用的算法有哈希算法、輪轉算法和隨機算法等,在數據管理節點中存儲所有存儲節點中所有數據塊的數據塊標識及其對應的地址。數據塊在各個存儲節點上分散存儲,可以充分利用各個存儲節點的存儲能力,也避免產生熱點。分布式存儲系統之所以用來存儲海量數據,主要是因為其橫向擴展能力強,可以通過增加存儲節點數量進一步擴展系統的存儲能力和數據處理能力。當分布式存儲系統擴展后,需要對原有的存儲數據進行重分布,以充分利用新增的存儲節點。數據重分布的過程需要按照最新的存儲節點數量,采用一定的算法重新計算,部分數據會被遷移到新增的存儲節點上。
在數據重分布過程中,確定需要遷移的數據塊后,將該數據塊從原始存儲節點復制到目標存儲節點,然后將原始存儲節點中的該數據塊刪除,最后將數據管理節點中存儲的該數據塊的存儲地址更新為該數據塊在目標存儲節點中的存儲地址,則結束數據重分布的過程。在整個數據重分布過程中,如果在將原始存儲節點中的數據塊刪除之后,且還未將數據管理節點中該數據塊的存儲地址更新之前,此時訪問該數據塊,從數據管理節點中獲取的該數據塊的地址仍然是原始存儲節點中的地址,而原始存儲節點中的該數據塊已經刪除,那么必將出現訪問錯誤。
現有技術中,為了防止在數據重分布過程中,數據訪問錯誤的出現,通常會在數據重分布過程中將分布式存儲系統服務設置為不可用,即中斷分布式存儲系統的服務。然而數據重分布的過程,大量數據的遷移需要花費很長時間,這樣,又造成了分布式存儲系統服務的中斷時間較長。
發明內容
本發明實施例提供一種數據重分布方法及裝置,用以解決現有技術中存在的數據重分布過程中分布式存儲系統服務的中斷時間較長的問題。
本發明實施例提供一種數據重分布方法,包括:
確定需要遷移的數據塊當前的存儲地址和目標存儲節點;
在所述目標存儲節點中存儲所述數據塊對應的指針,所述數據塊對應的指針指向所述數據塊當前的存儲地址;
將數據管理節點中所述數據塊當前的存儲地址,更新為所述數據塊對應的指針在所述目標存儲節點中的存儲地址;
當滿足遷移所述數據塊的預設觸發條件時,從所述目標存儲節點中,獲取所述數據塊對應的指針;
將所述指針指向的地址中存儲的數據塊,遷移到所述指針在所述目標存儲節點中的存儲地址。
本發明實施例提供的方法,針對需要遷移的數據塊,在該數據塊的目標存儲節點添加指向該數據塊當前的存儲地址的指針,并將數據管理節點中該數據塊當前的存儲地址更新為該指針在該目標存儲節點中的存儲地址,當滿足預設觸發條件時,將該數據塊進行遷移。該過程中,如果是在數據管理節點更新地址之前,訪問該數據塊,從數據管理節點中獲取到的是該數據塊當前的存儲地址,此時該存儲地址中仍存儲有該數據塊,則從該存儲地址中可以成功訪問該數據塊;如果是在數據管理節點更新地址之后,且未滿足預設觸發條件,該數據塊還未遷移到目標存儲節點中之前,訪問該數據塊,從數據管理節點中獲取到的是該數據塊對應的指針在目標存儲節點中的存儲地址,然后獲取該指針,也可以從該指針指向的地址中訪問到該數據塊;如果是在滿足預設觸發條件,該數據塊已經遷移到目標存儲節點之后,訪問該數據塊,那么從數據管理節點中獲取到目標存儲節點中的存儲地址,即可以訪問到該數據塊。因此,采用本發明實施例提供的方案,在上述幾種情況下訪問數據均不會出現訪問錯誤,無需中斷存儲系統服務,從而避免了存儲系統服務中斷時間較長的問題。
進一步的,當滿足遷移所述數據塊的預設觸發條件時,從所述目標存儲節點中,獲取所述數據塊對應的指針,具體包括:
當到達預設遷移周期時,從所述目標存儲節點中,獲取所述數據塊對應的指針,或者
當接收到遷移指令時,從所述目標存儲節點中,獲取所述數據塊對應的指針,或者
當接收到對所述數據塊的修改指令時,從所述目標存儲節點中,獲取所述數據塊對應的指針。
進一步的,在到達預設遷移周期之后,從所述目標存儲節點中獲取所述數據塊對應的指針之前,還包括:
確定當前系統負載未超過預設負載閾值。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于中國移動通信集團公司,未經中國移動通信集團公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201410102711.X/2.html,轉載請聲明來源鉆瓜專利網。
- 數據顯示系統、數據中繼設備、數據中繼方法、數據系統、接收設備和數據讀取方法
- 數據記錄方法、數據記錄裝置、數據記錄媒體、數據重播方法和數據重播裝置
- 數據發送方法、數據發送系統、數據發送裝置以及數據結構
- 數據顯示系統、數據中繼設備、數據中繼方法及數據系統
- 數據嵌入裝置、數據嵌入方法、數據提取裝置及數據提取方法
- 數據管理裝置、數據編輯裝置、數據閱覽裝置、數據管理方法、數據編輯方法以及數據閱覽方法
- 數據發送和數據接收設備、數據發送和數據接收方法
- 數據發送裝置、數據接收裝置、數據收發系統、數據發送方法、數據接收方法和數據收發方法
- 數據發送方法、數據再現方法、數據發送裝置及數據再現裝置
- 數據發送方法、數據再現方法、數據發送裝置及數據再現裝置





