• / 15
  • 下載費用:30 金幣  

一種數據布局優化方法及系統.pdf

關 鍵 詞:
一種 數據 布局 優化 方法 系統
  專利查詢網所有資源均是用戶自行上傳分享,僅供網友學習交流,未經上傳用戶書面授權,請勿作他用。
摘要
申請專利號:

CN201310732673.1

申請日:

2013.12.26

公開號:

CN103678158A

公開日:

2014.03.26

當前法律狀態:

授權

有效性:

有權

法律詳情: 授權|||實質審查的生效IPC(主分類):G06F 12/06申請日:20131226|||公開
IPC分類號: G06F12/06; G06F12/08 主分類號: G06F12/06
申請人: 中國科學院信息工程研究所
發明人: 周曉陽; 王樹鵬; 張永錚; 吳廣君; 王海平; 李斌斌
地址: 100093 北京市海淀區閔莊路甲89號
優先權:
專利代理機構: 北京輕創知識產權代理有限公司 11212 代理人: 楊立
PDF完整版下載: PDF下載
法律狀態
申請(專利)號:

CN201310732673.1

授權公告號:

||||||

法律狀態公告日:

2016.11.02|||2014.04.23|||2014.03.26

法律狀態類型:

授權|||實質審查的生效|||公開

摘要

本發明涉及一種數據布局優化方法,具體包括以下步驟:步驟1:接收業務系統輸入的連續數據流;步驟2:將數據流劃分為連續無交叉的多個數據塊;步驟3:判斷待處理的數據塊是否達到緩存上限,如果是,進行下一步;否則,跳轉至步驟1;步驟4:計算得到緩存中的所有數據塊的指紋;步驟5:將緩存中數據塊的指紋與指紋列表中的指紋進行匹配,將匹配的數據塊標記為重復數據塊;將不指紋匹配的指紋存入指紋列表中;步驟6:更新數據塊信息表中的數據塊的物理位置信息;步驟7:根據數據塊信息表中的各個數據塊的物理位置信息存儲對應的數據塊。本發明提高了數據的順序性,降低了數據布局的離散化,提高了重復數據刪除系統的順序讀寫性能。

權利要求書

權利要求書
1.  一種數據布局優化方法,其特征在于,具體包括以下步驟:
步驟1:接收業務系統輸入的連續數據流;
步驟2:將數據流劃分為連續無交叉的多個數據塊,并將數據塊保存到緩存中;
步驟3:判斷緩存中的待處理的數據塊是否達到緩存上限,如果是,進行下一步;否則,跳轉至步驟1;
步驟4:計算緩存中的所有數據塊的哈希值,并將每個哈希值作為對應數據塊的指紋;
步驟5:將緩存中數據塊的指紋與指紋列表中的指紋進行匹配,將與指紋列表中的指紋相匹配的指紋所對應的數據塊標記為重復數據塊;將不與指紋列表中的指紋匹配的指紋存入指紋列表中,所述不匹配的指紋對應的數據塊集合在一起構成數據塊信息表,得到更新后的指紋列表和數據塊信息表;
步驟6:根據指紋列表中指紋對應的物理位置信息更新數據塊信息表中的數據塊的物理位置信息;
步驟7:根據數據塊信息表中的各個數據塊的物理位置信息存儲對應的數據塊。

2.  根據權利要求1所述的一種數據布局優化方法,其特征在于,所述步驟5具體包括以下步驟:
步驟5.1:將一個數據塊的指紋與指紋列表中所有的指紋進行匹配,并判斷是否匹配,如果匹配,進行下一步;否則,進行步驟5.3;
步驟5.2:將所述數據塊標記為重復數據塊,跳轉至步驟5.4;
步驟5.3:該數據塊為新數據塊,將新數據塊的指紋記錄到指紋列表中,更新指紋列表;
步驟5.4:判斷緩存中的所有數據塊是否全部完成與指紋列表中的指紋的匹配;如果是,進行步驟6;否則,跳轉至步驟5.1。

3.  根據權利要求2所述的一種數據布局優化方法,其特征在于,所述指紋列表以數據塊的指紋為關鍵字,指紋列表中保存多個數據塊的信息,所述數據塊的信息包括數據塊的指紋、數據塊對應的物理位置信息和具有同一指紋的數據塊的數量值。

4.  根據權利要求3所述的一種數據布局優化方法,其特征在于,所述數據塊信息表中包括數據塊的指紋、與所述數據塊指紋相對應的指紋列表中的數據塊的物理位置信息和數據塊的大小。

5.  根據權利要求1-4任一項所述的一種數據布局優化方法,其特征在于,所述步驟6中更新數據塊信息表中的數據塊的物理位置信息采用數據布局優化策略;
所述數據布局優化策略采用以下第一種、第二種或第三種策略:
第一種策略:統計數據塊信息表中所存在的連續數據塊的個數,判斷連續數據塊的個數是否小于預設值;若都小于,則為每個數據塊重新設置新的物理位置信息,使得所有數據塊據連續存儲;若存在連續數據塊的個數大于等于預設值,則僅存儲新數據塊,并將新數據塊信息添加到數據塊信息表中;
第二種策略:統計數據塊信息表中重復數據塊占總數據量的比例,判斷所述比例是否小于預設的重復數據的比例閾值;若小于,則為每個數據塊重新設置新的物理位置信息,使得所有數據塊據連續存儲;否則,僅存儲新數據塊,并將新數據塊信息添加到數據塊信息表中;
第三種策略:結合第一種和第二種,當連續數據塊的個數大于等于預設值,并且統計的重復數據塊比例大于等于比例閾值時,僅存儲新數據塊,并將新數據塊信息添加到數據塊信息表中;否則,將每個數據塊重新設置新的物理位置信息,使得所有數據塊據連續存儲。

6.  一種數據布局優化系統,其特征在于,包括接收模塊、數據分塊模塊、數據查重模塊、數據布局優化模塊和數據存儲模塊;
所述數據接收模塊接收業務系統輸入的連續數據流;
所述數據分塊模塊將數據流劃分為連續無交叉的多個數據塊,并將數據塊保存到緩存中;
所述數據查重模塊將緩存中達到緩存上限的待處理的數據塊計算哈希值,并將每個哈希值作為對應數據塊的指紋;所述數據查重模塊將緩存中數據塊的指紋與指紋列表中的指紋進行匹配,將與指紋列表中的指紋相匹配的指紋所對應的數據塊標記為重復數據塊;將不與指紋列表中的指紋匹配的指紋存入指紋列表中,所述不匹配的指紋對應的數據塊集合在一起構成數據塊信息表,得到更新后的指紋列表和數據塊信息表;
所述數據布局優化模塊根據指紋列表中指紋對應的物理位置信息更新數據塊信息表中的數據塊的物理位置信息;
所述數據存儲模塊根據數據塊信息表中的各個數據塊的物理位置信息存儲對應的數據塊。

7.  根據權利要求6所述的一種數據布局優化系統,其特征在于,所述數據查重模塊包括匹配模塊、指紋列表更新模塊和判斷模塊;
所述匹配模塊用于將數據塊的指紋與指紋列表中所有的指紋進行匹配,判斷是否匹配;如果匹配,將所述數據塊標記為重復數據塊;否則,該數據塊為新數據塊;
所述指紋列表更新模塊用于將新數據塊的指紋記錄到指紋列表中,更新指紋列表;
所述判斷模塊用于判斷緩存中的所有數據塊是否全部完成與指紋列表中的指紋匹配,如果是,轉向數據布局優化模塊;否則轉向匹配模塊。

8.  根據權利要求7所述的一種數據布局優化系統,其特征在于,所述指 紋列表以數據塊的指紋為關鍵字,指紋列表中保存多個數據塊的信息,所述數據塊的信息包括數據塊的指紋、數據塊對應的物理位置信息和具有同一指紋的數據塊的數量值。

9.  根據權利要求8所述的一種數據布局優化系統,其特征在于,所述數據塊信息表中包括數據塊的指紋、與所述數據塊指紋相對應的指紋列表中的數據塊的物理位置信息和數據塊的大小。

10.  根據權利要求6-9任一項所述的一種數據布局優化系統,其特征在于,所述數據布局優化模塊中更新數據塊信息表中的數據塊的物理位置信息采用數據布局優化策略;
所述數據布局優化策略采用以下第一種、第二種或第三種策略:
第一種策略:統計數據塊信息表中所存在的連續數據塊的個數,判斷連續數據塊的個數是否小于預設值;若都小于,則為每個數據塊重新設置新的物理位置信息,使得所有數據塊據連續存儲;若存在連續數據塊的個數大于等于預設值,則僅存儲新數據塊,并將新數據塊信息添加到數據塊信息表中;
第二種策略:統計數據塊信息表中重復數據塊占總數據量的比例,判斷所述比例是否小于預設的重復數據的比例閾值;若小于,則為每個數據塊重新設置新的物理位置信息,使得所有數據塊據連續存儲;否則,僅存儲新數據塊,并將新數據塊信息添加到數據塊信息表中;
第三種策略:結合第一種和第二種,當連續數據塊的個數大于等于預設值,并且統計的重復數據塊比例大于等于比例閾值時,僅存儲新數據塊,并將新數據塊信息添加到數據塊信息表中;否則,將每個數據塊重新設置新的物理位置信息,使得所有數據塊據連續存儲。

說明書

說明書一種數據布局優化方法及系統
技術領域
本發明涉及一種數據布局優化方法及系統。
背景技術
隨著數據量的爆炸式增長,數據的存儲和管理成本越來越高,由于重復數據刪除技術能夠有效地減少數據量,降低存儲空間需求,因此成為存儲領域的研究熱點。
隨著重復數據刪除技術發展,其逐漸應用主存儲系統中,但由于重復數據刪除技術的特點,其在減少數據存儲量的優點下,也對存儲系統讀取性能帶來了一定的影響。針對重復數據刪除性能優化問題,公開號為102385554A的中國專利申請在2012年3月21日公開了一種重復數據刪除系統的優化方法,采用該方法,能夠根據系統當前各存儲節點的負載和能耗狀態,動態分配存儲空間,平衡各存儲節點的工作負載,提高系統性能。但是,重復數據塊的出現造成連續數據流在磁盤存儲介質分布離散,在系統讀取過程中引發了大量隨機讀操作,嚴重降低了系統順序讀取性能。該專利申請公開的技術方案不能解決由于數據塊分布離散造成的系統讀性能下降問題。
發明內容
本發明所要解決的技術問題是,針對現有技術的不足,提供一種提高重復數據刪除系統的順序讀取速度,提高系統性能的用于重復數據刪除系統的數據布局優化方法。
本發明解決上述技術問題的技術方案如下:一種數據布局優化方法,具 體包括以下步驟:
步驟1:接收業務系統輸入的連續數據流;
步驟2:將數據流劃分為連續無交叉的多個數據塊,并將數據塊保存到緩存中;
步驟3:判斷緩存中的待處理的數據塊是否達到緩存上限,如果是,進行下一步;否則,跳轉至步驟1;
步驟4:計算緩存中的所有數據塊的哈希值,并將每個哈希值作為對應數據塊的指紋;
步驟5:將緩存中數據塊的指紋與指紋列表中的指紋進行匹配,將與指紋列表中的指紋相匹配的指紋所對應的數據塊標記為重復數據塊;將不與指紋列表中的指紋匹配的指紋存入指紋列表中,所述不匹配的指紋對應的數據塊集合在一起構成數據塊信息表,得到更新后的指紋列表和數據塊信息表;
步驟6:根據指紋列表中指紋對應的物理位置信息更新數據塊信息表中的數據塊的物理位置信息;
步驟7:根據數據塊信息表中的各個數據塊的物理位置信息存儲對應的數據塊。
本發明的有益效果是:本發明通過新數據的重復規律和已存儲數據為物理位置信息,計算出數據塊的物理位置,提高了數據的順序性,降低了數據布局的離散化,提高了重復數據刪除系統的順序讀寫性能。本發明不僅適用于多節點的分布式系統,也適用于單節點存儲系統。本發明能夠在單存儲節點內提高系統的讀取性能,提高了系統整體效率,符合目前的應用需求,具有廣闊的應用前景。
在上述技術方案的基礎上,本發明還可以做如下改進。
進一步,所述步驟5具體包括以下步驟:
步驟5.1:將一個數據塊的指紋與指紋列表中所有的指紋進行匹配,并 判斷是否匹配,如果匹配,進行下一步;否則,進行步驟5.3;
步驟5.2:將所述數據塊標記為重復數據塊,跳轉至步驟5.4;
步驟5.3:該數據塊為新數據塊,將新數據塊的指紋記錄到指紋列表中,更新指紋列表;
步驟5.4:判斷緩存中的所有數據塊是否全部完成與指紋列表中的指紋的匹配;如果是,進行步驟6;否則,跳轉至步驟5.1。
進一步,所述指紋列表以數據塊的指紋為關鍵字,指紋列表中保存多個數據塊的信息,所述數據塊的信息包括數據塊的指紋、數據塊對應的物理位置信息和具有同一指紋的數據塊的數量值。
進一步,所述數據塊信息表中包括數據塊的指紋、與所述數據塊指紋相對應的指紋列表中的數據塊的物理位置信息和數據塊的大小。
進一步,所述步驟4中計算數據塊的哈希值采用安全散列算法SHA-1或消息摘要算法MD5。
進一步,所述步驟6中更新數據塊信息表中的數據塊的物理位置信息采用數據布局優化策略;
所述數據布局優化策略采用以下第一種、第二種或第三種策略:
第一種策略:統計數據塊信息表中所存在的連續數據塊的個數,判斷連續數據塊的個數是否小于預設值;若都小于,則為每個數據塊重新設置新的物理位置信息,使得所有數據塊據連續存儲;若存在連續數據塊的個數大于等于預設值,則僅存儲新數據塊,并將新數據塊信息添加到數據塊信息表中;
第二種策略:統計數據塊信息表中重復數據塊占總數據量的比例,判斷所述比例是否小于預設的重復數據的比例閾值;若小于,則為每個數據塊重新設置新的物理位置信息,使得所有數據塊據連續存儲;否則,僅存儲新數據塊,并將新數據塊信息添加到數據塊信息表中;
第三種策略:結合第一種和第二種,當連續數據塊的個數大于等于預設 值,并且統計的重復數據塊比例大于等于比例閾值時,僅存儲新數據塊,并將新數據塊信息添加到數據塊信息表中;否則,將每個數據塊重新設置新的物理位置信息,使得所有數據塊據連續存儲。
本發明所要解決的技術問題是,針對現有技術的不足,提供一種提高重復數據刪除系統的順序讀取速度,提高系統性能的用于重復數據刪除系統的數據布局優化系統。
本發明解決上述技術問題的技術方案如下:一種數據布局優化系統,包括接收模塊、數據分塊模塊、數據查重模塊、數據布局優化模塊和數據存儲模塊;
所述數據接收模塊接收業務系統輸入的連續數據流;
所述數據分塊模塊將數據流劃分為連續無交叉的多個數據塊,并將數據塊保存到緩存中;
所述數據查重模塊將緩存中達到緩存上限的待處理的數據塊計算哈希值,并將每個哈希值作為對應數據塊的指紋;所述數據查重模塊將緩存中數據塊的指紋與指紋列表中的指紋進行匹配,將與指紋列表中的指紋相匹配的指紋所對應的數據塊標記為重復數據塊;將不與指紋列表中的指紋匹配的指紋存入指紋列表中,所述不匹配的指紋對應的數據塊集合在一起構成數據塊信息表,得到更新后的指紋列表和數據塊信息表;
所述數據布局優化模塊根據指紋列表中指紋對應的物理位置信息更新數據塊信息表中的數據塊的物理位置信息;
所述數據存儲模塊根據數據塊信息表中的各個數據塊的物理位置信息存儲對應的數據塊。
本發明的有益效果是:本發明通過新數據的重復規律和已存儲數據為物理位置信息,計算出數據塊的物理位置,提高了數據的順序性,降低了數據布局的離散化,提高了重復數據刪除系統的順序讀寫性能。本發明不僅適用 于多節點的分布式系統,也適用于單節點存儲系統。本發明能夠在單存儲節點內提高系統的讀取性能,提高了系統整體效率,符合目前的應用需求,具有廣闊的應用前景。
在上述技術方案的基礎上,本發明還可以做如下改進。
進一步,所述數據查重模塊包括匹配模塊、指紋列表更新模塊和判斷模塊;
所述匹配模塊用于將數據塊的指紋與指紋列表中所有的指紋進行匹配,判斷是否匹配;如果匹配,將所述數據塊標記為重復數據塊;否則,該數據塊為新數據塊;
所述指紋列表更新模塊用于將新數據塊的指紋記錄到指紋列表中,更新指紋列表;
所述判斷模塊用于判斷緩存中的所有數據塊是否全部完成與指紋列表中的指紋匹配,如果是,轉向數據布局優化模塊;否則轉向匹配模塊。
進一步,所述指紋列表以數據塊的指紋為關鍵字,指紋列表中保存多個數據塊的信息,所述數據塊的信息包括數據塊的指紋、數據塊對應的物理位置信息和具有同一指紋的數據塊的數量值。
進一步,所述數據塊信息表中包括數據塊的指紋、與所述數據塊指紋相對應的指紋列表中的數據塊的物理位置信息和數據塊的大小。
進一步,所述計算數據塊的哈希值采用安全散列算法SHA-1或消息摘要算法MD5。
進一步,所述數據布局優化模塊中更新數據塊信息表中的數據塊的物理位置信息采用數據布局優化策略;
所述數據布局優化策略采用以下第一種、第二種或第三種策略:
第一種策略:統計數據塊信息表中所存在的連續數據塊的個數,判斷連續數據塊的個數是否小于預設值;若都小于,則為每個數據塊重新設置新的 物理位置信息,使得所有數據塊據連續存儲;若存在連續數據塊的個數大于等于預設值,則僅存儲新數據塊,并將新數據塊信息添加到數據塊信息表中;
第二種策略:統計數據塊信息表中重復數據塊占總數據量的比例,判斷所述比例是否小于預設的重復數據的比例閾值;若小于,則為每個數據塊重新設置新的物理位置信息,使得所有數據塊據連續存儲;否則,僅存儲新數據塊,并將新數據塊信息添加到數據塊信息表中;
第三種策略:結合第一種和第二種,當連續數據塊的個數大于等于預設值,并且統計的重復數據塊比例大于等于比例閾值時,僅存儲新數據塊,并將新數據塊信息添加到數據塊信息表中;否則,將每個數據塊重新設置新的物理位置信息,使得所有數據塊據連續存儲。
附圖說明
圖1為本發明具體實施例1所述的一種數據布局優化方法流程圖;
圖2為本發明具體實施例1所述的一種數據布局優化系統結構框圖;
圖3為本發明具體實施例2所述的一種數據布局優化方法流程圖。
附圖中,各標號所代表的部件列表如下:
1、接收模塊,2、數據分塊模塊,3、數據查重模塊,4、數據布局優化模塊,5、數據存儲模塊,31、匹配模塊,32、指紋列表更新模塊,33、判斷模塊。
具體實施方式
以下結合附圖對本發明的原理和特征進行描述,所舉實例只用于解釋本發明,并非用于限定本發明的范圍。
如圖1所示,為本發明具體實施例1所述的一種數據布局優化方法,具 體包括以下步驟:
步驟1:接收業務系統輸入的連續數據流;
步驟2:將數據流劃分為連續無交叉的多個數據塊,并將數據塊保存到緩存中;
步驟3:判斷緩存中的待處理的數據塊是否達到緩存上限,如果是,進行下一步;否則,跳轉至步驟1;
步驟4:計算緩存中的所有數據塊的哈希值,并將每個哈希值作為對應數據塊的指紋;
步驟5:將一個數據塊的指紋與指紋列表中所有的指紋進行匹配,并判斷是否匹配,如果匹配,進行下一步;否則,進行步驟7;
步驟6:將所述數據塊標記為重復數據塊,跳轉至步驟8;
步驟7:該數據塊為新數據塊,將新數據塊的指紋記錄到指紋列表中,更新指紋列表;
步驟8:判斷緩存中的所有數據塊是否全部完成與指紋列表中的指紋的匹配;如果是,進行步驟9;否則,跳轉至步驟5。
步驟9:更新數據塊信息表中的數據塊的物理位置信息;
步驟10:根據數據塊信息表中的各個數據塊的物理位置信息存儲對應的數據塊。
所述指紋列表以數據塊的指紋為關鍵字,指紋列表中保存多個數據塊的信息,所述數據塊的信息包括數據塊的指紋、數據塊對應的物理位置信息和具有同一指紋的數據塊的數量值。
所述數據塊信息表中包括數據塊的指紋、與所述數據塊指紋相對應的指紋列表中的數據塊的物理位置信息和數據塊的大小。
所述步驟4中計算數據塊的哈希值采用安全散列算法SHA-1或消息摘要算法MD5。
所述步驟9中更新數據塊信息表中的數據塊的物理位置信息采用數據布局優化策略;
所述數據布局優化策略采用以下第一種、第二種或第三種策略:
第一種策略:統計數據塊信息表中所存在的連續數據塊的個數,判斷連續數據塊的個數是否小于預設值;若都小于,則為每個數據塊重新設置新的物理位置信息,使得所有數據塊據連續存儲;若存在連續數據塊的個數大于等于預設值,則僅存儲新數據塊,并將新數據塊信息添加到數據塊信息表中;
第二種策略:統計數據塊信息表中重復數據塊占總數據量的比例,判斷所述比例是否小于預設的重復數據的比例閾值;若小于,則為每個數據塊重新設置新的物理位置信息,使得所有數據塊據連續存儲;否則,僅存儲新數據塊,并將新數據塊信息添加到數據塊信息表中;
第三種策略:結合第一種和第二種,當連續數據塊的個數大于等于預設值,并且統計的重復數據塊比例大于等于比例閾值時,僅存儲新數據塊,并將新數據塊信息添加到數據塊信息表中;否則,將每個數據塊重新設置新的物理位置信息,使得所有數據塊據連續存儲。
如圖2所示,為本發明具體實施例1所述的一種數據布局優化系統,包括接收模塊1、數據分塊模塊2、數據查重模塊3、數據布局優化模塊4和數據存儲模塊5;
所述數據接收模塊1接收業務系統輸入的連續數據流;
所述數據分塊模塊2將數據流劃分為連續無交叉的多個數據塊,并將數據塊保存到緩存中;
所述數據查重模塊3將緩存中達到緩存上限的待處理的數據塊計算哈希值,并將每個哈希值作為對應數據塊的指紋;所述數據查重模塊將緩存中數據塊的指紋與指紋列表中的指紋進行匹配,將與指紋列表中的指紋相匹配的指紋所對應的數據塊標記為重復數據塊;將不與指紋列表中的指紋匹配的指 紋存入指紋列表中,所述不匹配的指紋對應的數據塊集合在一起構成數據塊信息表,得到更新后的指紋列表和數據塊信息表;
所述數據布局優化模塊4根據指紋列表中指紋對應的物理位置信息更新數據塊信息表中的數據塊的物理位置信息;
所述數據存儲模塊5根據數據塊信息表中的各個數據塊的物理位置信息存儲對應的數據塊。
所述數據查重模塊3包括匹配模塊31、指紋列表更新模塊32和判斷模塊33;
所述匹配模塊31用于將數據塊的指紋與指紋列表中所有的指紋進行匹配,判斷是否匹配;如果匹配,將所述數據塊標記為重復數據塊;否則,該數據塊為新數據塊;
所述指紋列表更新模塊32用于將新數據塊的指紋記錄到指紋列表中,更新指紋列表;
所述判斷模塊33用于判斷緩存中的所有數據塊是否全部完成與指紋列表中的指紋匹配,如果是,轉向數據布局優化模塊4;否則轉向匹配模塊31。
所述指紋列表以數據塊的指紋為關鍵字,指紋列表中保存多個數據塊的信息,所述數據塊的信息包括數據塊的指紋、數據塊對應的物理位置信息和具有同一指紋的數據塊的數量值。
所述數據塊信息表中包括數據塊的指紋、與所述數據塊指紋相對應的指紋列表中的數據塊的物理位置信息和數據塊的大小。
所述計算數據塊的哈希值采用安全散列算法SHA-1或消息摘要算法MD5。
所述數據布局優化模塊中更新數據塊信息表中的數據塊的物理位置信息采用數據布局優化策略;
所述數據布局優化策略采用以下第一種、第二種或第三種策略:
第一種策略:統計數據塊信息表中所存在的連續數據塊的個數,判斷連續數據塊的個數是否小于預設值;若都小于,則為每個數據塊重新設置新的物理位置信息,使得所有數據塊據連續存儲;若存在連續數據塊的個數大于等于預設值,則僅存儲新數據塊,并將新數據塊信息添加到數據塊信息表中;
第二種策略:統計數據塊信息表中重復數據塊占總數據量的比例,判斷所述比例是否小于預設的重復數據的比例閾值;若小于,則為每個數據塊重新設置新的物理位置信息,使得所有數據塊據連續存儲;否則,僅存儲新數據塊,并將新數據塊信息添加到數據塊信息表中;
第三種策略:結合第一種和第二種,當連續數據塊的個數大于等于預設值,并且統計的重復數據塊比例大于等于比例閾值時,僅存儲新數據塊,并將新數據塊信息添加到數據塊信息表中;否則,將每個數據塊重新設置新的物理位置信息,使得所有數據塊據連續存儲。
為了更易于描述,本發明實施例中定義數據塊連續如下:
對于數據流中兩個連續的數據塊Chunki-1和Chunki,如果滿足條件
PBAi-1+Sizei-1=PBAi
則表示Chunki-1和Chunki物理位置連續,稱之為連續數據塊。PBAi-1表示第i-1個數據塊Chunki-1的物理位置標識,PBAi表示第i個數據塊Chunki的物理位置標識,Sizei-1表示第i-1個數據塊的大小。
本發明中所采用的數據布局優化策略為:
1)根據連續數據塊的數量進行優化:如果數據塊Chunki,Chunki+I,…,Chunki+m為m個連續數據塊列表,將連續數據塊的個數m與預設的值K進行比較,如果m<K,則說明連續數據塊個數過少,所以將數據塊設置為新數據,與數據流后面的Chunki+m+1等數據塊連續存儲,降低數據塊的離散度;一般情況下,K值越大,系統讀性能越高,但會降低重復數據刪除比率,重復數據刪除比率=重復數據刪除處理前數據大小/重復數據刪除處理后數據大小。實 際使用中,由使用者根據數據類型、性能和重復數據刪除比率指定K值。
2)根據重復數據塊的比例進行優化:計算局部數據流內重復數據塊占總數據塊個數的比例x,如果其小于預設值y,說明重復數據塊比例較少,所以將重復的數據塊設置為新數據塊,與其他新數據塊連續存儲,降低數據塊離散度。
另外,數據優化策略也可以結合上面1)和2),根據連續度和重復率兩個因素進行優化。
如圖2,接收模塊1將連續數據流輸入到數據劃分模塊2中,數據劃分模塊2以定長或變長的數據塊劃分方式,將數據流劃分為連續無交叉的數據塊,并將劃分好的數據塊輸入數據查重模塊3。數據查重模塊3通過SHA-1或者MD5計算每個數據塊的指紋,并在數據塊的指紋列表中進行查找,判斷數據塊是否已經存在,如果存在,為該數據塊標記重復信息,設置該數據塊的物理位置信息為指紋列表中相同指紋的數據塊的物理位置信息;如果不存在,該數據塊首次存儲,標記該數據塊的物理位置信息為0,將所有數據在指紋列表搜索完后得到數據塊信息表,將數據塊信息表輸入到數據布局優化模塊4中進行數據布局優化。數據布局優化模塊4根據優化策略確定每個新數據塊的物理位置信息,輸出帶有物理位置信息的數據塊,并輸入到數據存儲模塊5。數據存儲模塊5按照每個數據塊自帶的物理位置信息存儲到對應的存儲介質上。
如圖3所示,為本發明具體實施例2所述的一種數據布局優化方法,具體包括以下步驟。
步驟201:接收業務系統的輸入數據流。
步驟202:使用定長或變長或其他數據塊劃分方法,將數據流劃分為連續無交叉的數據塊;其他數據塊劃分方法例如fingerdiff算法,滑動塊檢測算法等。
步驟203:判斷待處理的數據塊數量是否已達到緩存上限,所述的緩沖上限是指待處理數據塊的數量形成了一個數據塊的最小集合以能放入緩沖中,實際使用中,數據塊的集合大小由使用者指定,一般不超過16MB大小,最大值應小于系統可用內存。如果是,將所有待處理數據塊加入到緩存中,然后執行步驟204,否則,執行步驟201。
步驟204:設緩沖中有n個數據塊,n為正整數,對緩沖中的每個數據塊,使用安全散列算法SHA-1或消息摘要算法MD5算法計算該數據塊的哈希值并將哈希值作為該數據塊的指紋,第i個數據塊的指紋為ChunkFPi,i=1,…,n。
步驟205:對第i(i=1,…,n)個數據塊指紋ChunkFPi,在指紋列表中進行查詢,判斷該指紋是否存在,如果指紋存在,則說明第i個數據塊已經被存儲,為重復數據塊,執行步驟206,否則,說明第i個數據塊為新數據塊,執行步驟207。
指紋列表中每項數據存儲了每個數據塊的指紋信息ChunkFP、物理位置信息PBA和引用計數RefCount,列表的數據項表示為<ChunkFP,PBA,RefCount>。引用計數RefCount用于統計具有同一指紋的數據塊的數量。物理位置信息PBA一般由文件名、文件內偏移量和數據塊長度來表示。
指紋列表初始為空,每當有新的數據塊指紋時,將保存新數據塊的指紋信息到指紋列表中,如果指紋已存在,則將其PBA信息追加到原數據塊信息條目中。
步驟206:在數據塊信息表中記錄第i個數據塊的信息<ChunkFPi,PBAi,Sizei>,其中PBAi為指紋列表中與第i個數據塊具有相同指紋的數據塊的物理位置信息,Sizei表示第i個數據塊的大小。
當數據塊為重復數據塊時,將該數據塊在指紋列表中所查詢到的指紋對應的物理位置信息作為該數據塊的物理位置信息。
步驟207:在數據塊信息表中記錄第i個數據塊的信息<ChunkFPi,PBAi,Sizei>,其中,PBAi設置為0,表示第i個數據塊為新數據,Sizei表示第i個數據塊的大小。
步驟208:當所有數據塊的指紋在指紋列表中查詢完之后,得到數據塊信息表{<ChunkFP1,PBA1,Size1>,…,<ChunkFPi,PBAi,Sizei>,…,<ChunkFPn,PBAn,Sizen>},n表示數據塊的個數,ChunkFPi表示第i個數據塊的指紋,PBAi表示第i個數據塊的物理位置信息,Sizei表示第i個數據塊的大小。
步驟209:本發明實施例中以第2種數據布局優化策略來說明。統計步驟208得到的數據塊信息表中重復數據塊占總數據量n的比例x。當PBAi不等于0時,就表示該數據塊為重復數據塊。
步驟210:判斷x是否小于預設的重復數據比例閾值y,如果是,執行步驟211,否則執行步驟212;實際使用中,y值由使用者指定,一般情況中,y值越高,讀性能越高,但會降低重復數據比率,和數據類型關系也比較大,一般設定y為10%即可。
步驟211:將n個數據塊標記為新數據塊;
步驟214:順序為每個標記為新數據的數據塊分配空間,確定其物理位置;
步驟215:按照物理位置信息存儲所有新數據塊。
以上所述僅為本發明的較佳實施例,并不用以限制本發明,凡在本發明的精神和原則之內,所作的任何修改、等同替換、改進等,均應包含在本發明的保護范圍之內。

關于本文
本文標題:一種數據布局優化方法及系統.pdf
鏈接地址:http://www.pqsozv.live/p-6180624.html
關于我們 - 網站聲明 - 網站地圖 - 資源地圖 - 友情鏈接 - 網站客服 - 聯系我們

[email protected] 2017-2018 zhuanlichaxun.net網站版權所有
經營許可證編號:粵ICP備17046363號-1 
 


收起
展開
钻石光影