国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種重復(fù)數(shù)據(jù)刪除方法及裝置與流程

      文檔序號:11063313閱讀:430來源:國知局
      一種重復(fù)數(shù)據(jù)刪除方法及裝置與制造工藝

      本發(fā)明涉及數(shù)據(jù)處理技術(shù)領(lǐng)域,尤其涉及一種重復(fù)數(shù)據(jù)刪除方法及裝置。



      背景技術(shù):

      隨著計算機的發(fā)展,移動智能終端已經(jīng)深切的改變了人們的生活。近幾年來,移動智能終端的計算能力與存儲能力得到了飛速發(fā)展。

      目前移動智能終端的存儲系統(tǒng),具體以下特點:

      第一,存儲系統(tǒng)中存在數(shù)據(jù)重復(fù),例如應(yīng)用的安裝以及更新產(chǎn)生的重復(fù)數(shù)據(jù)的冗余度大概在45%左右。

      第二,智能終端采用閃存(flash)的永久性存儲介質(zhì),寫操作的性能較差,并且擦除操作次數(shù)有限。

      由于存儲系統(tǒng)的重復(fù)數(shù)據(jù)的存在,對系統(tǒng)的可靠性造成很大影響,因此迫切需要對存儲系統(tǒng)中的重復(fù)數(shù)據(jù)進(jìn)行管理。

      重復(fù)數(shù)據(jù)刪除技術(shù),簡稱去重操作,是目前主流的一種存儲技術(shù)。在現(xiàn)有技術(shù)中的重刪技術(shù)中,通過內(nèi)存中建立一個巨大的塊數(shù)據(jù)索引表來維持分塊數(shù)據(jù)的索引。在進(jìn)行重復(fù)數(shù)據(jù)刪除時,將數(shù)據(jù)對象進(jìn)行分塊處理,并計算分塊處理結(jié)果中各分塊的指紋,將各分塊的指紋存儲在數(shù)據(jù)塊指紋值索引表(即指紋庫)中,后續(xù)在存儲數(shù)據(jù)時先查詢該塊數(shù)據(jù)指紋值索引表,若查詢到與待存儲數(shù)據(jù)的指紋值相同的分塊指紋,則不存儲待存儲數(shù)據(jù),只存儲在數(shù)據(jù)塊索引表中沒有查詢到相同指紋的新塊,從而避免存儲內(nèi)容重復(fù)的塊,也就是相當(dāng)于實現(xiàn)了內(nèi)容重復(fù)的數(shù)據(jù)塊的刪除。

      目前重復(fù)數(shù)據(jù)刪除技術(shù)主要應(yīng)用于計算機等設(shè)備的主存儲系統(tǒng)以及備份存儲系統(tǒng),該類設(shè)備的存儲系統(tǒng)中后端存儲一般采用磁盤(英文:Hard Disk Draver,簡稱:HDD),而移動智能終端的后端存儲一般采用閃存(flash),因此該類設(shè)備相比智能終端的存儲系統(tǒng)來說,計算資源以及主存儲資源較充足。另外,flash存儲介質(zhì)的擦除次數(shù)是有限的,若重復(fù)數(shù)據(jù)較多的話會造成大量的寫操作,降低flash的使用壽命,會影響移動智能終端的系統(tǒng)可靠性。由于現(xiàn)有技術(shù)提供的重復(fù)數(shù)據(jù)指紋查詢操作對計算資源以及存儲資源要求較高,因此將現(xiàn)有重復(fù)數(shù)據(jù)刪除技術(shù)應(yīng)用到智能終端,嚴(yán)重影響移動智能終端的系統(tǒng)可靠性。



      技術(shù)實現(xiàn)要素:

      本發(fā)明提供一種重復(fù)數(shù)據(jù)刪除方法及裝置,提高了移動智能終端的系統(tǒng)可靠性。

      第一方面,本發(fā)明實施例提供了一種重復(fù)數(shù)據(jù)刪除方法,該方法包括:

      將待處理文件進(jìn)行劃分?jǐn)?shù)據(jù)塊處理,并計算劃分得到的各數(shù)據(jù)塊的數(shù)據(jù)指紋;

      針對每個數(shù)據(jù)塊分別執(zhí)行:

      將當(dāng)前數(shù)據(jù)塊的數(shù)據(jù)指紋與熱點哈希表中的數(shù)據(jù)指紋進(jìn)行匹配,若匹配一致,則確定所述當(dāng)前數(shù)據(jù)塊為重復(fù)數(shù)據(jù);若匹配不一致,將所述當(dāng)前數(shù)據(jù)塊的數(shù)據(jù)指紋與哈希指紋表中的數(shù)據(jù)指紋進(jìn)行匹配且匹配一致時,確定所述當(dāng)前數(shù)據(jù)塊為重復(fù)數(shù)據(jù);其中,所述熱點哈希表中各個哈希表項的數(shù)據(jù)指紋為在至少一個文件中重復(fù)出現(xiàn)次數(shù)達(dá)到設(shè)定門限值的數(shù)據(jù)指紋,所述哈希指紋表的數(shù)據(jù)指紋為已存儲的各數(shù)據(jù)塊的數(shù)據(jù)指紋。

      本發(fā)明實施例中熱點哈希表區(qū)別于一般的哈希表,并非存儲唯一數(shù)據(jù)塊的數(shù)據(jù)指紋,而是僅存儲重復(fù)次數(shù)高的數(shù)據(jù)指紋,其數(shù)據(jù)量規(guī)模較小,數(shù)據(jù)指紋與熱點哈希表中匹配的數(shù)據(jù)量較小,因此減少了指紋查找開銷,可減小對內(nèi)存的占用。另在,通過熱點哈希表以及哈希指紋表能夠在存儲過程中降低文件數(shù)據(jù)塊的重復(fù)率,減少了基于flash的存儲介質(zhì)的寫操作,減少擦除次數(shù),延長 了flash的使用壽命,并增加了系統(tǒng)的可靠性。

      結(jié)合第一方面,在第一方面的第一種可能的實現(xiàn)方式中,所述哈希指紋表存儲在隨機訪問存儲器RAM中,所述熱點哈希表存儲在相變存儲器PCM中。

      通過基于RAM+PCM的指紋緩存結(jié)構(gòu)和基于數(shù)據(jù)塊重復(fù)出現(xiàn)次數(shù)的指紋緩存方案,可以有效地減輕指紋的內(nèi)存需求和對應(yīng)用性能的影響,由于通過維護(hù)熱點哈希表,將把絕大多數(shù)的哈希查找操作定向到RAM中,因而降低了在主存儲器中的哈希查找操作,與將全部指紋放在RAM中相比,減輕了內(nèi)存需求,同時又無需將每次的哈希查找都實施于性能較差的Flash上。另外移動智能終端存儲系統(tǒng)的重復(fù)數(shù)據(jù)刪除比例在15%以上,延長閃存的使用壽命30%左右,同時提高存儲子系統(tǒng)的性能20%以上。

      結(jié)合第一方面或第一方面的第一種可能的實現(xiàn)方式,該方法還包括:

      將所述當(dāng)前數(shù)據(jù)塊的數(shù)據(jù)指紋與熱點哈希表中的數(shù)據(jù)指紋進(jìn)行匹配且匹配一致時,更新所述熱點哈希表中與所述當(dāng)前數(shù)據(jù)塊的數(shù)據(jù)指紋匹配的數(shù)據(jù)指紋的重復(fù)出現(xiàn)次數(shù)。從而能夠?qū)γ總€數(shù)據(jù)指紋的重復(fù)出現(xiàn)次數(shù)實時更新,提高了匹配的準(zhǔn)確性。

      具體的,所述熱點哈希表中各個哈希表項依據(jù)哈希表項的數(shù)據(jù)指紋的重復(fù)出現(xiàn)次數(shù)在所述熱點哈希表中順序存儲;所述方法還包括:

      在更新所述熱點哈希表中與所述當(dāng)前數(shù)據(jù)塊的數(shù)據(jù)指紋匹配的數(shù)據(jù)指紋的重復(fù)出現(xiàn)次數(shù)后,調(diào)整所述所述熱點哈希表中與所述當(dāng)前數(shù)據(jù)塊的數(shù)據(jù)指紋匹配的數(shù)據(jù)指紋在所述熱點哈希表中的存儲位置。從而能夠存儲熱點哈希指紋表的存儲空間滿的時候,能夠直接的尾項的哈希指紋即可,不需要再去對哈希指紋的重復(fù)出現(xiàn)次數(shù)進(jìn)行排序,節(jié)省了操作步驟,從而節(jié)省了操作時間。

      可選地,所述方法還包括:

      將所述當(dāng)前數(shù)據(jù)塊的數(shù)據(jù)指紋與哈希指紋表中的數(shù)據(jù)指紋進(jìn)行匹配且匹配一致時,更新所述哈希指紋表中與所述當(dāng)前數(shù)據(jù)塊的數(shù)據(jù)指紋匹配的數(shù)據(jù)指紋的重復(fù)出現(xiàn)次數(shù);

      在所述哈希指紋表中與所述當(dāng)前數(shù)據(jù)塊的數(shù)據(jù)指紋匹配的數(shù)據(jù)指紋的重復(fù)出現(xiàn)次數(shù)達(dá)到設(shè)定門限值時,將所述哈希指紋表中與所述當(dāng)前數(shù)據(jù)塊的數(shù)據(jù)指紋匹配的數(shù)據(jù)指紋保存在所述熱點哈希表中。

      可選地,在將所述哈希指紋表中與所述當(dāng)前數(shù)據(jù)塊的數(shù)據(jù)指紋匹配的數(shù)據(jù)指紋保存在所述熱點哈希表中之前,還包括:

      確定存儲所述熱點哈希表的存儲器的存儲空間空閑。

      具體的,將所述哈希指紋表中與所述當(dāng)前數(shù)據(jù)塊的數(shù)據(jù)指紋匹配的數(shù)據(jù)指紋保存在所述熱點哈希表中,可以通過如下方式實現(xiàn):

      確定存儲所述熱點哈希表的存儲器的存儲空間已滿,查找所述熱點哈希表中待淘汰的哈希指紋,將所述哈希指紋表中與所述當(dāng)前數(shù)據(jù)塊的數(shù)據(jù)指紋匹配的數(shù)據(jù)指紋,替換所述待淘汰的哈希指紋保存在所述熱點哈希表中。

      第二方面,本發(fā)明實施例提供了一種重復(fù)數(shù)據(jù)刪除裝置,包括:

      存儲單元,用于存儲熱點哈希表和哈希指紋表;

      處理單元,用于將待處理文件進(jìn)行劃分?jǐn)?shù)據(jù)塊處理,并計算劃分得到的各數(shù)據(jù)塊的數(shù)據(jù)指紋;針對每個數(shù)據(jù)塊分別執(zhí)行:將當(dāng)前數(shù)據(jù)塊的數(shù)據(jù)指紋與熱點哈希表中的數(shù)據(jù)指紋進(jìn)行匹配,若匹配一致,則確定所述當(dāng)前數(shù)據(jù)塊為重復(fù)數(shù)據(jù);若匹配不一致,將所述當(dāng)前數(shù)據(jù)塊的數(shù)據(jù)指紋與哈希指紋表中的數(shù)據(jù)指紋進(jìn)行匹配且匹配一致時,確定所述當(dāng)前數(shù)據(jù)塊為重復(fù)數(shù)據(jù);其中,所述熱點哈希表中各個哈希表項的數(shù)據(jù)指紋為在至少一個文件中重復(fù)出現(xiàn)次數(shù)達(dá)到設(shè)定門限值的數(shù)據(jù)指紋,所述哈希指紋表的數(shù)據(jù)指紋為已存儲的各數(shù)據(jù)塊的數(shù)據(jù)指紋。

      可選地,所述存儲單元包括:第一存儲子單元和第二存儲子單元;

      所述哈希指紋表存儲在所述第一存儲子單元中,所述熱點哈希表存儲在所述第二存儲子單元中。

      其中,所述第一存儲子單元可以為隨機訪問存儲器RAM,所述第二存儲子單元可以為相變存儲器PCM。

      可選地,所述處理單元,還用于將所述當(dāng)前數(shù)據(jù)塊的數(shù)據(jù)指紋與熱點哈希表中的數(shù)據(jù)指紋進(jìn)行匹配且匹配一致時,更新所述熱點哈希表中與所述當(dāng)前數(shù)據(jù)塊的數(shù)據(jù)指紋匹配的數(shù)據(jù)指紋的重復(fù)出現(xiàn)次數(shù)。

      可選地,所述熱點哈希表中各個哈希表項依據(jù)哈希表項的數(shù)據(jù)指紋的重復(fù)出現(xiàn)次數(shù)在所述熱點哈希表中順序存儲;所述處理單元,還用于在更新所述熱點哈希表中與所述當(dāng)前數(shù)據(jù)塊的數(shù)據(jù)指紋匹配的數(shù)據(jù)指紋的重復(fù)出現(xiàn)次數(shù)后,調(diào)整所述所述熱點哈希表中與所述當(dāng)前數(shù)據(jù)塊的數(shù)據(jù)指紋匹配的數(shù)據(jù)指紋在所述熱點哈希表中的存儲位置。

      可選地,所述處理單元,還用于將所述當(dāng)前數(shù)據(jù)塊的數(shù)據(jù)指紋與哈希指紋表中的數(shù)據(jù)指紋進(jìn)行匹配且匹配一致時,更新所述哈希指紋表中與所述當(dāng)前數(shù)據(jù)塊的數(shù)據(jù)指紋匹配的數(shù)據(jù)指紋的重復(fù)出現(xiàn)次數(shù);

      在所述哈希指紋表中與所述當(dāng)前數(shù)據(jù)塊的數(shù)據(jù)指紋匹配的數(shù)據(jù)指紋的重復(fù)出現(xiàn)次數(shù)達(dá)到設(shè)定門限值時,將所述哈希指紋表中與所述當(dāng)前數(shù)據(jù)塊的數(shù)據(jù)指紋匹配的數(shù)據(jù)指紋保存在所述熱點哈希表中。

      可選地,所述處理單元,在將所述哈希指紋表中與所述當(dāng)前數(shù)據(jù)塊的數(shù)據(jù)指紋匹配的數(shù)據(jù)指紋保存在所述熱點哈希表中之前,還用于確定存儲所述熱點哈希表的存儲器的存儲空間空閑。

      可選地,所述處理單元,在將所述哈希指紋表中與所述當(dāng)前數(shù)據(jù)塊的數(shù)據(jù)指紋匹配的數(shù)據(jù)指紋保存在所述熱點哈希表時,具體用于:

      確定存儲所述熱點哈希表的存儲器的存儲空間已滿,查找所述熱點哈希表中待淘汰的哈希指紋,將所述哈希指紋表中與所述當(dāng)前數(shù)據(jù)塊的數(shù)據(jù)指紋匹配的數(shù)據(jù)指紋,替換所述待淘汰的哈希指紋保存在所述熱點哈希表中。

      第三方面,本發(fā)明實施例還提供了一種存儲架構(gòu),該存儲架構(gòu)中包括RAM、PCM以及Flash/eMMC;

      RAM用于存儲熱點哈希表,PCM用于存儲哈希指紋表,F(xiàn)lash/eMMC用于存儲數(shù)據(jù)塊。其中,所述熱點哈希表中各個哈希表項的數(shù)據(jù)指紋為在至少一 個文件中重復(fù)出現(xiàn)次數(shù)達(dá)到設(shè)定門限值的數(shù)據(jù)指紋,所述哈希指紋表的數(shù)據(jù)指紋為已存儲的各數(shù)據(jù)塊的數(shù)據(jù)指紋。

      通過基于RAM+PCM的指紋緩存結(jié)構(gòu)和基于數(shù)據(jù)塊重復(fù)出現(xiàn)次數(shù)的指紋緩存方案,可以有效地減輕指紋的內(nèi)存需求和對應(yīng)用性能的影響,由于通過維護(hù)熱點哈希表,將把絕大多數(shù)的哈希查找操作定向到RAM中,因而降低了在主存儲器中的哈希查找操作,與將全部指紋放在RAM中相比,減輕了內(nèi)存需求,同時又無需將每次的哈希查找都實施于性能較差的Flash上。

      附圖說明

      圖1為本發(fā)明實施例提供的移動智能終端的部分結(jié)構(gòu)的框圖;

      圖2為本發(fā)明實施例提供的存儲子系統(tǒng)存儲結(jié)構(gòu)示意圖;

      圖3為本發(fā)明實施例提供的一種重復(fù)數(shù)據(jù)刪除方法流程圖;

      圖4為本發(fā)明實施例提供的另一種重復(fù)數(shù)據(jù)刪除方法流程圖;

      圖5為本發(fā)明實施例提供的申請新物理塊流程圖;

      圖6為本發(fā)明實施例提供的數(shù)據(jù)指紋匹配過程示意圖;

      圖7為本發(fā)明實施例提供的重復(fù)數(shù)據(jù)刪除裝置示意圖。

      具體實施方式

      為了使本發(fā)明的目的、技術(shù)方案和優(yōu)點更加清楚,下面將結(jié)合附圖對本發(fā)明作進(jìn)一步地詳細(xì)描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例。基于本發(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其它實施例,都屬于本發(fā)明保護(hù)的范圍。

      本發(fā)明實施例提供一種重復(fù)數(shù)據(jù)刪除方法及裝置,應(yīng)用于移動智能終端,提高了智能移動終端的系統(tǒng)的可靠性。其中,方法和裝置是基于同一發(fā)明構(gòu)思的,由于方法及裝置解決問題的原理相似,因此裝置與方法的實施可以相互參見,重復(fù)之處不再贅述。

      現(xiàn)有的存儲架構(gòu)中,一般由隨機訪問存儲器(英文:Random Access Memory,簡稱:RAM)、flash以及HDD構(gòu)成。指紋庫一般存儲在RAM中。

      本發(fā)明針對的移動智能終端可以包括手機、平板電腦、個人數(shù)字助理(英文:Personal Digital Assistant,簡稱:PDA)、銷售終端(英文:Point of Sales,簡稱:POS)、車載電腦等。

      圖1示出的是與本發(fā)明實施例相關(guān)的移動智能終端100的部分結(jié)構(gòu)的框圖。參考圖1,移動智能終端100包括、RF(Radio Frequency,射頻)電路110、存儲子系統(tǒng)120、輸入單元130、顯示單元140、傳感器150、音頻電路160、無線保真(英文:wireless fidelity,簡稱:WiFi)模塊170、處理器180、以及電源190等部件。本領(lǐng)域技術(shù)人員可以理解,圖1中示出的移動智能終端結(jié)構(gòu)并不構(gòu)成對移動智能終端的限定,可以包括比圖示更多或更少的部件,或者組合某些部件,或者不同的部件布置。

      下面結(jié)合圖1對移動智能終端100的各個構(gòu)成部件進(jìn)行具體的介紹:

      RF電路110可用于收發(fā)信息或通話過程中,信號的接收和發(fā)送,特別地,將基站的下行信息接收后,給處理器180處理。

      存儲子系統(tǒng)120可用于存儲軟件程序以及模塊,處理器180通過運行存儲在存儲子系統(tǒng)120的軟件程序以及模塊,從而執(zhí)行移動智能終端100的各種功能應(yīng)用以及數(shù)據(jù)處理。存儲子系統(tǒng)120可主要包括存儲程序區(qū)和存儲數(shù)據(jù)區(qū),其中,存儲程序區(qū)可存儲操作系統(tǒng)、至少一個功能所需的應(yīng)用程序(比如聲音播放功能、圖象播放功能等)等;存儲數(shù)據(jù)區(qū)可存儲根據(jù)移動智能終端100的使用所創(chuàng)建的數(shù)據(jù)(比如音頻數(shù)據(jù))等。此外,存儲子系統(tǒng)120中后端的存儲器一般為flash或者嵌入式多媒體卡(英文:Embedded Multi Media Card,簡稱:eMMC)。

      輸入單元130可用于接收輸入的數(shù)字或字符信息,以及產(chǎn)生與移動智能終端100的用戶設(shè)置以及功能控制有關(guān)的鍵信號輸入。顯示單元140可用于顯示由用戶輸入的信息或提供給用戶的信息以及移動智能終端100的各種菜單。移 動智能終端100還可包括至少一種傳感器150,比如光傳感器、運動傳感器以及其他傳感器。音頻電路160、揚聲器161,麥克風(fēng)162可提供用戶與移動智能終端100之間的音頻接口。音頻電路160可將接收到的音頻數(shù)據(jù)轉(zhuǎn)換后的電信號,傳輸?shù)綋P聲器161,由揚聲器161轉(zhuǎn)換為聲音信號輸出;另一方面,麥克風(fēng)162將收集的聲音信號轉(zhuǎn)換為電信號,由音頻電路160接收后轉(zhuǎn)換為音頻數(shù)據(jù),再將音頻數(shù)據(jù)輸出至RF電路110以發(fā)送給比如另一移動智能終端,或者將音頻數(shù)據(jù)輸出至存儲子系統(tǒng)120以便進(jìn)一步處理。

      WiFi屬于短距離無線傳輸技術(shù),移動智能終端100通過WiFi模塊170可以幫助用戶收發(fā)電子郵件、瀏覽網(wǎng)頁和訪問流式媒體等,它為用戶提供了無線的寬帶互聯(lián)網(wǎng)訪問。

      處理器180是移動智能終端100的控制中心,利用各種接口和線路連接整個移動智能終端的各個部分,通過運行或執(zhí)行存儲在存儲子系統(tǒng)120內(nèi)的軟件程序和/或模塊,以及調(diào)用存儲在存儲子系統(tǒng)120內(nèi)的數(shù)據(jù),執(zhí)行移動智能終端100的各種功能和處理數(shù)據(jù),從而對移動智能終端進(jìn)行整體監(jiān)控。可選的,處理器180可包括一個或多個處理單元;優(yōu)選的,處理器180可集成應(yīng)用處理器和調(diào)制解調(diào)處理器,其中,應(yīng)用處理器主要處理操作系統(tǒng)、用戶界面和應(yīng)用程序等,調(diào)制解調(diào)處理器主要處理無線通信??梢岳斫獾氖?,上述調(diào)制解調(diào)處理器也可以不集成到處理器180中。

      移動智能終端100還包括給各個部件供電的電源190(比如電池)。

      盡管未示出,移動智能終端100還可以包括攝像頭、藍(lán)牙模塊等,在此不再贅述。

      本發(fā)明針對的移動智能終端后端的存儲器一般為flash或者嵌入式多媒體卡。本發(fā)明實施例中提供了一種移動智能終端的存儲子系統(tǒng),該存儲子系統(tǒng)中包括非易失性存儲器以及flash/eMMC等等??蛇x地,該存儲子系統(tǒng)中包括RAM、相變存儲器(Phase Change Memory,簡稱:PCM)以及flash/eMMC,如圖2所示。相變存儲器能夠存儲陣列能夠保存大量數(shù)據(jù),PCM具有良好的 非易失性。PCM具有隨機存儲速度快的特點。這使得存儲器中的代碼可以直接執(zhí)行。PCM讀取反應(yīng)時間與最小單元一比特的NOR閃存相當(dāng),而它的帶寬可以媲美DRAM。PCM的反應(yīng)時間短,且無需單獨的擦除步驟。

      其中,圖2中LBA1表示為數(shù)據(jù)指紋HASH1分配的邏輯地址,HASH1重復(fù)出現(xiàn)次數(shù)為7;LBA2為表示為數(shù)據(jù)指紋HASH2分配的邏輯地址,HASH2重復(fù)出現(xiàn)次數(shù)為9;LBAm表示為數(shù)據(jù)指紋HASHm分配的邏輯地址,HASHm的重復(fù)出現(xiàn)次數(shù)為28;LBAn表示為數(shù)據(jù)指紋HASHn分配的邏輯地址,HASHn的重復(fù)出現(xiàn)次數(shù)為57;page表示內(nèi)存中的每一項存儲的數(shù)據(jù)。PCM中存儲的每個數(shù)據(jù)指紋對應(yīng)的哈希指紋表項包括邏輯地址,數(shù)據(jù)指紋。還可以包括數(shù)據(jù)指紋對應(yīng)的重復(fù)出現(xiàn)次數(shù)。另外本發(fā)明實施例中數(shù)據(jù)指紋對應(yīng)的重復(fù)出現(xiàn)次數(shù)還可以單獨的表項保存。本發(fā)明實施例中以存儲在哈希指紋表項中為例進(jìn)行說明。

      本發(fā)明實施例中將已存儲的數(shù)據(jù)塊的數(shù)據(jù)指紋形成的哈希指紋表均存儲在PCM中,并將數(shù)據(jù)塊重復(fù)出現(xiàn)次數(shù)達(dá)到門限值的數(shù)據(jù)指紋形成熱點哈希表并存儲在RAM中,熱點哈希表中的數(shù)據(jù)指紋數(shù)據(jù)量較少,因此減少指紋的查找開銷;由于有效地管理了移動智能終端上的冗余數(shù)據(jù),從而減少了其基于Flash的存儲系統(tǒng)的數(shù)據(jù)寫入,從根本上提升了移動智能終端的性能和可靠性。

      基于此,本發(fā)明實施例提供了一種重復(fù)數(shù)據(jù)刪除方法,如圖3所示,該方法通過處理器180執(zhí)行,但本發(fā)明實施例不僅限于通過處理器180實現(xiàn),其他能夠?qū)崿F(xiàn)如下功能的設(shè)備均適用于本發(fā)明。

      重復(fù)數(shù)據(jù)刪除方法包括:

      步驟301,將待處理文件進(jìn)行劃分?jǐn)?shù)據(jù)塊處理。

      本步驟301中,待處理文件指的是一次存儲動作下包括的所有文件,可以是單文件、多文件、單個卷及多虛擬數(shù)據(jù)等。此外,可根據(jù)待處理文件的內(nèi)容或者備份場景選擇劃分方法,常用的劃分方法如定長劃分、滑塊劃分等。一般的,定長劃分是最簡捷的方法,性能比較高,適合用于將穩(wěn)定的文件劃分成數(shù) 據(jù)塊。分塊的大小可根據(jù)用戶配置進(jìn)行設(shè)置。默認(rèn)大小值可以為4KB。

      步驟302,計算所述待處理文件中各數(shù)據(jù)塊的數(shù)據(jù)指紋。

      本步驟302中,對數(shù)據(jù)塊進(jìn)行計算獲取數(shù)據(jù)指紋的方法有很多,一般的,MD5和SHA1算法計算所得的數(shù)據(jù)指紋的碰撞幾率比較小,因此,本實施例中可以采用MD5算法或SHA1算法計算待處理文件中各數(shù)據(jù)塊的數(shù)據(jù)指紋。

      步驟303,根據(jù)各數(shù)據(jù)塊的數(shù)據(jù)指紋、熱點哈希表以及哈希指紋表對所述待處理文件的各數(shù)據(jù)塊進(jìn)行去重操作。

      其中,所述熱點哈希表中各個哈希表項的數(shù)據(jù)指紋為在至少一個文件中重復(fù)出現(xiàn)次數(shù)達(dá)到設(shè)定門限值的數(shù)據(jù)指紋,所述哈希指紋表的數(shù)據(jù)指紋為已存儲的各數(shù)據(jù)塊的數(shù)據(jù)指紋;所述熱點哈希表與所述哈希指紋表存儲于不同的存儲器中。

      本步驟303中,所述熱點哈希表中的數(shù)據(jù)指紋為在至少一個文件中重復(fù)出現(xiàn)次數(shù)達(dá)到設(shè)定門限值的數(shù)據(jù)指紋。其中,該至少一個文件可以指當(dāng)前待處理的文件,也可以指獲取到該熱點哈希表的其它文件,例如,已經(jīng)處理過的歷史文件,或者是歷史文件和當(dāng)前待處理文件二者的結(jié)合。

      本發(fā)明實施例中熱點哈希表區(qū)別于一般的哈希表,并非存儲唯一數(shù)據(jù)塊的數(shù)據(jù)指紋,而是僅存儲重復(fù)次數(shù)高的數(shù)據(jù)指紋,其數(shù)據(jù)量規(guī)模較小,數(shù)據(jù)指紋與熱點哈希表中匹配的數(shù)據(jù)量較小,并且與存儲所有數(shù)據(jù)塊的數(shù)據(jù)指紋的哈希指紋表分開存儲,因此減少了指紋查找開銷,可減小對內(nèi)存的占用。另在,通過熱點哈希表以及哈希指紋表能夠在存儲過程中降低文件數(shù)據(jù)塊的重復(fù)率,減少了基于flash的存儲介質(zhì)的寫操作,減少擦除次數(shù),延長了flash的使用壽命,并增加了系統(tǒng)的可靠性。

      可選地,所述哈希指紋表存儲在RAM中,所述熱點哈希表存儲在PCM中。

      通過基于RAM+PCM的指紋緩存結(jié)構(gòu)和基于數(shù)據(jù)塊重復(fù)出現(xiàn)次數(shù)的指紋緩存方案,可以有效地減輕指紋的內(nèi)存需求和對應(yīng)用性能的影響,由于通過維 護(hù)熱點哈希表,將把絕大多數(shù)的哈希查找操作定向到RAM中,因而降低了在主存儲器中的哈希查找操作,與將全部指紋放在RAM中相比,減輕了內(nèi)存需求,同時又無需將每次的哈希查找都實施于性能較差的Flash上。另外移動智能終端存儲系統(tǒng)的重復(fù)數(shù)據(jù)刪除比例在15%以上,延長閃存的使用壽命30%左右,同時提高存儲子系統(tǒng)的性能20%以上。由于移動智能終端中的冗余數(shù)據(jù)所占比例是很高的,將多份冗余數(shù)據(jù)只保留一份,減少了基于Flash的存儲介質(zhì)的寫操作,最終將減少其擦除,因此延長了使用壽命,增加了系統(tǒng)的可靠性。

      具體的,步驟303中所述根據(jù)各數(shù)據(jù)塊的數(shù)據(jù)指紋、熱點哈希表以及哈希指紋表對所述待處理文件的各數(shù)據(jù)塊進(jìn)行去重操作,可以通過如下方式實現(xiàn),參見圖4:

      針對每個數(shù)據(jù)塊分別執(zhí)行:

      步驟303a,將當(dāng)前數(shù)據(jù)塊的數(shù)據(jù)指紋與熱點哈希表中的數(shù)據(jù)指紋進(jìn)行匹配,當(dāng)匹配不一致時,執(zhí)行步驟303b;當(dāng)匹配一致時,執(zhí)行步驟303c。

      步驟303b,將所述當(dāng)前數(shù)據(jù)塊的數(shù)據(jù)指紋與哈希指紋表中的數(shù)據(jù)指紋進(jìn)行匹配,當(dāng)匹配一致時,執(zhí)行步驟303c。當(dāng)匹配不一致時,執(zhí)行步驟303d。

      步驟303c,確定所述當(dāng)前數(shù)據(jù)塊為重復(fù)數(shù)據(jù)。然后獲取內(nèi)存中包括的與所述當(dāng)前數(shù)據(jù)塊的數(shù)據(jù)指紋匹配一致的數(shù)據(jù)的地址。數(shù)據(jù)的地址為邏輯地址LBA。

      步驟303d,申請新物理塊流程。

      其中,參見圖5,步驟303d中申請新物理塊流程,可以包括如下子步驟:

      步驟303d1,申請新物理塊,并獲取所述新物理塊地址PBA。

      步驟303d2,寫入數(shù)據(jù)塊到所述新物理塊地址PBA。

      步驟303d3,獲取所述新物理塊邏輯地址LBA。

      步驟303d4,初始化所述當(dāng)前數(shù)據(jù)塊的數(shù)據(jù)指紋的出現(xiàn)次數(shù)。例如設(shè)置哈希指紋的出現(xiàn)次數(shù)RefCount=0。

      步驟303d5,生成哈希表項保存在哈希指紋表中。例如返回的哈希表項為 <LBA,HASH,0>。其中HASH表示所述當(dāng)前數(shù)據(jù)塊的數(shù)據(jù)指紋。0表示所述當(dāng)前數(shù)據(jù)塊的數(shù)據(jù)指紋的出現(xiàn)次數(shù)為0。

      可選地,如圖6所示,在步驟303a,將所述當(dāng)前數(shù)據(jù)塊的數(shù)據(jù)指紋與熱點哈希表中的數(shù)據(jù)指紋進(jìn)行匹配,當(dāng)匹配一致時,執(zhí)行步驟303c獲取所述當(dāng)前數(shù)據(jù)塊的地址之前,還包括:

      步驟303a1,更新所述熱點哈希表中與所述當(dāng)前數(shù)據(jù)塊的數(shù)據(jù)指紋匹配的數(shù)據(jù)指紋的重復(fù)出現(xiàn)次數(shù)。

      可選地,所述熱點哈希表中各個哈希表項依據(jù)哈希表項的數(shù)據(jù)指紋的重復(fù)出現(xiàn)次數(shù)在所述熱點哈希表中順序存儲;

      則在步驟303a1,更新所述熱點哈希表中與所述當(dāng)前數(shù)據(jù)塊的數(shù)據(jù)指紋匹配的數(shù)據(jù)指紋的重復(fù)出現(xiàn)次數(shù)后,參見圖6,還包括:

      步驟303a2,調(diào)整所述所述熱點哈希表中與所述當(dāng)前數(shù)據(jù)塊的數(shù)據(jù)指紋匹配的數(shù)據(jù)指紋在所述熱點哈希表中的存儲位置。具體可以將鏈表項向前移動至適當(dāng)順序?qū)?yīng)的位置。

      可選地,在步驟303b,將所述當(dāng)前數(shù)據(jù)塊的數(shù)據(jù)指紋與哈希指紋表中的數(shù)據(jù)指紋進(jìn)行匹配,當(dāng)匹配一致時,執(zhí)行步驟303c之前,還可以包括,如圖6所示:

      步驟303b1,更新所述哈希指紋表中與所述當(dāng)前數(shù)據(jù)塊的數(shù)據(jù)指紋匹配的數(shù)據(jù)指紋的重復(fù)出現(xiàn)次數(shù);

      步驟303b2,在所述哈希指紋表中與所述當(dāng)前數(shù)據(jù)塊的數(shù)據(jù)指紋匹配的數(shù)據(jù)指紋的重復(fù)出現(xiàn)次數(shù)達(dá)到設(shè)定門限值時,將所述哈希指紋表中與所述當(dāng)前數(shù)據(jù)塊的數(shù)據(jù)指紋匹配的數(shù)據(jù)指紋保存在所述熱點哈希表中。

      具體的,在將所述哈希指紋表中與所述當(dāng)前數(shù)據(jù)塊的數(shù)據(jù)指紋匹配的數(shù)據(jù)指紋保存在所述熱點哈希表中之前,還可以包括:

      確定存儲所述熱點哈希表的存儲器的存儲空間空閑。

      可選地,在所述哈希指紋表中與所述當(dāng)前數(shù)據(jù)塊的數(shù)據(jù)指紋匹配的數(shù)據(jù)指 紋的重復(fù)出現(xiàn)次數(shù)達(dá)到設(shè)定門限值時,確定存儲所述熱點哈希表的存儲器的存儲空間已滿,查找所述熱點哈希表中待淘汰的數(shù)據(jù)指紋,將所述哈希指紋表中與所述當(dāng)前數(shù)據(jù)塊的數(shù)據(jù)指紋匹配的數(shù)據(jù)指紋替換所述待淘汰的數(shù)據(jù)指紋保存在所述熱點哈希表中。

      其中,所述熱點哈希表中待淘汰的哈希指紋,可以是熱點哈希表中數(shù)據(jù)指紋的重復(fù)出現(xiàn)次數(shù)最小的數(shù)據(jù)指紋。

      還可以在確定存儲所述熱點哈希表的存儲器的存儲空間已滿時,調(diào)高所述設(shè)定門限值,并將重復(fù)出現(xiàn)次數(shù)小于調(diào)高后的設(shè)定門限值的數(shù)據(jù)指紋從熱點哈希表中刪除。

      所述熱點哈希表中各個哈希表項依據(jù)哈希表項的數(shù)據(jù)指紋的重復(fù)出現(xiàn)次數(shù)在所述熱點哈希表中順序存儲;在更新所述熱點哈希表中與所述當(dāng)前數(shù)據(jù)塊的數(shù)據(jù)指紋匹配的數(shù)據(jù)指紋的重復(fù)出現(xiàn)次數(shù)后,調(diào)整所述所述熱點哈希表中與所述當(dāng)前數(shù)據(jù)塊的數(shù)據(jù)指紋匹配的數(shù)據(jù)指紋在所述熱點哈希表中的存儲位置。從而能夠存儲熱點哈希指紋表的存儲空間滿的時候,能夠直接的尾項的哈希指紋即可,不需要再去對哈希指紋的重復(fù)出現(xiàn)次數(shù)進(jìn)行排序,查找重復(fù)出現(xiàn)次數(shù)最小的數(shù)據(jù)指紋,節(jié)省了操作步驟,從而節(jié)省了操作時間。

      基于與方法實施例同樣的發(fā)明構(gòu)思,本發(fā)明實施例提供了一種重復(fù)數(shù)據(jù)刪除裝置,如圖7所示,包括:

      存儲單元701,用于存儲熱點哈希表和哈希指紋表;

      處理單元702,用于將待處理文件進(jìn)行劃分?jǐn)?shù)據(jù)塊處理,并計算劃分得到的各數(shù)據(jù)塊的數(shù)據(jù)指紋;針對每個數(shù)據(jù)塊分別執(zhí)行:將當(dāng)前數(shù)據(jù)塊的數(shù)據(jù)指紋與熱點哈希表中的數(shù)據(jù)指紋進(jìn)行匹配,若匹配一致,則確定所述當(dāng)前數(shù)據(jù)塊為重復(fù)數(shù)據(jù);若匹配不一致,將所述當(dāng)前數(shù)據(jù)塊的數(shù)據(jù)指紋與哈希指紋表中的數(shù)據(jù)指紋進(jìn)行匹配且匹配一致時,確定所述當(dāng)前數(shù)據(jù)塊為重復(fù)數(shù)據(jù)。

      其中,所述熱點哈希表中各個哈希表項的數(shù)據(jù)指紋為在至少一個文件中重復(fù)出現(xiàn)次數(shù)達(dá)到設(shè)定門限值的數(shù)據(jù)指紋,所述哈希指紋表的數(shù)據(jù)指紋為已存儲 的各數(shù)據(jù)塊的數(shù)據(jù)指紋。

      其中,存儲單元701具體可以通過圖1所示的存儲子系統(tǒng)120實現(xiàn),處理單元702具體可以通過圖1所示的處理器180實現(xiàn)。

      可選地,所述存儲單元701包括:第一存儲子單元701a和第二存儲子單元701b;

      所述哈希指紋表存儲在所述第一存儲子單元701a中,所述熱點哈希表存儲在所述第二存儲子單元701b中。

      其中,所述第一存儲子單元701a可以為隨機訪問存儲器RAM,所述第二存儲子單元701b可以為相變存儲器PCM。

      可選地,所述處理單元702,還用于將所述當(dāng)前數(shù)據(jù)塊的數(shù)據(jù)指紋與熱點哈希表中的數(shù)據(jù)指紋進(jìn)行匹配且匹配一致時,更新所述熱點哈希表中與所述當(dāng)前數(shù)據(jù)塊的數(shù)據(jù)指紋匹配的數(shù)據(jù)指紋的重復(fù)出現(xiàn)次數(shù)。

      可選地,所述熱點哈希表中各個哈希表項依據(jù)哈希表項的數(shù)據(jù)指紋的重復(fù)出現(xiàn)次數(shù)在所述熱點哈希表中順序存儲;所述處理單元702,還用于在更新所述熱點哈希表中與所述當(dāng)前數(shù)據(jù)塊的數(shù)據(jù)指紋匹配的數(shù)據(jù)指紋的重復(fù)出現(xiàn)次數(shù)后,調(diào)整所述所述熱點哈希表中與所述當(dāng)前數(shù)據(jù)塊的數(shù)據(jù)指紋匹配的數(shù)據(jù)指紋在所述熱點哈希表中的存儲位置。

      可選地,所述處理單元702,還用于將所述當(dāng)前數(shù)據(jù)塊的數(shù)據(jù)指紋與哈希指紋表中的數(shù)據(jù)指紋進(jìn)行匹配且匹配一致時,更新所述哈希指紋表中與所述當(dāng)前數(shù)據(jù)塊的數(shù)據(jù)指紋匹配的數(shù)據(jù)指紋的重復(fù)出現(xiàn)次數(shù);

      在所述哈希指紋表中與所述當(dāng)前數(shù)據(jù)塊的數(shù)據(jù)指紋匹配的數(shù)據(jù)指紋的重復(fù)出現(xiàn)次數(shù)達(dá)到設(shè)定門限值時,將所述哈希指紋表中與所述當(dāng)前數(shù)據(jù)塊的數(shù)據(jù)指紋匹配的數(shù)據(jù)指紋保存在所述熱點哈希表中。

      可選地,所述處理單元702,在將所述哈希指紋表中與所述當(dāng)前數(shù)據(jù)塊的數(shù)據(jù)指紋匹配的數(shù)據(jù)指紋保存在所述熱點哈希表中之前,還用于確定存儲所述熱點哈希表的存儲器的存儲空間空閑。

      可選地,所述處理單元702,在將所述哈希指紋表中與所述當(dāng)前數(shù)據(jù)塊的數(shù)據(jù)指紋匹配的數(shù)據(jù)指紋保存在所述熱點哈希表時,具體用于:

      確定存儲所述熱點哈希表的存儲器的存儲空間已滿,查找所述熱點哈希表中待淘汰的哈希指紋,將所述哈希指紋表中與所述當(dāng)前數(shù)據(jù)塊的數(shù)據(jù)指紋匹配的數(shù)據(jù)指紋,替換所述待淘汰的哈希指紋保存在所述熱點哈希表中。

      本發(fā)明實施例還提供了一種存儲架構(gòu),該存儲架構(gòu)中包括RAM、PCM以及Flash/eMMC;

      RAM用于存儲熱點哈希表,PCM用于存儲哈希指紋表,F(xiàn)lash/eMMC用于存儲數(shù)據(jù)塊。其中,所述熱點哈希表中各個哈希表項的數(shù)據(jù)指紋為在至少一個文件中重復(fù)出現(xiàn)次數(shù)達(dá)到設(shè)定門限值的數(shù)據(jù)指紋,所述哈希指紋表的數(shù)據(jù)指紋為已存儲的各數(shù)據(jù)塊的數(shù)據(jù)指紋。

      通過基于RAM+PCM的指紋緩存結(jié)構(gòu)和基于數(shù)據(jù)塊重復(fù)出現(xiàn)次數(shù)的指紋緩存方案,可以有效地減輕指紋的內(nèi)存需求和對應(yīng)用性能的影響,由于通過維護(hù)熱點哈希表,將把絕大多數(shù)的哈希查找操作定向到RAM中,因而降低了在主存儲器中的哈希查找操作,與將全部指紋放在RAM中相比,減輕了內(nèi)存需求,同時又無需將每次的哈希查找都實施于性能較差的Flash上。

      本領(lǐng)域內(nèi)的技術(shù)人員應(yīng)明白,本發(fā)明的實施例可提供為方法、系統(tǒng)、或計算機程序產(chǎn)品。因此,本發(fā)明可采用完全硬件實施例、完全軟件實施例、或結(jié)合軟件和硬件方面的實施例的形式。而且,本發(fā)明可采用在一個或多個其中包含有計算機可用程序代碼的計算機可用存儲介質(zhì)(包括但不限于磁盤存儲器、CD-ROM、光學(xué)存儲器等)上實施的計算機程序產(chǎn)品的形式。

      本發(fā)明是參照根據(jù)本發(fā)明實施例的方法、設(shè)備(系統(tǒng))、和計算機程序產(chǎn)品的流程圖和/或方框圖來描述的。應(yīng)理解可由計算機程序指令實現(xiàn)流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結(jié)合??商峁┻@些計算機程序指令到通用計算機、專用計算機、嵌入式處理機或其他可編程數(shù)據(jù)處理設(shè)備的處理器以產(chǎn)生一個機器,使得通過計算 機或其他可編程數(shù)據(jù)處理設(shè)備的處理器執(zhí)行的指令產(chǎn)生用于實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的裝置。

      這些計算機程序指令也可存儲在能引導(dǎo)計算機或其他可編程數(shù)據(jù)處理設(shè)備以特定方式工作的計算機可讀存儲器中,使得存儲在該計算機可讀存儲器中的指令產(chǎn)生包括指令裝置的制造品,該指令裝置實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能。

      這些計算機程序指令也可裝載到計算機或其他可編程數(shù)據(jù)處理設(shè)備上,使得在計算機或其他可編程設(shè)備上執(zhí)行一系列操作步驟以產(chǎn)生計算機實現(xiàn)的處理,從而在計算機或其他可編程設(shè)備上執(zhí)行的指令提供用于實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的步驟。

      盡管已描述了本發(fā)明的優(yōu)選實施例,但本領(lǐng)域內(nèi)的技術(shù)人員一旦得知了基本創(chuàng)造性概念,則可對這些實施例作出另外的變更和修改。所以,所附權(quán)利要求意欲解釋為包括優(yōu)選實施例以及落入本發(fā)明范圍的所有變更和修改。

      顯然,本領(lǐng)域的技術(shù)人員可以對本發(fā)明進(jìn)行各種改動和變型而不脫離本發(fā)明的精神和范圍。這樣,倘若本發(fā)明的這些修改和變型屬于本發(fā)明權(quán)利要求及其等同技術(shù)的范圍之內(nèi),則本發(fā)明也意圖包含這些改動和變型在內(nèi)。

      當(dāng)前第1頁1 2 3 
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1