專利名稱:重復(fù)數(shù)據(jù)檢索方法及設(shè)備的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及存儲技術(shù),尤其涉及一種重復(fù)數(shù)據(jù)檢索方法及設(shè)備。
背景技術(shù):
重復(fù)數(shù)據(jù)刪除(英文為De-duplication)是一種數(shù)據(jù)減縮技術(shù),旨在減少存儲系統(tǒng)中使用的存儲容量或減少數(shù)據(jù)在網(wǎng)絡(luò)中的傳輸量,它廣泛應(yīng)用于數(shù)據(jù)備份或廣域網(wǎng)數(shù)據(jù)傳輸?shù)膱鼍啊V貜?fù)數(shù)據(jù)刪除的過程是:對輸入數(shù)據(jù)進行分塊,計算每個分塊的哈希(Hash)值,用計算出的Hash值在單一實例庫中查找以判斷該分塊是否為重復(fù)塊,若為重復(fù)塊,則不將該分塊及其Hash值存儲到單一實例庫中,從而達到縮減數(shù)據(jù)的目的。單一實例庫通常比較大,無法全部放入內(nèi)存,通常會放在磁盤中,這樣在查詢分塊是否為重復(fù)塊時就需要頻繁地訪問磁盤,由于磁盤訪問速度較低,使得重復(fù)塊查詢的效率較低,影響了重復(fù)數(shù)據(jù)刪除技術(shù)的整體性能。
發(fā)明內(nèi)容
本發(fā)明實施例提供一種重復(fù)數(shù)據(jù)檢索方法及設(shè)備,用以提高重復(fù)塊查詢效率,提高重復(fù)數(shù)據(jù)刪除技術(shù)的整體性能。第一方面提供一種重復(fù)數(shù)據(jù)檢索方法,包括:對接收到的數(shù)據(jù)進行分塊處理,獲取至少兩個數(shù)據(jù)分塊;對所述至少兩個數(shù)據(jù)分塊進行分組,得到至少一個數(shù)據(jù)分組,每個數(shù)據(jù)分組包括至少一個數(shù)據(jù)分塊;針對所述至少一個數(shù)據(jù)分組中的第一數(shù)據(jù)分組,對所述第一數(shù)據(jù)分組內(nèi)的數(shù)據(jù)分塊進行相似性哈希運算,獲取所述第一數(shù)據(jù)分組的哈希值,獲取哈希值存儲表中與所述第一數(shù)據(jù)分組的哈希值相似度大于或等于預(yù)設(shè)的第一相似度閾值的第一哈希值,所述哈希值存儲表中存儲有已經(jīng)存儲在數(shù)據(jù)存儲空間中的第二數(shù)據(jù)分組的哈希值和所述第二數(shù)據(jù)分組的對應(yīng)關(guān)系,所述第二數(shù)據(jù)分組的哈希值是根據(jù)所述第二數(shù)據(jù)分組內(nèi)的數(shù)據(jù)分塊進行相似性哈希運算獲得的;所述第一數(shù)據(jù)分組是所述至少一個數(shù)據(jù)分組中的任意一個數(shù)據(jù)分組;如果所述第一數(shù)據(jù)分組的哈希值與所述第一哈希值的相似度大于或等于預(yù)設(shè)的第二相似度閾值,對所述第一數(shù)據(jù)分組內(nèi)的數(shù)據(jù)分塊進行重復(fù)塊檢索。在第一方面的第一種可能的實現(xiàn)方式中,所述重復(fù)數(shù)據(jù)塊檢索方法還包括:如果所述第一數(shù)據(jù)分組的哈希值與所述第一哈希值的相似度小于所述第二相似度閾值,將所述第一數(shù)據(jù)分組內(nèi)的數(shù)據(jù)分塊和所述第一數(shù)據(jù)分組內(nèi)的數(shù)據(jù)分塊的哈希值存儲到所述數(shù)據(jù)存儲空間中,并將所述第一數(shù)據(jù)分組的哈希值與所述第一數(shù)據(jù)分組的對應(yīng)關(guān)系存儲到所述哈希值存儲表中。結(jié)合第一方面或第一方面的第一種可能的實現(xiàn)方式,在第一方面的第二種可能的實現(xiàn)方式中,對所述至少兩個數(shù)據(jù)分塊進行分組,得到至少一個數(shù)據(jù)分組包括:由所述至少兩個數(shù)據(jù)分塊中每個數(shù)據(jù)分塊的哈希值構(gòu)成待分塊哈希數(shù)據(jù);以任一個所述數(shù)據(jù)分塊的哈希值的長度為滑動步長,采用分塊算法對所述待分塊哈希數(shù)據(jù)進行分塊處理,得到至少一個哈希值分塊;將屬于同一哈希值分塊的哈希值對應(yīng)的數(shù)據(jù)分塊作為一個所述數(shù)據(jù)分組。結(jié)合第一方面或第一方面的第一種可能的實現(xiàn)方式或第一方面的第二種可能的實現(xiàn)方式,在第一方面的第三種可能的實現(xiàn)方式中,對所述第一數(shù)據(jù)分組內(nèi)的數(shù)據(jù)分塊進行相似性哈希運算,獲取所述第一數(shù)據(jù)分組的哈希值包括:對所述第一數(shù)據(jù)分組內(nèi)每個數(shù)據(jù)分塊進行哈希運算,獲取所述第一數(shù)據(jù)分組內(nèi)每個數(shù)據(jù)分塊的哈希值;將所述第一數(shù)據(jù)分組內(nèi)每個數(shù)據(jù)分塊的哈希值中的O替換為-1,將所述第一數(shù)據(jù)分組內(nèi)所有數(shù)據(jù)分塊的哈希值的對應(yīng)位相加,將相加大于O的位映射為1,將相加小于或等于O的位映射為0,獲得的二進制數(shù)值作為所述第一數(shù)據(jù)分組的哈希值。結(jié)合第一方面或第一方面的第一種可能的實現(xiàn)方式或第一方面的第二種可能的實現(xiàn)方式或第一方面的第三種可能的實現(xiàn)方式,在第一方面的第四種可能的實現(xiàn)方式中,所述數(shù)據(jù)存儲空間包括多個存儲區(qū)域;所述哈希值存儲表還存儲有所述第二數(shù)據(jù)分組的哈希值和所述第二數(shù)據(jù)分組所在存儲區(qū)域的編號的對應(yīng)關(guān)系;對所述第一數(shù)據(jù)分組內(nèi)的數(shù)據(jù)分塊進行重復(fù)塊檢索包括:從所述哈希值存儲表中獲取所述第一哈希值對應(yīng)的存儲區(qū)域的編號n,將編號η對應(yīng)存儲區(qū)域中的數(shù)據(jù)分塊和數(shù)據(jù)分塊的哈希值加載到內(nèi)存中;其中,η為大于等于O的整數(shù);將所述第一數(shù)據(jù)分組中與所述編號η對應(yīng)存儲區(qū)域中哈希值相同的數(shù)據(jù)分塊進行比較,以完成對所述第一數(shù)據(jù)分組內(nèi)的數(shù)據(jù)分塊的重復(fù)塊檢索。結(jié)合第一方面的第四種可能的實現(xiàn)方式,在第一方面的第五種可能的實現(xiàn)方式中,所述方法還包括:在將編號η對應(yīng)存儲區(qū)域中的數(shù)據(jù)分塊和數(shù)據(jù)分塊的哈希值加載到內(nèi)存中的同時,將編號(η+1)對應(yīng)存儲區(qū)域中的數(shù)據(jù)分塊和數(shù)據(jù)分塊的哈希值加載到內(nèi)存中;所述將所述第一數(shù)據(jù)分組中與所述編號η對應(yīng)存儲區(qū)域中哈希值相同的數(shù)據(jù)分塊進行比較,以完成對所述第一數(shù)據(jù)分組內(nèi)的數(shù)據(jù)分塊的重復(fù)塊檢索包括:將所述第一數(shù)據(jù)分組中與所述編號η和編號(η+1)對應(yīng)存儲區(qū)域中哈希值相同的數(shù)據(jù)分塊進行比較,以完成對所述第一數(shù)據(jù)分組內(nèi)的數(shù)據(jù)分塊的重復(fù)塊檢索。結(jié)合第一方面或第一方面的第一種可能的實現(xiàn)方式或第一方面的第二種可能的實現(xiàn)方式或第一方面的第三種可能的實現(xiàn)方式或第一方面的第四種可能的實現(xiàn)方式或第一方面的第五種可能的實現(xiàn)方式,在第一方面的第六種可能的實現(xiàn)方式中,所述獲取哈希值存儲表中與所述第一數(shù)據(jù)分組的哈希值相似度大于或等于預(yù)設(shè)的第一相似度閾值的第一哈希值包括:獲取所述哈希值存儲表中與所述第一數(shù)據(jù)分組的哈希值對應(yīng)位置上的重復(fù)位的個數(shù)大于或等于預(yù)設(shè)數(shù)量的哈希值作為所述第一哈希值。結(jié)合第一方面的第六種可能的實現(xiàn)方式,在第一方面的第七種可能的實現(xiàn)方式中,所述獲取哈希值存儲表中與所述第一數(shù)據(jù)分組的哈希值對應(yīng)位置上的重復(fù)位的個數(shù)大于或等于預(yù)設(shè)數(shù)量的哈希值作為所述第一哈希值包括:獲取所述第一數(shù)據(jù)分組的哈希值與所述哈希值存儲表中每個哈希值之間的漢明距離,將漢明距離小于或等于預(yù)設(shè)漢明距離閾值的所述哈希值存儲表中的哈希值作為所述第一哈希值。第二方面提供一種重復(fù)數(shù)據(jù)檢索設(shè)備,包括:
分塊獲取模塊,用于對接收到的數(shù)據(jù)進行分塊處理,獲取至少兩個數(shù)據(jù)分塊;分組獲取模塊,用于對所述分塊獲取模塊獲取到的所述至少兩個數(shù)據(jù)分塊進行分組,得到至少一個數(shù)據(jù)分組,每個數(shù)據(jù)分組包括至少一個數(shù)據(jù)分塊;哈希計算模塊,用于針對所述至少一個數(shù)據(jù)分組中的第一數(shù)據(jù)分組,對所述第一數(shù)據(jù)分組內(nèi)的數(shù)據(jù)分塊進行相似性哈希運算,獲取所述第一數(shù)據(jù)分組的哈希值,獲取哈希值存儲表中與所述第一數(shù)據(jù)分組的哈希值相似度大于或等于預(yù)設(shè)的第一相似度閾值的第一哈希值,所述哈希值存儲表中存儲有已經(jīng)存儲在數(shù)據(jù)存儲空間中的第二數(shù)據(jù)分組的哈希值和所述第二數(shù)據(jù)分組的對應(yīng)關(guān)系,所述第二數(shù)據(jù)分組的哈希值是根據(jù)所述第二數(shù)據(jù)分組內(nèi)的數(shù)據(jù)分塊進行相似性哈希運算獲得的;所述第一數(shù)據(jù)分組是所述至少一個數(shù)據(jù)分組中的任意一個數(shù)據(jù)分組;重復(fù)檢索模塊,用于在所述第一數(shù)據(jù)分組的哈希值與所述第一哈希值的相似度大于或等于預(yù)設(shè)的第二相似度閾值時,對所述第一數(shù)據(jù)分組內(nèi)的數(shù)據(jù)分塊進行重復(fù)塊檢索。在第二方面的第一種可能的實現(xiàn)方式中,所述重復(fù)數(shù)據(jù)檢索設(shè)備還包括:存儲模塊,用于在所述第一數(shù)據(jù)分組的哈希值與所述第一哈希值的相似度小于所述第二相似度閾值時,將所述第一數(shù)據(jù)分組內(nèi)的數(shù)據(jù)分塊和所述第一數(shù)據(jù)分組內(nèi)的數(shù)據(jù)分塊的哈希值存儲到所述數(shù)據(jù)存儲空間中,并將所述第一數(shù)據(jù)分組的哈希值與所述第一數(shù)據(jù)分組的對應(yīng)關(guān)系存儲到所述哈希值存儲表中。結(jié)合第二方面或第二方面的第一種可能的實現(xiàn)方式,在第二方面的第二種可能的實現(xiàn)方式中,所述分組獲取模塊具體用于由所述至少兩個數(shù)據(jù)分塊中每個數(shù)據(jù)分塊的哈希值構(gòu)成待分塊哈希數(shù)據(jù),以任一個所述數(shù)據(jù)分塊的哈希值的長度為滑動步長,采用分塊算法對所述待分塊哈希數(shù)據(jù)進行分塊處理,得到至少一個哈希值分塊,將屬于同一哈希值分塊的哈希值對應(yīng)的數(shù)據(jù)分塊作為一個所述數(shù)據(jù)分組。結(jié)合第二方面或第二方面的第一種可能的實現(xiàn)方式或第二方面的第二種可能的實現(xiàn)方式,在第二方面的第三種可能的實現(xiàn)方式中,所述哈希計算模塊用于對所述第一數(shù)據(jù)分組內(nèi)的數(shù)據(jù)分塊進行相似性哈希運算,獲取所述第一數(shù)據(jù)分組的哈希值包括:所述哈希計算模塊具體用于對所述第一數(shù)據(jù)分組內(nèi)每個數(shù)據(jù)分塊進行哈希運算,獲取所述第一數(shù)據(jù)分組內(nèi)每個數(shù)據(jù)分塊的哈希值,將所述第一數(shù)據(jù)分組內(nèi)每個數(shù)據(jù)分塊的哈希值中的O替換為-1,將所述第一數(shù)據(jù)分組內(nèi)所有數(shù)據(jù)分塊的哈希值的對應(yīng)位相加,將相加大于O的位映射為1,將相加小于或等于O的位映射為0,獲得的二進制數(shù)值作為所述第一數(shù)據(jù)分組的哈希值。結(jié)合第二方面或第二方面的第一種可能的實現(xiàn)方式或第二方面的第二種可能的實現(xiàn)方式或第二方面的第三種可能的實現(xiàn)方式,在第二方面的第四種可能的實現(xiàn)方式中,所述數(shù)據(jù)存儲空間包括多個存儲區(qū)域;所述哈希值存儲表還存儲有所述第二數(shù)據(jù)分組的哈希值和所述第二數(shù)據(jù)分組所在存儲區(qū)域的編號的對應(yīng)關(guān)系;所述重復(fù)檢索模塊具體用于從所述哈希值存儲表中獲取所述第一哈希值對應(yīng)的存儲區(qū)域的編號n,將編號η對應(yīng)存儲區(qū)域中的數(shù)據(jù)分塊和數(shù)據(jù)分塊的哈希值加載到內(nèi)存中;其中,η為大于等于O的整數(shù);將所述第一數(shù)據(jù)分組中與所述編號η對應(yīng)存儲區(qū)域中哈希值相同的數(shù)據(jù)分塊進行比較,以完成對所述第一數(shù)據(jù)分組內(nèi)的數(shù)據(jù)分塊的重復(fù)塊檢索。結(jié)合第二方面的第四種可能的實現(xiàn)方式,在第二方面的第五種可能的實現(xiàn)方式中,所述重復(fù)檢索模塊還用于在將編號η對應(yīng)存儲區(qū)域中的數(shù)據(jù)分塊和數(shù)據(jù)分塊的哈希值加載到內(nèi)存中的同時,將編號(η+1)對應(yīng)存儲區(qū)域中的數(shù)據(jù)分塊和數(shù)據(jù)分塊的哈希值加載到內(nèi)存中;所述重復(fù)檢索模塊具體用于將所述第一數(shù)據(jù)分組中與所述編號η對應(yīng)存儲區(qū)域中哈希值相同的數(shù)據(jù)分塊進行比較,以完成對所述第一數(shù)據(jù)分組內(nèi)的數(shù)據(jù)分塊的重復(fù)塊檢索包括:所述重復(fù)檢索模塊具體用于將所述第一數(shù)據(jù)分組中與所述編號η和編號(η+1)對應(yīng)存儲區(qū)域中哈希值相同的數(shù)據(jù)分塊進行比較,以完成對所述第一數(shù)據(jù)分組內(nèi)的數(shù)據(jù)分塊的重復(fù)塊檢索。結(jié)合第二方面或第二方面的第一種可能的實現(xiàn)方式或第二方面的第二種可能的實現(xiàn)方式或第二方面的第三種可能的實現(xiàn)方式或第二方面的第四種可能的實現(xiàn)方式或第二方面的第五種可能的實現(xiàn)方式,在第二方面的第六種可能的實現(xiàn)方式中,所述哈希計算模塊用于獲取哈希值存儲表中與所述第一數(shù)據(jù)分組的哈希值相似度大于或等于預(yù)設(shè)的第一相似度閾值的第一哈希值包括:所述哈希計算模塊具體用于獲取所述哈希值存儲表中與所述第一數(shù)據(jù)分組的哈希值對應(yīng)位置上的重復(fù)位的個數(shù)大于或等于預(yù)設(shè)數(shù)量的哈希值作為所述第一哈希值。結(jié)合第二方面的第六種可能的實現(xiàn)方式,在第二方面的第七種可能的實現(xiàn)方式中,所述哈希計算模塊具體用于獲取所述哈希值存儲表中與所述第一數(shù)據(jù)分組的哈希值對應(yīng)位置上的重復(fù)位的個數(shù)大于或等于預(yù)設(shè)數(shù)量的哈希值作為所述第一哈希值包括:所述哈希值計算模塊具體用于獲取所述第一數(shù)據(jù)分組的哈希值與所述哈希值存儲表中每個哈希值之間的漢明距離,將漢明距離小于或等于預(yù)設(shè)漢明距離閾值的所述哈希值存儲表中的哈希值作為所述第一哈希值。第三方面提供一種重復(fù)數(shù)據(jù)檢索設(shè)備,包括:處理器、通信接口、存儲器和總線:所述處理器、所述通信接口、所述存儲器通過所述總線完成相互間的通信;所述通信接口,用于接收數(shù)據(jù);所述處理器,用于執(zhí)行程序;所述存儲器,用于存放所述程序;其中,所述程序用于對所述通信接口接收到的所述數(shù)據(jù)進行分塊處理,獲取至少兩個數(shù)據(jù)分塊;對所述至少兩個數(shù)據(jù)分塊進行分組,得到至少一個數(shù)據(jù)分組,每個數(shù)據(jù)分組包括至少一個數(shù)據(jù)分塊;針對所述至少一個數(shù)據(jù)分組中的第一數(shù)據(jù)分組,對所述第一數(shù)據(jù)分組內(nèi)的數(shù)據(jù)分塊進行相似性哈希運算,獲取所述第一數(shù)據(jù)分組的哈希值,獲取哈希值存儲表中與所述第一數(shù)據(jù)分組的哈希值相似度大于或等于預(yù)設(shè)的第一相似度閾值的第一哈希值,所述哈希值存儲表中存儲有已經(jīng)存儲在數(shù)據(jù)存儲空間中的第二數(shù)據(jù)分組的哈希值和所述第二數(shù)據(jù)分組的對應(yīng)關(guān)系,所述第二數(shù)據(jù)分組的哈希值是根據(jù)所述第二數(shù)據(jù)分組內(nèi)的數(shù)據(jù)分塊進行相似性哈希運算獲得的;所述第一數(shù)據(jù)分組是所述至少一個數(shù)據(jù)分組中的任意一個數(shù)據(jù)分組;如果所述數(shù)據(jù)分組的哈希值與所述第一哈希值的相似度大于或等于預(yù)設(shè)的第二相似度閾值,對所述第一數(shù)據(jù)分組內(nèi)的數(shù)據(jù)分塊進行重復(fù)塊檢索。在第三方面的第一種可能的實現(xiàn)方式中,所述程序還用于在所述第一數(shù)據(jù)分組的哈希值與所述第一哈希值的相似度小于所述第二相似度閾值時,將所述第一數(shù)據(jù)分組內(nèi)的數(shù)據(jù)分塊和所述第一數(shù)據(jù)分組內(nèi)的數(shù)據(jù)分塊的哈希值存儲到所述數(shù)據(jù)存儲空間中,并將所述第一數(shù)據(jù)分組的哈希值與所述第一數(shù)據(jù)分組的對應(yīng)關(guān)系存儲到所述哈希值存儲表中。結(jié)合第三方面或第三方面的第一種可能的實現(xiàn)方式,在第三方面的第二種可能的實現(xiàn)方式中,所述程序用于對所述至少兩個數(shù)據(jù)分塊進行分組,得到至少一個數(shù)據(jù)分組包括:所述程序具體用于由所述至少兩個數(shù)據(jù)分塊中每個數(shù)據(jù)分塊的哈希值構(gòu)成待分塊哈希數(shù)據(jù),以任一個所述數(shù)據(jù)分塊的哈希值的長度為滑動步長,采用分塊算法對所述待分塊哈希數(shù)據(jù)進行分塊處理,得到至少一個哈希值分塊,將屬于同一哈希值分塊的哈希值對應(yīng)的數(shù)據(jù)分塊作為一個所述數(shù)據(jù)分組。結(jié)合第三方面或第三方面的第一種可能的實現(xiàn)方式或第三方面的第二種可能的實現(xiàn)方式,在第三方面的第三種可能的實現(xiàn)方式中,所述程序用于對所述第一數(shù)據(jù)分組內(nèi)的數(shù)據(jù)分塊進行相似性哈希運算,獲取所述第一數(shù)據(jù)分組的哈希值包括:所述程序具體用于對所述第一數(shù)據(jù)分組內(nèi)每個數(shù)據(jù)分塊進行哈希運算,獲取所述第一數(shù)據(jù)分組內(nèi)每個數(shù)據(jù)分塊的哈希值,將所述第一數(shù)據(jù)分組內(nèi)每個數(shù)據(jù)分塊的哈希值中的O替換為-1,將所述第一數(shù)據(jù)分組內(nèi)所有數(shù)據(jù)分塊的哈希值的對應(yīng)位相加,將相加大于O的位映射為1,將相加小于或等于O的位映射為0,獲得的二進制數(shù)值作為所述第一數(shù)據(jù)分組的哈希值。結(jié)合第三方面或第三方面的第一種可能的實現(xiàn)方式或第三方面的第二種可能的實現(xiàn)方式或第三方面的第三種可能的實現(xiàn)方式,在第三方面的第四種可能的實現(xiàn)方式中,所述數(shù)據(jù)存儲空間包括多個存儲區(qū)域;所述哈希值存儲表還存儲有所述第二數(shù)據(jù)分組的哈希值和所述第二數(shù)據(jù)分組所在存儲區(qū)域的編號的對應(yīng)關(guān)系;所述程序?qū)λ龅谝粩?shù)據(jù)分組內(nèi)的數(shù)據(jù)分塊進行重復(fù)塊檢索包括:所述程序具體用于從所述哈希值存儲表中獲取所述第一哈希值對應(yīng)的存儲區(qū)域的編號n,將編號η對應(yīng)存儲區(qū)域中的數(shù)據(jù)分塊和數(shù)據(jù)分塊的哈希值加載到內(nèi)存中;其中,η為大于等于O的整數(shù);將所述第一數(shù)據(jù)分組中與所述編號η對應(yīng)存儲區(qū)域中哈希值相同的數(shù)據(jù)分塊進行比較,以完成對所述第一數(shù)據(jù)分組內(nèi)的數(shù)據(jù)分塊的重復(fù)塊檢索。結(jié)合第三方面的第四種可能的實現(xiàn)方式,在第三方面的第五種可能的實現(xiàn)方式中,所述程序還用于在將編號η對應(yīng)存儲區(qū)域中的數(shù)據(jù)分塊和數(shù)據(jù)分塊的哈希值加載到內(nèi)存中的同時,將編號(η+1)對應(yīng)存儲區(qū)域中的數(shù)據(jù)分塊和數(shù)據(jù)分塊的哈希值加載到內(nèi)存中;所述程序具體用于將所述第一數(shù)據(jù)分組中與所述編號η對應(yīng)存儲區(qū)域中哈希值相同的數(shù)據(jù)分塊進行比較,以完成對所述第一數(shù)據(jù)分組內(nèi)的數(shù)據(jù)分塊的重復(fù)塊檢索包括:所述程序具體用于將所述第一數(shù)據(jù)分組中與所述編號η和編號(η+1)對應(yīng)存儲區(qū)域中哈希值相同的數(shù)據(jù)分塊進行比較,以完成對所述第一數(shù)據(jù)分組內(nèi)的數(shù)據(jù)分塊的重復(fù)塊檢索。結(jié)合第三方面或第三方面的第一種可能的實現(xiàn)方式或第三方面的第二種可能的實現(xiàn)方式或第三方面的第三種可能的實現(xiàn)方式或第三方面的第四種可能的實現(xiàn)方式或第三方面的第五種可能的實現(xiàn)方式,在第三方面的第六種可能的實現(xiàn)方式中,所述程序用于獲取哈希值存儲表中與所述第一數(shù)據(jù)分組的哈希值相似度大于或等于預(yù)設(shè)的第一相似度閾值的第一哈希值包括:所述程序具體用于獲取所述哈希值存儲表中與所述第一數(shù)據(jù)分組的哈希值對應(yīng)位置上的重復(fù)位的個數(shù)大于或等于預(yù)設(shè)數(shù)量的哈希值作為所述第一哈希值。結(jié)合第三方面的第六種可能的實現(xiàn)方式,在第三方面的第七種可能的實現(xiàn)方式中,所述程序具體用于獲取所述哈希值存儲表中與所述第一數(shù)據(jù)分組的哈希值對應(yīng)位置上的重復(fù)位的個數(shù)大于或等于預(yù)設(shè)數(shù)量的哈希值作為所述第一哈希值包括:所述程序具體用于具體用于獲取所述第一數(shù)據(jù)分組的哈希值與所述哈希值存儲表中每個哈希值之間的漢明距離,將漢明距離小于或等于預(yù)設(shè)漢明距離閾值的所述哈希值存儲表中的哈希值作為所述第一哈希值。第四方面提供一種計算機程序產(chǎn)品,包括計算機可讀存儲介質(zhì),用于存儲程序,所述程序包括:分塊獲取單元,用于對接收到的數(shù)據(jù)進行分塊處理,獲取至少兩個數(shù)據(jù)分塊;分組獲取單元,用于對所述分塊獲取單元獲取到的所述至少兩個數(shù)據(jù)分塊進行分組,得到至少一個數(shù)據(jù)分組,每個數(shù)據(jù)分組包括至少一個數(shù)據(jù)分塊;哈希計算單元,用于針對所述至少一個數(shù)據(jù)分組中的第一數(shù)據(jù)分組,對所述第一數(shù)據(jù)分組內(nèi)的數(shù)據(jù)分塊進行相似性哈希運算,獲取所述第一數(shù)據(jù)分組的哈希值,獲取哈希值存儲表中與所述第一數(shù)據(jù)分組的哈希值相似度大于或等于預(yù)設(shè)的第一相似度閾值的第一哈希值,所述哈希值存儲表中存儲有已經(jīng)存儲在數(shù)據(jù)存儲空間中的第二數(shù)據(jù)分組的哈希值和所述第二數(shù)據(jù)分組的對應(yīng)關(guān)系,所述第二數(shù)據(jù)分組的哈希值是根據(jù)所述第二數(shù)據(jù)分組內(nèi)的數(shù)據(jù)分塊進行相似性哈希運算獲得的;所述第一數(shù)據(jù)分組是所述至少一個數(shù)據(jù)分組中的任意一個數(shù)據(jù)分組;重復(fù)檢索單元,用于在所述第一數(shù)據(jù)分組的哈希值與所述第一哈希值的相似度大于或等于預(yù)設(shè)的第二相似度閾值時,對所述第一數(shù)據(jù)分組內(nèi)的數(shù)據(jù)分塊進行重復(fù)塊檢索。在第四方面的第一種可能的實現(xiàn)方式中,所述程序還包括:存儲單元,用于在所述第一數(shù)據(jù)分組的哈希值與所述第一哈希值的相似度小于所述第二相似度閾值時,將所述第一數(shù)據(jù)分組內(nèi)的數(shù)據(jù)分塊和所述第一數(shù)據(jù)分組內(nèi)的數(shù)據(jù)分塊的哈希值存儲到所述數(shù)據(jù)存儲空間中,并將所述第一數(shù)據(jù)分組的哈希值與所述第一數(shù)據(jù)分組的對應(yīng)關(guān)系存儲到所述哈希值存儲表中。結(jié)合第四方面或第四方面的第一種可能的實現(xiàn)方式,在第四方面的第二種可能的實現(xiàn)方式中,所述分組獲取單元具體用于由所述至少兩個數(shù)據(jù)分塊中每個數(shù)據(jù)分塊的哈希值構(gòu)成待分塊哈希數(shù)據(jù),以任一個所述數(shù)據(jù)分塊的哈希值的長度為滑動步長,采用分塊算法對所述待分塊哈希數(shù)據(jù)進行分塊處理,得到至少一個哈希值分塊,將屬于同一哈希值分塊的哈希值對應(yīng)的數(shù)據(jù)分塊作為一個所述數(shù)據(jù)分組。結(jié)合第四方面或第四方面的第一種可能的實現(xiàn)方式或第四方面的第二種可能的實現(xiàn)方式,在第四方面的第三種可能的實現(xiàn)方式中,所述哈希計算單元用于對所述第一數(shù)據(jù)分組內(nèi)的數(shù)據(jù)分塊進行相似性哈希運算,獲取所述第一數(shù)據(jù)分組的哈希值包括:所述哈希計算單元具體用于對所述第一數(shù)據(jù)分組內(nèi)每個數(shù)據(jù)分塊進行哈希運算,獲取所述第一數(shù)據(jù)分組內(nèi)每個數(shù)據(jù)分塊的哈希值,將所述第一數(shù)據(jù)分組內(nèi)每個數(shù)據(jù)分塊的哈希值中的O替換為-1,將所述第一數(shù)據(jù)分組內(nèi)所有數(shù)據(jù)分塊的哈希值的對應(yīng)位相加,將相加大于O的位映射為1,將相加小于或等于O的位映射為0,獲得的二進制數(shù)值作為所述第一數(shù)據(jù)分組的哈希值。結(jié)合第四方面或第四方面的第一種可能的實現(xiàn)方式或第四方面的第二種可能的實現(xiàn)方式或第四方面的第三種可能的實現(xiàn)方式,在第四方面的第四種可能的實現(xiàn)方式中,所述數(shù)據(jù)存儲空間包括多個存儲區(qū)域;所述哈希值存儲表還存儲有所述第二數(shù)據(jù)分組的哈希值和所述第二數(shù)據(jù)分組所在存儲區(qū)域的編號的對應(yīng)關(guān)系;所述重復(fù)檢索單元具體用于從所述哈希值存儲表中獲取所述第一哈希值對應(yīng)的存儲區(qū)域的編號n,將編號η對應(yīng)存儲區(qū)域中的數(shù)據(jù)分塊和數(shù)據(jù)分塊的哈希值加載到內(nèi)存中;其中,η為大于等于O的整數(shù);將所述第一數(shù)據(jù)分組中與所述編號η對應(yīng)存儲區(qū)域中哈希值相同的數(shù)據(jù)分塊進行比較,以完成對所述第一數(shù)據(jù)分組內(nèi)的數(shù)據(jù)分塊的重復(fù)塊檢索。結(jié)合第四方面的第四種可能的實現(xiàn)方式,在第四方面的第五種可能的實現(xiàn)方式中,所述重復(fù)檢索單元還用于在將編號η對應(yīng)存儲區(qū)域中的數(shù)據(jù)分塊和數(shù)據(jù)分塊的哈希值加載到內(nèi)存中的同時,將編號(η+1)對應(yīng)存儲區(qū)域中的數(shù)據(jù)分塊和數(shù)據(jù)分塊的哈希值加載到內(nèi)存中;所述重復(fù)檢索單元具體用于將所述第一數(shù)據(jù)分組中與所述編號η對應(yīng)存儲區(qū)域中哈希值相同的數(shù)據(jù)分塊進行比較,以完成對所述第一數(shù)據(jù)分組內(nèi)的數(shù)據(jù)分塊的重復(fù)塊檢索包括:所述重復(fù)檢索單元具體用于將所述第一數(shù)據(jù)分組中與所述編號η和編號(η+1)對應(yīng)存儲區(qū)域中哈希值相同的數(shù)據(jù)分塊進行比較,以完成對所述第一數(shù)據(jù)分組內(nèi)的數(shù)據(jù)分塊的重復(fù)塊檢索。結(jié)合第四方面或第四方面的第一種可能的實現(xiàn)方式或第四方面的第二種可能的實現(xiàn)方式或第四方面的第三種可能的實現(xiàn)方式或第四方面的第四種可能的實現(xiàn)方式或第四方面的第五種可能的實現(xiàn)方式,在第四方面的第六種可能的實現(xiàn)方式中,所述哈希計算單元用于獲取哈希值存儲表中與所述第一數(shù)據(jù)分組的哈希值相似度大于或等于預(yù)設(shè)的第一相似度閾值的第一哈希值包括:所述哈希計算單元具體用于獲取所述哈希值存儲表中與所述第一數(shù)據(jù)分組的哈希值對應(yīng)位置上的重復(fù)位的個數(shù)大于或等于預(yù)設(shè)數(shù)量的哈希值作為所述第一哈希值。結(jié)合第四方面的第六種可能的實現(xiàn)方式,在第四方面的第七種可能的實現(xiàn)方式中,所述哈希計算單元具體用于獲取所述哈希值存儲表中與所述第一數(shù)據(jù)分組的哈希值對應(yīng)位置上的重復(fù)位的個數(shù)大于或等于預(yù)設(shè)數(shù)量的哈希值作為所述第一哈希值包括:所述哈希值計算單元具體用于獲取所述第一數(shù)據(jù)分組的哈希值與所述哈希值存儲表中每個哈希值之間的漢明距離,將漢明距離小于或等于預(yù)設(shè)漢明距離閾值的所述哈希值存儲表中的哈希值作為所述第一哈希值。本發(fā)明實施例提供的重復(fù)數(shù)據(jù)檢索方法及設(shè)備,對接收到的數(shù)據(jù)先分塊,再分組,對數(shù)據(jù)分組內(nèi)的數(shù)據(jù)分塊進行相似性哈希運算,得到數(shù)據(jù)分組的哈希值,然后獲取數(shù)據(jù)分組的哈希值與哈希值存儲表中存儲的已經(jīng)存儲到數(shù)據(jù)存儲空間中的各數(shù)據(jù)分組的哈希值相似度大于或等于預(yù)設(shè)第一相似度閾值的第一哈希值,判斷數(shù)據(jù)分組的哈希值與第一哈希值的相似度是否大于或等于預(yù)設(shè)的第二相似度閾值,如果大于,說明該數(shù)據(jù)分組中的數(shù)據(jù)分塊在很大程度上是重復(fù)塊,然后對其進行重復(fù)塊檢索,由于查詢哈希值存儲表中存儲的是已經(jīng)存儲到數(shù)據(jù)存儲空間中的數(shù)據(jù)分組的哈希值和數(shù)據(jù)分組的對應(yīng)關(guān)系,而數(shù)據(jù)分組的數(shù)量相對較少,所以查詢哈希值存儲表的效率較高,并且基于數(shù)據(jù)分組進行重復(fù)塊檢索減少了重復(fù)塊檢索的次數(shù),即減少了與磁盤交互的次數(shù),有利于提高重復(fù)塊查詢效率,從而提高了重復(fù)數(shù)據(jù)刪除技術(shù)的整體性能。
為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作一簡單地介紹,顯而易見地,下面描述中的附圖是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。圖1為本發(fā)明一實施例提供的重復(fù)數(shù)據(jù)檢索方法的流程圖;圖2為本發(fā)明一實施例提供的相似性哈希運算過程示意圖;圖3為本發(fā)明一實施例提供的重復(fù)數(shù)據(jù)檢索設(shè)備的結(jié)構(gòu)示意圖;圖4為本發(fā)明另一實施例提供的重復(fù)數(shù)據(jù)檢索設(shè)備的結(jié)構(gòu)示意圖;圖5為本發(fā)明又一實施例提供的重復(fù)數(shù)據(jù)檢索設(shè)備的結(jié)構(gòu)示意圖;圖6為本發(fā)明一實施例提供的計算機程序產(chǎn)品的結(jié)構(gòu)示意圖。
具體實施例方式為使本發(fā)明實施例的目的、技術(shù)方案和優(yōu)點更加清楚,下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例是本發(fā)明一部分實施例,而不是全部的實施例。基于本發(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。圖1為本發(fā)明一實施例提供的重復(fù)數(shù)據(jù)檢索方法的流程圖。如圖1所示,本實施例的方法包括:步驟101、對接收到的數(shù)據(jù)進行分塊處理,獲取至少兩個數(shù)據(jù)分塊。本實施例的執(zhí)行主體可以是重復(fù)數(shù)據(jù)檢索設(shè)備,該設(shè)備在實現(xiàn)形態(tài)上可以是各種具有計算能力的設(shè)備,例如可以是數(shù)據(jù)備份環(huán)境中的服務(wù)器、計算機等,還可以是廣域網(wǎng)數(shù)據(jù)傳輸場景中的終端、網(wǎng)關(guān)、基站等。重復(fù)數(shù)據(jù)檢索設(shè)備接收到待存儲的數(shù)據(jù)后,首先對數(shù)據(jù)進行分塊,獲取至少兩個數(shù)據(jù)分塊??蛇x的,重復(fù)數(shù)據(jù)檢索設(shè)備對數(shù)據(jù)進行分塊處理可以采用分塊算法,例如可以是但不限于固定分塊(Fixed-Sized Partition,簡稱FSP)算法、可變分塊(Content-DefinedChunking,簡稱為⑶C)算法、滑動塊(英文為sliding block)算法。數(shù)據(jù)分塊的大小視所采用的分塊算法以及實際應(yīng)用需求而定,本發(fā)明實施例對其具體值不做限定。關(guān)于使用各種分塊算法對數(shù)據(jù)進行分塊處理的過程屬于現(xiàn)有技術(shù),在此不再詳述,可參見現(xiàn)有技術(shù)。步驟102、對所述至少兩個數(shù)據(jù)分塊進行分組,得到至少一個數(shù)據(jù)分組,每個數(shù)據(jù)分組包括至少一個數(shù)據(jù)分塊。重復(fù)數(shù)據(jù)檢索設(shè)備對數(shù)據(jù)進行分塊處理獲取數(shù)據(jù)分塊之后,再對獲取的數(shù)據(jù)分塊進行分組處理,獲取數(shù)據(jù)分組,數(shù)據(jù)分組的個數(shù)可以是小于數(shù)據(jù)分塊的個數(shù)。該分組處理實際上就是將獲取的數(shù)據(jù)分塊劃分到不同的數(shù)據(jù)分組中,具體分組方式可以有多種。例如,重復(fù)數(shù)據(jù)檢索設(shè)備可以按照每個數(shù)據(jù)分組包括相同個數(shù)的數(shù)據(jù)分塊的原則,依次對多個數(shù)據(jù)分塊進行劃分,形成至少一個數(shù)據(jù)分組。又例如,重復(fù)數(shù)據(jù)檢索設(shè)備還可以對劃分出的數(shù)據(jù)分塊再次采用分塊算法得到至少一個數(shù)據(jù)分組。該實施方式包括:由上述劃分出的至少兩個數(shù)據(jù)分塊中每個數(shù)據(jù)分塊的哈希值構(gòu)成待分塊哈希數(shù)據(jù);以所述至少兩個數(shù)據(jù)分塊中任一個數(shù)據(jù)分塊的哈希值的長度(每個數(shù)據(jù)分塊的哈希值的長度均相同)為滑動步長,采用分塊算法對該待分塊哈希數(shù)據(jù)進行分塊處理,得到至少一個哈希值分塊。滑動步長是指在待分塊哈希數(shù)據(jù)上滑動時最小的滑動距離,使用分塊算法獲得的哈希值分塊可以通過一次或多次滑動等到。由于分算算法使用的滑動步長是以哈希值的長度為單位的,所以哈希值分塊都是由一個或多個完整的哈希值構(gòu)成的。如果分塊算法中得到一個哈希值分塊的滑動距離是多個滑動步長(即經(jīng)過多次滑動),則該哈希值分塊就由多個哈希值構(gòu)成;如果分塊算法中得到一個哈希值分塊的滑動距離是一個滑動步長(即經(jīng)過一次滑動),則該哈希值分塊就由一個哈希值構(gòu)成。在得到哈希值分塊后,將屬于同一哈希值分塊的哈希值對應(yīng)的數(shù)據(jù)分塊作為一個數(shù)據(jù)分組,這樣就得到了至少一個數(shù)據(jù)分組,并且,采用這樣的分組方式,使得每個數(shù)據(jù)分組的結(jié)束位置就是一個分塊的結(jié)束位置,分組的劃分更準確。其中,采用分塊算法對待分塊哈希數(shù)據(jù)進行分塊處理的過程與現(xiàn)有分塊算法的過程相類似,不再贅述。由上述至少兩個數(shù)據(jù)分塊中每個數(shù)據(jù)分塊的哈希值構(gòu)成待分塊哈希數(shù)據(jù)的過程包括:計算所述至少兩個數(shù)據(jù)分塊中每個數(shù)據(jù)分塊的哈希值,將這些哈希值連接在一起構(gòu)成待分塊哈希數(shù)據(jù)。其中,每個數(shù)據(jù)分組中的數(shù)據(jù)分塊是連續(xù)的,即每個數(shù)據(jù)分組由連續(xù)的數(shù)據(jù)分塊構(gòu)成。其中,各數(shù)據(jù)分組所包含的數(shù)據(jù)分塊個數(shù)可以相同,也可以不相同。并且,數(shù)據(jù)分組所包含的數(shù)據(jù)分塊個數(shù)可根據(jù)實際應(yīng)用而定,本發(fā)明實施例對其具體值也不做限定。經(jīng)過上述分組處理后,可以基于數(shù)據(jù)分組進行重復(fù)塊檢索有利于減少進行重復(fù)塊檢索的次數(shù),減少與磁盤的交互,有利于提高重復(fù)塊檢索效率。步驟103、針對上述至少一個數(shù)據(jù)分組中的第一數(shù)據(jù)分組,對第一數(shù)據(jù)分組內(nèi)的數(shù)據(jù)分塊進行相似性哈希運算(similarly hash,或simhash),獲取第一數(shù)據(jù)分組的哈希值,獲取哈希值存儲表中與第一數(shù)據(jù)分組的哈希值相似度大于或等于預(yù)設(shè)的第一相似度閾值的第一哈希值,如果第一數(shù)據(jù)分組的哈希值與第一哈希值的相似度大于或等于預(yù)設(shè)的第二相似度閾值,對第一數(shù)據(jù)分組內(nèi)的數(shù)據(jù)分塊進行重復(fù)塊檢索。其中,由于對每個數(shù)據(jù)分組的處理都是相同的,所以本實施例以其中任意一個數(shù)據(jù)分組為例進行說明,為便于區(qū)分將其記為第一數(shù)據(jù)分組,也就是說,第一數(shù)據(jù)分組可以是上述獲得的至少一個數(shù)據(jù)分組中的任意一個數(shù)據(jù)分組。哈希值存儲表中存儲有當前已經(jīng)存儲在數(shù)據(jù)存儲空間中的第二數(shù)據(jù)分組的哈希值和第二數(shù)據(jù)分組的對應(yīng)關(guān)系。為便于區(qū)分和描述,將當前已經(jīng)存儲在數(shù)據(jù)存儲空間中的數(shù)據(jù)分組記為第二數(shù)據(jù)分組。其中,哈希值存儲表中存儲的第二數(shù)據(jù)分組的哈希值的計算方法與本實施例中第一數(shù)據(jù)分組的哈希值的計算方法相同,即第二數(shù)據(jù)分組的哈希值也是對第二數(shù)據(jù)分組內(nèi)的數(shù)據(jù)分塊進行相似性哈希運算獲得的,另外這些哈希值對應(yīng)的數(shù)據(jù)塊彼此之間不存在重復(fù),即第二數(shù)據(jù)分組中的數(shù)據(jù)分塊被判定為不是重復(fù)塊。數(shù)據(jù)存儲空間是指用于存儲數(shù)據(jù)分塊的存儲空間,可以是硬盤、磁盤等??蛇x的,由于哈希值存儲表中存儲的是已經(jīng)存儲在數(shù)據(jù)存儲空間中的數(shù)據(jù)分組的哈希值,又因為本實施例的數(shù)據(jù)分組是否數(shù)據(jù)分塊構(gòu)成的,數(shù)據(jù)分組的數(shù)量不大于數(shù)據(jù)分塊的數(shù)量,這樣在數(shù)據(jù)分組的數(shù)量小于數(shù)據(jù)分塊的數(shù)量的情況下,與存儲每個數(shù)據(jù)分塊的哈希表相比,本實施例的哈希值存儲表就會小很多,所以可以存儲在內(nèi)存中,這樣有利于提高查詢哈希值存儲表的效率,有利于進一步提高重復(fù)塊檢索的效率。其中,哈希值存儲表并不限于存儲在內(nèi)存中,還可以存儲在磁盤或其他存儲設(shè)備上,但優(yōu)選存儲在內(nèi)存中。本實施例的哈希值存儲表在實現(xiàn)方式上可以采用稀疏哈希表,但不限于此。重復(fù)數(shù)據(jù)檢索設(shè)備在獲取到數(shù)據(jù)分組之后,對每個數(shù)據(jù)分組會進行相同的處理,本實施例以第一數(shù)據(jù)分組為例,則重復(fù)數(shù)據(jù)檢索設(shè)備對第一數(shù)據(jù)分組進行以下處理:首先,對第一數(shù)據(jù)分組內(nèi)的數(shù)據(jù)分塊進行相似性哈希運算,獲取第一數(shù)據(jù)分組的哈希值。相似性哈希的原理是兩個數(shù)據(jù)分塊的相似度越高,對其計算的哈希值的相似度也會越大,反之亦然。相似性哈希運算是能夠使相似度越高的數(shù)據(jù)分塊的哈希值的相似度越高的運算方法。例如,一種對第一數(shù)據(jù)分組進行相似性哈希運算的方法包括:對第一數(shù)據(jù)分組內(nèi)的每個數(shù)據(jù)分塊進行哈希運算,獲取第一數(shù)據(jù)分組內(nèi)每個數(shù)據(jù)分塊的哈希值;將第一數(shù)據(jù)分組內(nèi)每個數(shù)據(jù)分塊的哈希值以二進制方式表示,對所述以二進制方式表示的哈希值中的每一個位進行轉(zhuǎn)換,具體實現(xiàn)時可以將值為O的二進制位替換為-1,值為I的二進制位保持不變,然后將轉(zhuǎn)換后的哈希值累加,具體實現(xiàn)時可以將所述每一個轉(zhuǎn)換后的哈希值的對應(yīng)位相加,將相加之和大于O的位映射為1,將相加之和小于或等于O的位映射為0,由此獲得的二進制數(shù)值作為該第一數(shù)據(jù)分組的哈希值。結(jié)合圖2對相似性哈希運算的優(yōu)選實施過程進行說明。如圖2所示,第一數(shù)據(jù)分組包括η個數(shù)據(jù)分塊,分別為第一數(shù)據(jù)分塊-第η數(shù)據(jù)分塊,對每個數(shù)據(jù)分塊進行哈希運算獲得二進制形式的哈希值,圖2示出了第一數(shù)據(jù)分塊、第二數(shù)據(jù)分塊和第η數(shù)據(jù)分塊的二進制形式的哈希值分別為100110、110000和001001,將每個數(shù)據(jù)分塊的二進制形式的哈希值中的O替換為-1,上述第一數(shù)據(jù)分塊、第二數(shù)據(jù)分塊和第η數(shù)據(jù)分塊的替換后的二進制形式的哈希值分別為1-1-111-1、11-1-1-1-1和-1-11-1-11,依次將η個數(shù)據(jù)分塊的替換后的哈希值中的相應(yīng)位相加,最終得到13,18,-22,-5,-2,5這一結(jié)果,將該結(jié)果中大于O的數(shù)值映射為I,小于或等于O的數(shù)值映射為0,得到二進制的110001,該二進制形式的110001即為上述第一數(shù)據(jù)分組的哈希值。除了上述方法完成本實施例涉及的對第一數(shù)據(jù)分組內(nèi)的數(shù)據(jù)分塊進行的一種相似性哈希運算之外,還可以采用另一種相似性哈希運算,例如感知哈希算法(Perceptualhash algorithm),來完成本實施例涉及的對第一數(shù)據(jù)分組內(nèi)的數(shù)據(jù)分塊進行的相似性哈希運算。感知哈希運算的原理是對每張圖片生成一個"指紋"(英文為fingerprint)字符串,然后比較不同圖片的指紋,比較結(jié)果的相似度越高,說明圖片的相似度越高;而將其應(yīng)用到本實施例提供的重復(fù)數(shù)據(jù)檢索方法中,其原理是對每個數(shù)據(jù)分組計算一個哈希值,然后比較不同數(shù)據(jù)分組的哈希值,如果兩個哈希值的相似度越高,就說明兩個數(shù)據(jù)分組中可能發(fā)生重復(fù)的數(shù)據(jù)塊就越多(即兩個數(shù)據(jù)分組的相似度就越大)。本實施例通過引入相似性哈希運算,充分利用哈希值相似度越高,對應(yīng)數(shù)據(jù)分組的相似度就越高這一特性,通過將計算出的數(shù)據(jù)分組的哈希值與已經(jīng)存在的數(shù)據(jù)分組的哈希值進行比較就能夠在一定程度上體現(xiàn)該數(shù)據(jù)分組內(nèi)各數(shù)據(jù)分塊與已經(jīng)存儲在數(shù)據(jù)存儲空間中的數(shù)據(jù)分塊發(fā)生重復(fù)的可能性,如果計算出的數(shù)據(jù)分組的哈希值與已經(jīng)存在的數(shù)據(jù)分組的哈希值的相似度越高,說明該數(shù)據(jù)分組內(nèi)數(shù)據(jù)分塊發(fā)生重復(fù)的可能性就越大,此時若基于數(shù)據(jù)分組的哈希值確定該數(shù)據(jù)分組需要進行重復(fù)塊檢索,說明該數(shù)據(jù)分組內(nèi)的數(shù)據(jù)分塊在很大程度是重復(fù)塊,這時候進行重復(fù)塊檢索就提高了重復(fù)塊檢索的性能。下面通過一種比較的方式說明本實施例的方法能夠提高重復(fù)塊檢索的性能。接著,當重復(fù)數(shù)據(jù)檢索設(shè)備計算出第一數(shù)據(jù)分組的哈希值后,將該第一數(shù)據(jù)分組的哈希值與哈希值存儲表中的各哈希值進行比較,獲取與該第一數(shù)據(jù)分組的哈希值相似度大于或等于預(yù)設(shè)第一相似度閾值的哈希值,記為第一哈希值??蛇x的,在具體實現(xiàn)時,如果大于或等于預(yù)設(shè)第一相似度閾值的哈希值有多個,則可以獲取所述多個哈希值,其中每個哈希都屬于第一哈希值;如果大于或等于預(yù)設(shè)第一相似度閾值的哈希值有一個,則將該哈希值作為第一哈希值,即獲取的第一哈希值為一個。優(yōu)選的,可以獲取哈希值存儲表中與該第一數(shù)據(jù)分組的哈希值相似度最大的哈希值作為第一哈希值,但不限于此。這里獲取與該第一數(shù)據(jù)分組的哈希值相似度大于或等于預(yù)設(shè)第一相似度閾值的哈希值的實施方式可以是:重復(fù)數(shù)據(jù)檢索設(shè)備獲取哈希值存儲表中與第一數(shù)據(jù)分組的哈希值對應(yīng)位置上重復(fù)位的個數(shù)大于或等于預(yù)設(shè)數(shù)量的哈希值作為第一哈希值。在該實施方式中,兩個哈希值對應(yīng)位置上重復(fù)位的多少表征了兩個哈希值的相似度;如果兩個哈希值對應(yīng)位置上重復(fù)位越多,說明這兩個哈希值的相似度越高;反之亦然。這里的預(yù)設(shè)數(shù)量相當于上述預(yù)設(shè)第一相似度閾值。進一步,重復(fù)數(shù)據(jù)檢索設(shè)備獲取哈希值存儲表中與第一數(shù)據(jù)分組的哈希值對應(yīng)位置上重復(fù)位大于或等于預(yù)設(shè)數(shù)量的哈希值作為第一哈希值的一種實施方式包括:重復(fù)數(shù)據(jù)檢索設(shè)備獲取第一數(shù)據(jù)分組的哈希值與哈希值存儲表中每個哈希值之間的漢明距離,將漢明距離小于或等于預(yù)設(shè)漢明距離閾值的哈希值存儲表中的哈希值作為第一哈希值。其中,第一數(shù)據(jù)分組的哈希值與哈希值存儲表中各哈希值之間的漢明距離在一定程度上體現(xiàn)了第一數(shù)據(jù)分組與哈希值存儲表中各哈希值對應(yīng)的第二數(shù)據(jù)分組之間的重復(fù)程度。漢明距離越小(即重復(fù)位數(shù)越多)表明第一數(shù)據(jù)分組與對應(yīng)的第二數(shù)據(jù)分組之間的重復(fù)程度越高。另夕卜,除了使用漢明距離外,還可以使用能夠表示兩個哈希值的相似度的其他參數(shù)。這里的預(yù)設(shè)漢明距離閾值相當于上述預(yù)設(shè)數(shù)量。接著,重復(fù)數(shù)據(jù)檢索設(shè)備將上述第一數(shù)據(jù)分組的哈希值與第一哈希值的相似度與預(yù)設(shè)第二相似度閾值進行比較,用來判斷第一數(shù)據(jù)分組是否需要進行重復(fù)塊檢索。如果第一數(shù)據(jù)分組的哈希值與第一哈希值的相似度大于或等于該第二相似度閾值,說明第一數(shù)據(jù)分組與第一哈希值對應(yīng)的第二數(shù)據(jù)分組之間的重復(fù)度非常高,可以判定兩者之間存在較多重復(fù)塊,因此,需要對第一數(shù)據(jù)分組進行重復(fù)塊檢索??蛇x的,如果使用兩個哈希值對應(yīng)位置上重復(fù)位的多少來表征兩個哈希值的相似度,則這里的第二相似度閾值可以是重復(fù)位數(shù)閾值。相應(yīng)的,重復(fù)數(shù)據(jù)檢索設(shè)備將上述第一數(shù)據(jù)分組的哈希值與第一哈希值的相似度與預(yù)設(shè)第二相似度閾值進行比較可以是:重復(fù)數(shù)據(jù)檢索設(shè)備判斷第一數(shù)據(jù)分組的哈希值與第一哈希值對應(yīng)位置上重復(fù)位數(shù)是否大于或等于預(yù)設(shè)重復(fù)位數(shù)閾值。在此說明,第二相似度閾值大于或等于第一相似度閾值??蛇x的,數(shù)據(jù)存儲空間包括多個存儲區(qū)域,每個存儲區(qū)域有一個編號,按照編號由小到大的順序依次使用各存儲區(qū)域。相應(yīng)地,哈希值存儲表中除了存儲有第二數(shù)據(jù)分組的哈希值與第二數(shù)據(jù)分組的對應(yīng)關(guān)系,從對應(yīng)關(guān)系中可以了解到與第二數(shù)據(jù)分組的哈希值對應(yīng)的第二數(shù)據(jù)分組所在存儲區(qū)域的編號的對應(yīng)關(guān)系。基于此,上述對第一數(shù)據(jù)分組進行重復(fù)塊檢索的過程可以是:重復(fù)數(shù)據(jù)檢索設(shè)備從哈希值存儲表中獲取第一哈希值對應(yīng)的存儲區(qū)域的編號n,將編號η對應(yīng)存儲區(qū)域中的數(shù)據(jù)分塊和數(shù)據(jù)分塊的哈希值加載到內(nèi)存中,這里的η是大于等于O的整數(shù);然后將第一數(shù)據(jù)分組中與編號η對應(yīng)存儲區(qū)域中哈希值相同的數(shù)據(jù)分塊進行比較,以完成對第一數(shù)據(jù)分組內(nèi)的數(shù)據(jù)分塊的重復(fù)塊檢索。可選的,在將編號η對應(yīng)存儲區(qū)域中的數(shù)據(jù)分塊和數(shù)據(jù)分塊的哈希值加載到內(nèi)存中的同時,將編號(η+1)對應(yīng)存儲區(qū)域中的數(shù)據(jù)分塊和數(shù)據(jù)分塊的哈希值也加載到內(nèi)存中的?;诖?,上述將第一數(shù)據(jù)分組中與編號η對應(yīng)存儲區(qū)域中哈希值相同的數(shù)據(jù)分塊進行比較,以完成對第一數(shù)據(jù)分組內(nèi)的數(shù)據(jù)分塊的重復(fù)塊檢索的過程可以是:將第一數(shù)據(jù)分組中與編號η和編號(η+1)對應(yīng)存儲區(qū)域中哈希值相同的數(shù)據(jù)分塊進行比較,以完成對第一數(shù)據(jù)分組內(nèi)的數(shù)據(jù)分塊的重復(fù)塊檢索。這里將第一數(shù)據(jù)分組中與編號η和編號(η+1)對應(yīng)存儲區(qū)域中哈希值相同的數(shù)據(jù)分塊進行比較,以完成對第一數(shù)據(jù)分組內(nèi)的數(shù)據(jù)分塊的重復(fù)塊檢索的過程可以是:先將第一數(shù)據(jù)分組中每個數(shù)據(jù)分塊的哈希值分別與編號η和編號(η+1)對應(yīng)的存儲區(qū)域中的哈希值進行比較,得到第一數(shù)據(jù)分組中與編號η和編號(η+1)對應(yīng)的存儲區(qū)域中相同的哈希值,為便于描述,將這里得到的相同的哈希值即為第二哈希值,然后將第二哈希值在該數(shù)據(jù)分組中對應(yīng)的數(shù)據(jù)分塊和第二哈希值在編號η和編號(η+1)對應(yīng)存儲區(qū)域中對應(yīng)的數(shù)據(jù)分塊進行比較,以完成對第一數(shù)據(jù)分組內(nèi)的數(shù)據(jù)分塊的重復(fù)塊檢索。其中,由于各存儲區(qū)域是按照編號由小到大的順序依次使用的,所以編號(η+1)對應(yīng)存儲區(qū)域是編號η對應(yīng)存儲區(qū)域的下一個存儲區(qū)域,也就是說,當編號η對應(yīng)存儲區(qū)域被寫滿后,再繼續(xù)往編號(η+1)對應(yīng)存儲區(qū)域中寫入數(shù)據(jù)。因為接下來收到的數(shù)據(jù)很有可能就在第一哈希值對應(yīng)的存儲區(qū)域的下一個存儲區(qū)域(即編號為(η+1)的存儲區(qū)域)內(nèi)有重復(fù)數(shù)據(jù),所以一次性將第一哈希值對應(yīng)的存儲區(qū)域(即編號為η的存儲區(qū)域)和第一哈希值對應(yīng)的存儲區(qū)域的下一個存儲區(qū)域的內(nèi)容都加在到內(nèi)存中,有利于提高后續(xù)重復(fù)塊檢索過程的效率,進而有利于從整體上提高重復(fù)塊檢索的效率。在此說明,本實施例采用不同存儲區(qū)域進行數(shù)據(jù)分塊和數(shù)據(jù)分塊的哈希值的存儲,但不限于此。較為優(yōu)選的分區(qū)存儲方式為:按照接收數(shù)據(jù)分塊的順序,集中存儲到一個存儲區(qū)域內(nèi),當該存儲區(qū)域滿后,將接收到的數(shù)據(jù)分塊存儲到下一個存儲區(qū)域中。其中,每個存儲區(qū)域是一段存儲空間,每個存儲區(qū)域有一定的大小,例如可以是但不限于64ΜΒ。在每個存儲區(qū)域中同時存儲有數(shù)據(jù)分塊和數(shù)據(jù)分塊的哈希值,具體存儲方式不作限定。存儲區(qū)域的一種優(yōu)選存儲方式為:存儲區(qū)域內(nèi)分為兩部分,一部分為數(shù)據(jù)段區(qū)域,該數(shù)據(jù)段區(qū)域存儲的是數(shù)據(jù)分塊;另一部分是元數(shù)據(jù)區(qū)域,該元數(shù)據(jù)區(qū)域存儲的是和所述數(shù)據(jù)段區(qū)域中的數(shù)據(jù)分塊對應(yīng)的元數(shù)據(jù),這里的元數(shù)據(jù)包括數(shù)據(jù)分塊的哈希值、數(shù)據(jù)分塊的長度、數(shù)據(jù)段的長度、以及一些校驗碼等信息,在本發(fā)明重復(fù)數(shù)據(jù)查找的過程中,主要是利用元數(shù)據(jù)中的數(shù)據(jù)分塊的哈希值。可選的,如果上述步驟103中通過進行相似性哈希運算獲得的第一數(shù)據(jù)分組的哈希值與第一哈希值的相似度小于預(yù)設(shè)的第二相似度閾值,說明第一數(shù)據(jù)分組與第一哈希值對應(yīng)的第二數(shù)據(jù)分組之間的重復(fù)度不是很高,可以判定兩者之間不存在重復(fù)塊或重復(fù)塊數(shù)量非常少,例如可能第一數(shù)據(jù)分組中僅存在一兩個數(shù)據(jù)分塊與該第一哈希值對應(yīng)的第二數(shù)據(jù)分組中的數(shù)據(jù)分塊存在重復(fù),為了提高整體性能,可以將第一數(shù)據(jù)分組中的數(shù)據(jù)分塊作為新數(shù)據(jù)進行處理,即不進行重復(fù)塊檢索而是直接存儲到數(shù)據(jù)存儲空間中。進一步,如果數(shù)據(jù)存儲空間包括多個存儲區(qū)域,則重復(fù)數(shù)據(jù)檢索設(shè)備可以直接將第一數(shù)據(jù)分組內(nèi)的數(shù)據(jù)分塊以及數(shù)據(jù)分塊的哈希值存儲到當前使用的存儲區(qū)域中。由上可見,本實施例提供的重復(fù)數(shù)據(jù)檢索方法,對接收到的數(shù)據(jù)先分塊,再分組,對數(shù)據(jù)分組內(nèi)的數(shù)據(jù)分塊進行相似性哈希運算,獲取數(shù)據(jù)分組的哈希值,然后獲取數(shù)據(jù)分組的哈希值與哈希值存儲表中存儲的已經(jīng)存儲到數(shù)據(jù)存儲空間中的各數(shù)據(jù)分組的哈希值中相似度大于或等于預(yù)設(shè)第一相似度閾值的第一哈希值,判斷數(shù)據(jù)分組的哈希值與第一哈希值的相似度是否大于或等于預(yù)設(shè)的第二相似度閾值,如果大于,說明該數(shù)據(jù)分組中的數(shù)據(jù)分塊在很大程度上是重復(fù)塊,然后對其進行重復(fù)塊檢索,由于查詢哈希值存儲表中存儲的是已經(jīng)存儲到數(shù)據(jù)存儲空間中的數(shù)據(jù)分組的哈希值和數(shù)據(jù)分組的對應(yīng)關(guān)系,而數(shù)據(jù)分組的數(shù)量相對較少,所以查詢哈希值存儲表的效率較高,并且基于數(shù)據(jù)分組進行重復(fù)塊檢索減少了重復(fù)塊檢索的次數(shù),即減少了與磁盤交互的次數(shù),有利于提高重復(fù)塊查詢效率,從而提高了重復(fù)數(shù)據(jù)刪除技術(shù)的整體性能。圖3為本發(fā)明一實施例提供的重復(fù)數(shù)據(jù)檢索設(shè)備的結(jié)構(gòu)示意圖。本實施例的重復(fù)數(shù)據(jù)檢索設(shè)備在具體實現(xiàn)形態(tài)上可以是各種具有計算能力和存儲能力的設(shè)備,例如可以是數(shù)據(jù)備份環(huán)境中的服務(wù)器、計算機等,還可以是廣域網(wǎng)數(shù)據(jù)傳輸場景中的終端、網(wǎng)關(guān)、基站等等,本發(fā)明具體實施例并不對重復(fù)數(shù)據(jù)檢索設(shè)備的具體實現(xiàn)做限定。如圖3所示,本實施例的設(shè)備包括:分塊獲取模塊31、分組獲取模塊32、哈希計算模塊33和重復(fù)檢索模塊34。其中,分塊獲取模塊31,用于對接收到的數(shù)據(jù)進行分塊處理,獲取至少兩個數(shù)據(jù)分塊。分組獲取模塊32,與分塊獲取模塊31連接,用于對分塊獲取模塊31獲取的至少兩個數(shù)據(jù)分塊進行分組,獲取至少一個數(shù)據(jù)分組,每個數(shù)據(jù)分組包括至少一個數(shù)據(jù)分塊。哈希計算模塊33,與分組獲取模塊32連接,用于針對分組獲取模塊32獲取的至少一個數(shù)據(jù)分組中的第一數(shù)據(jù)分組,對該第一數(shù)據(jù)分組內(nèi)的數(shù)據(jù)分塊進行相似性哈希運算,獲取該第一數(shù)據(jù)分組的哈希值,獲取哈希值存儲表中與該第一數(shù)據(jù)分組的哈希值相似度大于或等于預(yù)設(shè)的第一相似度閾值的第一哈希值,該哈希值存儲表中存儲有已經(jīng)存儲在數(shù)據(jù)存儲空間中的第二數(shù)據(jù)分組的哈希值和第二數(shù)據(jù)分組的對應(yīng)關(guān)系,所述第二數(shù)據(jù)分組的哈希值是根據(jù)第二數(shù)據(jù)分組內(nèi)的數(shù)據(jù)分塊進行相似性哈希運算獲得的;所述第一數(shù)據(jù)分組是至少一個數(shù)據(jù)分組中的任意一個數(shù)據(jù)分組。重復(fù)檢索模塊34,與哈希計算模塊33連接,用于在第一數(shù)據(jù)分組的哈希值與哈希計算模塊33獲取的第一哈希值的相似度大于或等于預(yù)設(shè)第二相似度閾值時,對第一數(shù)據(jù)分組內(nèi)的數(shù)據(jù)分塊進行重復(fù)塊檢索。在一可選實施方式中,如圖4所示,本實施例的重復(fù)數(shù)據(jù)檢索設(shè)備還包括:存儲模塊35。存儲模塊35,與哈希計算模塊33連接,用于在第一數(shù)據(jù)分組的哈希值與哈希計算模塊33獲取的第一哈希值的相似度小于第二相似度閾值時,將第一數(shù)據(jù)分組內(nèi)的數(shù)據(jù)分塊和第一數(shù)據(jù)分組內(nèi)的數(shù)據(jù)分塊的哈希值存儲到數(shù)據(jù)存儲空間中,并將第一數(shù)據(jù)分組的哈希值與第一數(shù)據(jù)分組的對應(yīng)關(guān)系存儲到哈希值存儲表中。在此說明,上述哈希計算模塊33、重復(fù)檢索模塊34以及存儲模塊35對每個數(shù)據(jù)分組均執(zhí)行相同的動作。在一可選實施方式中,分組獲取模塊32具體可用于由分塊獲取模塊31獲取到的至少兩個數(shù)據(jù)分塊中每個數(shù)據(jù)分塊的哈希值構(gòu)成待分塊哈希數(shù)據(jù),以至少兩個數(shù)據(jù)分塊中每個數(shù)據(jù)分塊的哈希值的長度為滑動步長,采用分塊算法對上述待分塊哈希數(shù)據(jù)進行分塊處理,得到至少一個哈希值分塊,將屬于同一哈希值分塊的哈希值對應(yīng)的數(shù)據(jù)分塊作為一個數(shù)據(jù)分組,從而得到至少一個數(shù)據(jù)分組。
在一可選實施方式中,哈希計算模塊33用于對上述第一數(shù)據(jù)分組內(nèi)的數(shù)據(jù)分塊進行相似性哈希運算,獲取上述第一數(shù)據(jù)分組的哈希值包括:哈希計算模塊33具體用于對上述第一數(shù)據(jù)分組內(nèi)每個數(shù)據(jù)分塊進行哈希運算,獲取第一數(shù)據(jù)分組中每個數(shù)據(jù)分塊的哈希值,將第一數(shù)據(jù)分組內(nèi)每個數(shù)據(jù)分塊的哈希值中的O替換為-1,將第一數(shù)據(jù)分組內(nèi)所有數(shù)據(jù)分塊的哈希值的對應(yīng)位相加,將相加大于O的位映射為I,將相加小于或等于O的位映射為0,獲得的二進制數(shù)值作為第一數(shù)據(jù)分組的哈希值。在一可選實施方式中,上述數(shù)據(jù)存儲空間包括多個存儲區(qū)域;相應(yīng)地,哈希值存儲表還存儲有第二數(shù)據(jù)分組的哈希值和第二數(shù)據(jù)分組所在存儲區(qū)域的編號的對應(yīng)關(guān)系?;诖?,重復(fù)檢索模塊34具體可用于從哈希值存儲表中獲取第一哈希值對應(yīng)存儲區(qū)域的編號η,將編號η對應(yīng)存儲區(qū)域中的數(shù)據(jù)分塊和數(shù)據(jù)分塊的哈希值加載到內(nèi)存中;其中,η為大于等于O的整數(shù);將第一數(shù)據(jù)分組中與編號η對應(yīng)存儲區(qū)域中哈希值相同的數(shù)據(jù)分塊進行比較,以完成對第一數(shù)據(jù)分組內(nèi)的數(shù)據(jù)分塊的重復(fù)塊檢索。在一可選實施方式中,重復(fù)檢索模塊34還用于在將編號η對應(yīng)存儲區(qū)域中的數(shù)據(jù)分塊和數(shù)據(jù)分塊的哈希值加載到內(nèi)存中的同時,將編號(η+1)對應(yīng)存儲區(qū)域中的數(shù)據(jù)分塊和數(shù)據(jù)分塊的哈希值加載到內(nèi)存中?;诖?,重復(fù)檢索模塊34具體用于將第一數(shù)據(jù)分組中與編號η對應(yīng)存儲區(qū)域中哈希值相同的數(shù)據(jù)分塊進行比較,以完成對第一數(shù)據(jù)分組內(nèi)的數(shù)據(jù)分塊的重復(fù)塊檢索包括:重復(fù)檢索模塊34具體用于將第一數(shù)據(jù)分組中與編號η和編號(η+1)對應(yīng)存儲區(qū)域中哈希值相同的數(shù)據(jù)分塊進行比較,以完成對第一數(shù)據(jù)分組內(nèi)的數(shù)據(jù)分塊的重復(fù)塊檢索。在一可選實施方式中,哈希計算模塊33用于獲取哈希值存儲表中與第一數(shù)據(jù)分組的哈希值相似度大于或等于預(yù)設(shè)的第一相似度閾值的第一哈希值包括:哈希計算模塊33具體可用于獲取哈希值存儲表中與第一數(shù)據(jù)分組的哈希值對應(yīng)位置上的重復(fù)位的個數(shù)大于或等于預(yù)設(shè)數(shù)量的哈希值作為第一哈希值。哈希計算模塊33具體用于獲取哈希值存儲表中與第一數(shù)據(jù)分組的哈希值對應(yīng)位置上的重復(fù)位的個數(shù)大于或等于預(yù)設(shè)數(shù)量的哈希值作為第一哈希值包括:哈希計算模塊33具體可用于獲取上述數(shù)據(jù)分組的哈希值與哈希值存儲表中每個哈希值之間的漢明距離,將漢明距離小于或等于預(yù)設(shè)漢明距離閾值的哈希值存儲表中的哈希值作為第一哈希值。本發(fā)明實施例提供的重復(fù)數(shù)據(jù)檢索設(shè)備的各功能模塊可用于執(zhí)行圖1所示重復(fù)數(shù)據(jù)檢索方法的流程,其具體工作原理不再贅述,詳見方法實施例的描述。本實施例提供的重復(fù)數(shù)據(jù)檢索設(shè)備,對接收到的數(shù)據(jù)先分塊,再分組,對數(shù)據(jù)分組內(nèi)的數(shù)據(jù)分塊進行相似性哈希運算,獲取數(shù)據(jù)分組的哈希值,然后獲取數(shù)據(jù)分組的哈希值與哈希值存儲表中存儲的已經(jīng)存儲到數(shù)據(jù)存儲空間中的各數(shù)據(jù)分組的哈希值中相似度大于或等于預(yù)設(shè)第一相似度閾值的第一哈希值,判斷數(shù)據(jù)分組的哈希值與第一哈希值的相似度是否大于或等于預(yù)設(shè)的第二相似度閾值,如果大于,說明該數(shù)據(jù)分組中的數(shù)據(jù)分塊在很大程度上是重復(fù)塊,然后對其進行重復(fù)塊檢索,由于查詢哈希值存儲表中存儲的是已經(jīng)存儲到數(shù)據(jù)存儲空間中的數(shù)據(jù)分組的哈希值和數(shù)據(jù)分組的對應(yīng)關(guān)系,而數(shù)據(jù)分組的數(shù)量相對較少,所以查詢哈希值存儲表的效率較高,并且基于數(shù)據(jù)分組進行重復(fù)塊檢索減少了重復(fù)塊檢索的次數(shù),即減少了與磁盤交互的次數(shù),有利于提高重復(fù)塊查詢效率,從而提高了重復(fù)數(shù)據(jù)刪除技術(shù)的整體性能。
圖5為本發(fā)明又一實施例提供的重復(fù)數(shù)據(jù)檢索設(shè)備的結(jié)構(gòu)示意圖。本實施例的重復(fù)數(shù)據(jù)檢索設(shè)備在具體實現(xiàn)形態(tài)上可以是各種具有計算能力和存儲能力的設(shè)備,例如可以是數(shù)據(jù)備份環(huán)境中的服務(wù)器、計算機等,還可以是廣域網(wǎng)數(shù)據(jù)傳輸場景中的終端、網(wǎng)關(guān)、基站等等,本發(fā)明具體實施例并不對重復(fù)數(shù)據(jù)檢索設(shè)備的具體實現(xiàn)做限定。如圖5所示,本實施例的重復(fù)數(shù)據(jù)檢索設(shè)備包括:處理器51、通信接口 (Communications Interface) 53、存儲器52和總線;處理器51、存儲器52和通信接口 53通過總線連接并完成相互間的通信。所述總線可以是工業(yè)標準體系結(jié)構(gòu)(Industry Standard Architecture,簡稱為ISA)總線、外部設(shè)備互連(Peripheral Component,簡稱為PCI)總線或擴展工業(yè)標準體系結(jié)構(gòu)(Extended IndustryStandard Architecture,簡稱為EISA)總線等。所述總線可以分為地址總線、數(shù)據(jù)總線、控制總線等。為便于表示,圖5中僅用一條粗線表示,但并不表示僅有一根總線或一種類型的總線。其中:通信接口 53,用于接收數(shù)據(jù)。處理器51,用于執(zhí)行程序。具體地,該程序可以包括程序代碼,所述程序代碼包括計算機操作指令。處理器51可能是一個中央處理器(CPU),者是特定集成電路(ApplicationSpecific Integrated Circuit,以下簡稱為ASIC),或者是被配置成實施本發(fā)明實施例的一個或多個集成電路。存儲器52,用于存儲程序。存儲器52可能包含高速RAM存儲器,也可能還包括非易失性存儲器(non-volatile memory),例如至少一個磁盤存儲器。上述程序具體可以用于:對通信接口 53接收到的數(shù)據(jù)進行分塊處理,獲取至少兩個數(shù)據(jù)分塊;對所述至少兩個數(shù)據(jù)分塊進行分組,得到至少一個數(shù)據(jù)分組,每個數(shù)據(jù)分組包括至少一個數(shù)據(jù)分塊;針對至少一個數(shù)據(jù)分組中的第一數(shù)據(jù)分組,對第一數(shù)據(jù)分組內(nèi)的數(shù)據(jù)分塊進行相似性哈希運算,獲取第一數(shù)據(jù)分組的哈希值,獲取哈希值存儲表中與第一數(shù)據(jù)分組的哈希值相似度大于或等于預(yù)設(shè)的第一相似度閾值的第一哈希值,所述哈希值存儲表中存儲有已經(jīng)存儲在數(shù)據(jù)存儲空間中的第二數(shù)據(jù)分組的哈希值和第二數(shù)據(jù)分組的對應(yīng)關(guān)系,所述第二數(shù)據(jù)分組的哈希值是根據(jù)第二數(shù)據(jù)分組內(nèi)的數(shù)據(jù)分塊進行相似性哈希運算獲得的;所述第一數(shù)據(jù)分組是所述至少一個數(shù)據(jù)分組中的任意一個數(shù)據(jù)分組;如果第一數(shù)據(jù)分組的哈希值與第一哈希值的相似度大于或等于預(yù)設(shè)的第二相似度閾值,對第一數(shù)據(jù)分組內(nèi)的數(shù)據(jù)分塊進行重復(fù)塊檢索。在一可選實施方式中,存儲器52存儲的程序還用于在第一數(shù)據(jù)分組的哈希值與第一哈希值的相似度小于述第二相似度閾值時,將第一數(shù)據(jù)分組內(nèi)的數(shù)據(jù)分塊和第一數(shù)據(jù)分組內(nèi)的數(shù)據(jù)分塊的哈希值存儲到數(shù)據(jù)存儲空間中,并將第一數(shù)據(jù)分組的哈希值與第一數(shù)據(jù)分組的對應(yīng)關(guān)系存儲到哈希值存儲表中。在一可選實施方式中,存儲器52存儲的程序用于對所述至少兩個數(shù)據(jù)分塊進行分組,得到至少一個數(shù)據(jù)分組包括:該程序具體用于由所述至少兩個數(shù)據(jù)分塊中每個數(shù)據(jù)分塊的哈希值構(gòu)成待分塊哈希數(shù)據(jù),以任一個數(shù)據(jù)分塊的哈希值的長度為滑動步長,采用分塊算法對所述待分塊哈希數(shù)據(jù)進行分塊處理,得到至少一個哈希值分塊,將屬于同一哈希值分塊的哈希值對應(yīng)的數(shù)據(jù)分塊作為一個所述數(shù)據(jù)分組。
在一可選實施方式中,存儲器52存儲的程序用于對第一數(shù)據(jù)分組內(nèi)的數(shù)據(jù)分塊進行相似性哈希運算,獲取第一數(shù)據(jù)分組的哈希值包括:該程序具體用于對第一數(shù)據(jù)分組內(nèi)每個數(shù)據(jù)分塊進行哈希運算,獲取第一數(shù)據(jù)分組內(nèi)每個數(shù)據(jù)分塊的哈希值,將第一數(shù)據(jù)分組內(nèi)每個數(shù)據(jù)分塊的哈希值中的O替換為-1,將第一數(shù)據(jù)分組內(nèi)所有數(shù)據(jù)分塊的哈希值的對應(yīng)位相加,將相加大于O的位映射為1,將相加小于或等于O的位映射為0,獲得的二進制數(shù)值作為第一數(shù)據(jù)分組的哈希值。在一可選實施方式中,數(shù)據(jù)存儲空間包括多個存儲區(qū)域;所述哈希值存儲表還存儲有第二數(shù)據(jù)分組的哈希值和第二數(shù)據(jù)分組所在存儲區(qū)域的編號的對應(yīng)關(guān)系?;诖耍鎯ζ?2存儲的程序用于對第一數(shù)據(jù)分組內(nèi)的數(shù)據(jù)分塊進行重復(fù)塊檢索包括:該程序具體用于從哈希值存儲表中獲取第一哈希值對應(yīng)的存儲區(qū)域的編號n,將編號η對應(yīng)存儲區(qū)域中的數(shù)據(jù)分塊和數(shù)據(jù)分塊的哈希值加載到內(nèi)存中;其中,η為大于等于O的整數(shù);將第一數(shù)據(jù)分組中與編號η對應(yīng)存儲區(qū)域中哈希值相同的數(shù)據(jù)分塊進行比較,以完成對第一數(shù)據(jù)分組內(nèi)的數(shù)據(jù)分塊的重復(fù)塊檢索??蛇x的,存儲器52存儲的程序還用于在將編號η對應(yīng)存儲區(qū)域中的數(shù)據(jù)分塊和數(shù)據(jù)分塊的哈希值加載到內(nèi)存中的同時,將編號(η+1)對應(yīng)存儲區(qū)域中的數(shù)據(jù)分塊和數(shù)據(jù)分塊的哈希值加載到內(nèi)存中?;诖?,該程序具體用于將第一數(shù)據(jù)分組中與編號η對應(yīng)存儲區(qū)域中哈希值相同的數(shù)據(jù)分塊進行比較,以完成對第一數(shù)據(jù)分組內(nèi)的數(shù)據(jù)分塊的重復(fù)塊檢索包括:該程序具體用于將第一數(shù)據(jù)分組中與編號η和編號(η+1)對應(yīng)存儲區(qū)域中哈希值相同的數(shù)據(jù)分塊進行比較,以完成對第一數(shù)據(jù)分組內(nèi)的數(shù)據(jù)分塊的重復(fù)塊檢索。在一可選實施方式中,存儲器52存儲的程序用于獲取哈希值存儲表中與第一數(shù)據(jù)分組的哈希值相似度大于或等于預(yù)設(shè)的第一相似度閾值的第一哈希值包括:該程序具體用于獲取哈希值存儲表中與第一數(shù)據(jù)分組的哈希值對應(yīng)位置上的重復(fù)位的個數(shù)大于或等于預(yù)設(shè)數(shù)量的哈希值作為所述第一哈希值。在一可選實施方式中,存儲器52存儲的程序具體用于獲取哈希值存儲表中與第一數(shù)據(jù)分組的哈希值對應(yīng)位置上的重復(fù)位的個數(shù)大于或等于預(yù)設(shè)數(shù)量的哈希值作為第一哈希值包括:該程序具體用于獲取第一數(shù)據(jù)分組的哈希值與哈希值存儲表中每個哈希值之間的漢明距離,將漢明距離小于或等于預(yù)設(shè)漢明距離閾值的哈希值存儲表中的哈希值作為第一哈希值。本發(fā)明實施例提供的重復(fù)數(shù)據(jù)檢索設(shè)備可用于執(zhí)行圖1所示重復(fù)數(shù)據(jù)檢索方法的流程,其具體工作原理不再贅述,詳見方法實施例的描述。本實施例提供的重復(fù)數(shù)據(jù)檢索設(shè)備,對接收到的數(shù)據(jù)先分塊,再分組,對數(shù)據(jù)分組內(nèi)的數(shù)據(jù)分塊進行相似性哈希運算,獲取數(shù)據(jù)分組的哈希值,然后獲取數(shù)據(jù)分組的哈希值與哈希值存儲表中存儲的已經(jīng)存儲到數(shù)據(jù)存儲空間中的各數(shù)據(jù)分組的哈希值中相似度大于或等于預(yù)設(shè)第一相似度閾值的第一哈希值,判斷數(shù)據(jù)分組的哈希值與第一哈希值的相似度是否大于或等于預(yù)設(shè)的第二相似度閾值,如果大于,說明該數(shù)據(jù)分組中的數(shù)據(jù)分塊在很大程度上是重復(fù)塊,然后對其進行重復(fù)塊檢索,由于查詢哈希值存儲表中存儲的是已經(jīng)存儲到數(shù)據(jù)存儲空間中的數(shù)據(jù)分組的哈希值和數(shù)據(jù)分組的對應(yīng)關(guān)系,而數(shù)據(jù)分組的數(shù)量相對較少,所以查詢哈希值存儲表的效率較高,并且基于數(shù)據(jù)分組進行重復(fù)塊檢索減少了重復(fù)塊檢索的次數(shù),即減少了與磁盤交互的次數(shù),有利于提高重復(fù)塊查詢效率,從而提高了重復(fù)數(shù)據(jù)刪除技術(shù)的整體性能。本發(fā)明一實施例提供一種計算機程序產(chǎn)品,該計算機程序產(chǎn)品包括計算機可讀存儲介質(zhì),用于存儲程序。如圖6所示,該程序包括:分塊獲取單元81,用于對接收到的數(shù)據(jù)進行分塊處理,獲取至少兩個數(shù)據(jù)分塊。分組獲取單元82,與分塊獲取單元81連接,用于對分塊獲取單元81獲取的至少兩個數(shù)據(jù)分塊進行分組,獲取至少一個數(shù)據(jù)分組,每個數(shù)據(jù)分組包括至少一個數(shù)據(jù)分塊。哈希計算單元83,與分組獲取單元82連接,用于針對分組獲取單元82獲取的至少一個數(shù)據(jù)分組中的第一數(shù)據(jù)分組,對第一數(shù)據(jù)分組內(nèi)的數(shù)據(jù)分塊進行相似性哈希運算,獲取第一數(shù)據(jù)分組的哈希值,獲取哈希值存儲表中與第一數(shù)據(jù)分組的哈希值相似度大于或等于預(yù)設(shè)的第一相似度閾值的第一哈希值,所述哈希值存儲表中存儲有已經(jīng)存儲在數(shù)據(jù)存儲空間中的第二數(shù)據(jù)分組的哈希值和第二數(shù)據(jù)分組的對應(yīng)關(guān)系,所述第二數(shù)據(jù)分組的哈希值是根據(jù)第二數(shù)據(jù)分組內(nèi)的數(shù)據(jù)分塊進行相似性哈希運算獲得的;所述第一數(shù)據(jù)分組是所述至少一個數(shù)據(jù)分組中的任意一個數(shù)據(jù)分組。重復(fù)檢索單元84,與哈希計算單元83連接,用于在第一數(shù)據(jù)分組的哈希值與第一哈希值的相似度大于或等于預(yù)設(shè)的第二相似度閾值時,對第一數(shù)據(jù)分組內(nèi)的數(shù)據(jù)分塊進行重復(fù)塊檢索。在一可選實施方式中,如圖6所示,本實施例的重復(fù)數(shù)據(jù)檢索設(shè)備還包括:存儲單元85。存儲單元85,與哈希計算單元83連接,用于在第一數(shù)據(jù)分組的哈希值與哈希計算單元83獲取的第一哈希值的相似度小于第二相似度閾值時,將第一數(shù)據(jù)分組內(nèi)的數(shù)據(jù)分塊和第一數(shù)據(jù)分組內(nèi)的數(shù)據(jù)分塊的哈希值存儲到數(shù)據(jù)存儲空間中,并將第一數(shù)據(jù)分組的哈希值與第一數(shù)據(jù)分組的對應(yīng)關(guān)系存儲到哈希值存儲表中。在此說明,上述哈希計算單元83、重復(fù)檢索單元84以及存儲單元85對每個數(shù)據(jù)分組均執(zhí)行相同的動作。在一可選實施方式中,分組獲取單元82具體可用于由分塊獲取單元81獲取到的至少兩個數(shù)據(jù)分塊中每個數(shù)據(jù)分塊的哈希值構(gòu)成待分塊哈希數(shù)據(jù),以至少兩個數(shù)據(jù)分塊中每個數(shù)據(jù)分塊的哈希值的長度為滑動步長,采用分塊算法對上述待分塊哈希數(shù)據(jù)進行分塊處理,得到至少一個哈希值分塊,將屬于同一哈希值分塊的哈希值對應(yīng)的數(shù)據(jù)分塊作為一個數(shù)據(jù)分組,從而得到至少一個數(shù)據(jù)分組。在一可選實施方式中,哈希計算單元83用于對上述第一數(shù)據(jù)分組內(nèi)的數(shù)據(jù)分塊進行相似性哈希運算,獲取上述第一數(shù)據(jù)分組的哈希值包括:哈希計算單元83具體用于對上述第一數(shù)據(jù)分組內(nèi)每個數(shù)據(jù)分塊進行哈希運算,獲取第一數(shù)據(jù)分組中每個數(shù)據(jù)分塊的哈希值,將第一數(shù)據(jù)分組內(nèi)每個數(shù)據(jù)分塊的哈希值中的O替換為-1,將第一數(shù)據(jù)分組內(nèi)所有數(shù)據(jù)分塊的哈希值的對應(yīng)位相加,將相加大于O的位映射為I,將相加小于或等于O的位映射為0,獲得的二進制數(shù)值作為第一數(shù)據(jù)分組的哈希值。在一可選實施方式中,上述數(shù)據(jù)存儲空間包括多個存儲區(qū)域;相應(yīng)地,哈希值存儲表還存儲有第二數(shù)據(jù)分組的哈希值和第二數(shù)據(jù)分組所在存儲區(qū)域的編號的對應(yīng)關(guān)系。基于此,重復(fù)檢索單元84具體可用于從哈希值存儲表中獲取第一哈希值對應(yīng)存儲區(qū)域的編號η,將編號η對應(yīng)存儲區(qū)域中的數(shù)據(jù)分塊和數(shù)據(jù)分塊的哈希值加載到內(nèi)存中;其中,η為大于等于O的整數(shù);將第一數(shù)據(jù)分組中與編號η對應(yīng)存儲區(qū)域中哈希值相同的數(shù)據(jù)分塊進行比較,以完成對第一數(shù)據(jù)分組內(nèi)的數(shù)據(jù)分塊的重復(fù)塊檢索。在一可選實施方式中,重復(fù)檢索單元84還用于在將編號η對應(yīng)存儲區(qū)域中的數(shù)據(jù)分塊和數(shù)據(jù)分塊的哈希值加載到內(nèi)存中的同時,將編號(η+1)對應(yīng)存儲區(qū)域中的數(shù)據(jù)分塊和數(shù)據(jù)分塊的哈希值加載到內(nèi)存中。基于此,重復(fù)檢索單元84具體用于將第一數(shù)據(jù)分組中與編號η對應(yīng)存儲區(qū)域中哈希值相同的數(shù)據(jù)分塊進行比較,以完成對第一數(shù)據(jù)分組內(nèi)的數(shù)據(jù)分塊的重復(fù)塊檢索包括:重復(fù)檢索單元84具體用于將第一數(shù)據(jù)分組中與編號η和編號(η+1)對應(yīng)存儲區(qū)域中哈希值相同的數(shù)據(jù)分塊進行比較,以完成對第一數(shù)據(jù)分組內(nèi)的數(shù)據(jù)分塊的重復(fù)塊檢索。在一可選實施方式中,哈希計算單元83用于獲取哈希值存儲表中與第一數(shù)據(jù)分組的哈希值相似度大于或等于預(yù)設(shè)的第一相似度閾值的第一哈希值包括:哈希計算單元83具體可用于獲取哈希值存儲表中與第一數(shù)據(jù)分組的哈希值對應(yīng)位置上的重復(fù)位的個數(shù)大于或等于預(yù)設(shè)數(shù)量的哈希值作為第一哈希值。哈希計算單元83具體用于獲取哈希值存儲表中與第一數(shù)據(jù)分組的哈希值對應(yīng)位置上的重復(fù)位的個數(shù)大于或等于預(yù)設(shè)數(shù)量的哈希值作為第一哈希值包括:哈希計算單元83具體可用于獲取上述數(shù)據(jù)分組的哈希值與哈希值存儲表中每個哈希值之間的漢明距離,將漢明距離小于或等于預(yù)設(shè)漢明距離閾值的哈希值存儲表中的哈希值作為第一哈希值。本發(fā)明實施例提供的重復(fù)數(shù)據(jù)檢索設(shè)備可用于執(zhí)行圖1所示重復(fù)數(shù)據(jù)檢索方法的流程,其具體工作原理不再贅述,詳見方法實施例的描述。本實施例提供的重復(fù)數(shù)據(jù)檢索設(shè)備,對接收到的數(shù)據(jù)先分塊,再分組,對數(shù)據(jù)分組內(nèi)的數(shù)據(jù)分塊進行相似性哈希運算,獲取數(shù)據(jù)分組的哈希值,然后獲取數(shù)據(jù)分組的哈希值與哈希值存儲表中存儲的已經(jīng)存儲到數(shù)據(jù)存儲空間中的各數(shù)據(jù)分組的哈希值中相似度大于或等于預(yù)設(shè)第一相似度閾值的第一哈希值,判斷數(shù)據(jù)分組的哈希值與第一哈希值的相似度是否大于或等于預(yù)設(shè)的第二相似度閾值,如果大于,說明該數(shù)據(jù)分組中的數(shù)據(jù)分塊在很大程度上是重復(fù)塊,然后對其進行重復(fù)塊檢索,由于查詢哈希值存儲表中存儲的是已經(jīng)存儲到數(shù)據(jù)存儲空間中的數(shù)據(jù)分組的哈希值和數(shù)據(jù)分組的對應(yīng)關(guān)系,而數(shù)據(jù)分組的數(shù)量相對較少,所以查詢哈希值存儲表的效率較高,并且基于數(shù)據(jù)分組進行重復(fù)塊檢索減少了重復(fù)塊檢索的次數(shù),即減少了與磁盤交互的次數(shù),有利于提高重復(fù)塊查詢效率,從而提高了重復(fù)數(shù)據(jù)刪除技術(shù)的整體性能。本領(lǐng)域普通技術(shù)人員可以理解:實現(xiàn)上述各方法實施例的全部或部分步驟可以通過程序指令相關(guān)的硬件來完成。前述的程序可以存儲于一計算機可讀取存儲介質(zhì)中。該程序在執(zhí)行時,執(zhí)行包括上述各方法實施例的步驟;而前述的存儲介質(zhì)包括:R0M、RAM、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)。最后應(yīng)說明的是:以上各實施例僅用以說明本發(fā)明的技術(shù)方案,而非對其限制;盡管參照前述各實施例對本發(fā)明進行了詳細的說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當理解:其依然可以對前述各實施例所記載的技術(shù)方案進行修改,或者對其中部分或者全部技術(shù)特征進行等同替換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明各實施例技術(shù)方案的范圍。
權(quán)利要求
1.一種重復(fù)數(shù)據(jù)檢索方法,其特征在于,包括: 對接收到的數(shù)據(jù)進行分塊處理,獲取至少兩個數(shù)據(jù)分塊; 對所述至少兩個數(shù)據(jù)分塊進行分組,得到至少一個數(shù)據(jù)分組,每個數(shù)據(jù)分組包括至少一個數(shù)據(jù)分塊; 針對所述至少一個數(shù)據(jù)分組中的第一數(shù)據(jù)分組,對所述第一數(shù)據(jù)分組內(nèi)的數(shù)據(jù)分塊進行相似性哈希運算,獲取所述第一數(shù)據(jù)分組的哈希值,獲取哈希值存儲表中與所述第一數(shù)據(jù)分組的哈希值相似度大于或等于預(yù)設(shè)的第一相似度閾值的第一哈希值,所述哈希值存儲表中存儲有已經(jīng)存儲在數(shù)據(jù)存儲空間中的第二數(shù)據(jù)分組的哈希值和所述第二數(shù)據(jù)分組的對應(yīng)關(guān)系,所述第二數(shù)據(jù)分組的哈希值是根據(jù)所述第二數(shù)據(jù)分組內(nèi)的數(shù)據(jù)分塊進行相似性哈希運算獲得的;所述第一數(shù)據(jù)分組是所述至少一個數(shù)據(jù)分組中的任意一個數(shù)據(jù)分組; 如果所述第一數(shù)據(jù)分組的哈希值與所述第一哈希值的相似度大于或等于預(yù)設(shè)的第二相似度閾值,對所述第一數(shù)據(jù)分組內(nèi)的數(shù)據(jù)分塊進行重復(fù)塊檢索。
2.根據(jù)權(quán)利要求1所述的重復(fù)數(shù)據(jù)檢索方法,其特征在于,還包括: 如果所述第一數(shù)據(jù)分組的哈希值與所述第一哈希值的相似度小于所述第二相似度閾值,將所述第一數(shù)據(jù)分組內(nèi)的數(shù)據(jù)分塊和所述第一數(shù)據(jù)分組內(nèi)的數(shù)據(jù)分塊的哈希值存儲到所述數(shù)據(jù)存儲空間中,并將所述第一數(shù)據(jù)分組的哈希值與所述第一數(shù)據(jù)分組的對應(yīng)關(guān)系存儲到所述哈希值存儲表中。
3.根據(jù)權(quán)利要求1或2所述的重復(fù)數(shù)據(jù)檢索方法,其特征在于,對所述至少兩個數(shù)據(jù)分塊進行分組,得到至少一個數(shù)據(jù)分組包括: 由所述至少兩個數(shù)據(jù)分塊中每個數(shù)據(jù)分塊的哈希值構(gòu)成待分塊哈希數(shù)據(jù);以任一個所述數(shù)據(jù)分塊的哈希值的長 為滑動步長,采用分塊算法對所述待分塊哈希數(shù)據(jù)進行分塊處理,得到至少一個哈希值分塊; 將屬于同一哈希值分塊的哈希值對應(yīng)的數(shù)據(jù)分塊作為一個所述數(shù)據(jù)分組。
4.根據(jù)權(quán)利要求1-3任一項所述的重復(fù)數(shù)據(jù)檢索方法,其特征在于,對所述第一數(shù)據(jù)分組內(nèi)的數(shù)據(jù)分塊進行相似性哈希運算,獲取所述第一數(shù)據(jù)分組的哈希值包括: 對所述第一數(shù)據(jù)分組內(nèi)每個數(shù)據(jù)分塊進行哈希運算,獲取所述第一數(shù)據(jù)分組內(nèi)每個數(shù)據(jù)分塊的哈希值; 將所述第一數(shù)據(jù)分組內(nèi)每個數(shù)據(jù)分塊的哈希值中的O替換為-1,將所述第一數(shù)據(jù)分組內(nèi)所有數(shù)據(jù)分塊的哈希值的對應(yīng)位相加,將相加大于O的位映射為I,將相加小于或等于O的位映射為O,獲得的二進制數(shù)值作為所述第一數(shù)據(jù)分組的哈希值。
5.根據(jù)權(quán)利要求1-4任一項所述的重復(fù)數(shù)據(jù)檢索方法,其特征在于,所述數(shù)據(jù)存儲空間包括多個存儲區(qū)域;所述哈希值存儲表還存儲有所述第二數(shù)據(jù)分組的哈希值和所述第二數(shù)據(jù)分組所在存儲區(qū)域的編號的對應(yīng)關(guān)系; 對所述第一數(shù)據(jù)分組內(nèi)的數(shù)據(jù)分塊進行重復(fù)塊檢索包括: 從所述哈希值存儲表中獲取所述第一哈希值對應(yīng)的存儲區(qū)域的編號n,將編號η對應(yīng)存儲區(qū)域中的數(shù)據(jù)分塊和數(shù)據(jù)分塊的哈希值加載到內(nèi)存中;其中,η為大于等于O的整數(shù); 將所述第一數(shù)據(jù)分組中與所述編號η對應(yīng)存儲區(qū)域中哈希值相同的數(shù)據(jù)分塊進行比較,以完成對所述第一數(shù)據(jù)分組內(nèi)的數(shù)據(jù)分塊的重復(fù)塊檢索。
6.根據(jù)權(quán)利要求5所述的重復(fù)數(shù)據(jù)檢索方法,其特征在于,所述方法還包括:在將編號η對應(yīng)存儲區(qū)域中的數(shù)據(jù)分塊和數(shù)據(jù)分塊的哈希值加載到內(nèi)存中的同時,將編號(η+1)對應(yīng)存儲區(qū)域中的數(shù)據(jù)分塊和數(shù)據(jù)分塊的哈希值加載到內(nèi)存中; 所述將所述第一數(shù)據(jù)分組中與所述編號η對應(yīng)存儲區(qū)域中哈希值相同的數(shù)據(jù)分塊進行比較,以完成對所述第一數(shù)據(jù)分組內(nèi)的數(shù)據(jù)分塊的重復(fù)塊檢索包括: 將所述第一數(shù)據(jù)分組中與所述編號η和編號(η+1)對應(yīng)存儲區(qū)域中哈希值相同的數(shù)據(jù)分塊進行比較,以完成對所述第一數(shù)據(jù)分組內(nèi)的數(shù)據(jù)分塊的重復(fù)塊檢索。
7.根據(jù)權(quán)利要求1-6任一項所述的重復(fù)數(shù)據(jù)檢索方法,其特征在于,所述獲取哈希值存儲表中與所述第一數(shù)據(jù)分組的哈希值相似度大于或等于預(yù)設(shè)的第一相似度閾值的第一哈希值包括: 獲取所述哈希值存儲表中與所述第一數(shù)據(jù)分組的哈希值對應(yīng)位置上的重復(fù)位的個數(shù)大于或等于預(yù)設(shè)數(shù)量的哈希值作為所述第一哈希值。
8.根據(jù)權(quán)利要求7所述的重復(fù)數(shù)據(jù)檢索方法,其特征在于,所述獲取哈希值存儲表中與所述第一數(shù)據(jù)分組的哈希值對應(yīng)位置上的重復(fù)位的個數(shù)大于或等于預(yù)設(shè)數(shù)量的哈希值作為所述第一哈希值包括: 獲取所述第一數(shù)據(jù)分組的哈希值與所述哈希值存儲表中每個哈希值之間的漢明距離,將漢明距離小于或等于預(yù)設(shè)漢明距離閾值的所述哈希值存儲表中的哈希值作為所述第一哈希值。
9.一種重復(fù)數(shù)據(jù)檢索設(shè)備,其特征在于,包括: 分塊獲取模塊,用于對接收到的數(shù)據(jù)進行分塊處理,獲取至少兩個數(shù)據(jù)分塊; 分組獲取模塊, 用于對所述分塊獲取模塊獲取到的所述至少兩個數(shù)據(jù)分塊進行分組,得到至少一個數(shù)據(jù)分組,每個數(shù)據(jù)分組包括至少一個數(shù)據(jù)分塊; 哈希計算模塊,用于針對所述至少一個數(shù)據(jù)分組中的第一數(shù)據(jù)分組,對所述第一數(shù)據(jù)分組內(nèi)的數(shù)據(jù)分塊進行相似性哈希運算,獲取所述第一數(shù)據(jù)分組的哈希值,獲取哈希值存儲表中與所述第一數(shù)據(jù)分組的哈希值相似度大于或等于預(yù)設(shè)的第一相似度閾值的第一哈希值,所述哈希值存儲表中存儲有已經(jīng)存儲在數(shù)據(jù)存儲空間中的第二數(shù)據(jù)分組的哈希值和所述第二數(shù)據(jù)分組的對應(yīng)關(guān)系,所述第二數(shù)據(jù)分組的哈希值是根據(jù)所述第二數(shù)據(jù)分組內(nèi)的數(shù)據(jù)分塊進行相似性哈希運算獲得的;所述第一數(shù)據(jù)分組是所述至少一個數(shù)據(jù)分組中的任意一個數(shù)據(jù)分組; 重復(fù)檢索模塊,用于在所述第一數(shù)據(jù)分組的哈希值與所述第一哈希值的相似度大于或等于預(yù)設(shè)的第二相似度閾值時,對所述第一數(shù)據(jù)分組內(nèi)的數(shù)據(jù)分塊進行重復(fù)塊檢索。
10.根據(jù)權(quán)利要求9所述的重復(fù)數(shù)據(jù)檢索設(shè)備,其特征在于,還包括: 存儲模塊,用于在所述第一數(shù)據(jù)分組的哈希值與所述第一哈希值的相似度小于所述第二相似度閾值時,將所述第一數(shù)據(jù)分組內(nèi)的數(shù)據(jù)分塊和所述第一數(shù)據(jù)分組內(nèi)的數(shù)據(jù)分塊的哈希值存儲到所述數(shù)據(jù)存儲空間中,并將所述第一數(shù)據(jù)分組的哈希值與所述第一數(shù)據(jù)分組的對應(yīng)關(guān)系存儲到所述哈希值存儲表中。
11.根據(jù)權(quán)利要求9或10所述的重復(fù)數(shù)據(jù)檢索設(shè)備,其特征在于,所述分組獲取模塊具體用于由所述至少兩個數(shù)據(jù)分塊中每個數(shù)據(jù)分塊的哈希值構(gòu)成待分塊哈希數(shù)據(jù),以任一個所述數(shù)據(jù)分塊的哈希值的長度為滑動步長,采用分塊算法對所述待分塊哈希數(shù)據(jù)進行分塊處理,得到至少一個哈希值分塊,將屬于同一哈希值分塊的哈希值對應(yīng)的數(shù)據(jù)分塊作為一個所述數(shù)據(jù)分組。
12.根據(jù)權(quán)利要求9-11任一項所述的重復(fù)數(shù)據(jù)檢索設(shè)備,其特征在于,所述哈希計算模塊用于對所述第一數(shù)據(jù)分組內(nèi)的數(shù)據(jù)分塊進行相似性哈希運算,獲取所述第一數(shù)據(jù)分組的哈希值包括: 所述哈希計算模塊具體用于對所述第一數(shù)據(jù)分組內(nèi)每個數(shù)據(jù)分塊進行哈希運算,獲取所述第一數(shù)據(jù)分組內(nèi)每個數(shù)據(jù)分塊的哈希值,將所述第一數(shù)據(jù)分組內(nèi)每個數(shù)據(jù)分塊的哈希值中的O替換為-1,將所述第一數(shù)據(jù)分組內(nèi)所有數(shù)據(jù)分塊的哈希值的對應(yīng)位相加,將相加大于O的位映射為1,將相加小于或等于O的位映射為O,獲得的二進制數(shù)值作為所述第一數(shù)據(jù)分組的哈希值。
13.根據(jù)權(quán)利要求9-12任一項所述的重復(fù)數(shù)據(jù)檢索設(shè)備,其特征在于,所述數(shù)據(jù)存儲空間包括多個存儲區(qū)域;所述哈希值存儲表還存儲有所述第二數(shù)據(jù)分組的哈希值和所述第二數(shù)據(jù)分組所在存儲區(qū)域的編號的對應(yīng)關(guān)系; 所述重復(fù)檢索模塊具體用于從所述哈希值存儲表中獲取所述第一哈希值對應(yīng)存儲區(qū)域的編號n,將編號η對應(yīng)存儲區(qū)域中的數(shù)據(jù)分塊和數(shù)據(jù)分塊的哈希值加載到內(nèi)存中;其中,η為大于等于O的整數(shù);將所述第一數(shù)據(jù)分組中與所述編號η對應(yīng)存儲區(qū)域中哈希值相同的數(shù)據(jù)分塊進行比較,以完成對所述第一數(shù)據(jù)分組內(nèi)的數(shù)據(jù)分塊的重復(fù)塊檢索。
14.根據(jù)權(quán)利要 求9-13任一項所述的重復(fù)數(shù)據(jù)檢索設(shè)備,其特征在于,所述重復(fù)檢索模塊還用于在將編號η對應(yīng)存儲區(qū)域中的數(shù)據(jù)分塊和數(shù)據(jù)分塊的哈希值加載到內(nèi)存中的同時,將編號(η+1)對應(yīng)存儲區(qū)域中的數(shù)據(jù)分塊和數(shù)據(jù)分塊的哈希值加載到內(nèi)存中; 所述重復(fù)檢索模塊具體用于將所述第一數(shù)據(jù)分組中與所述編號η對應(yīng)存儲區(qū)域中哈希值相同的數(shù)據(jù)分塊進行比較,以完成對所述第一數(shù)據(jù)分組內(nèi)的數(shù)據(jù)分塊的重復(fù)塊檢索包括: 所述重復(fù)檢索模塊具體用于將所述第一數(shù)據(jù)分組中與所述編號η和編號(η+1)對應(yīng)存儲區(qū)域中哈希值相同的數(shù)據(jù)分塊進行比較,以完成對所述第一數(shù)據(jù)分組內(nèi)的數(shù)據(jù)分塊的重復(fù)塊檢索。
15.根據(jù)權(quán)利要求9-14任一項所述的重復(fù)數(shù)據(jù)檢索設(shè)備,其特征在于,所述哈希計算模塊用于獲取哈希值存儲表中與所述第一數(shù)據(jù)分組哈希值相似度大于或等于預(yù)設(shè)的第一相似度閾值的第一哈希值包括: 所述哈希計算模塊具體用于獲取所述哈希值存儲表中與所述第一數(shù)據(jù)分組的哈希值對應(yīng)位置上的重復(fù)位的個數(shù)大于或等于預(yù)設(shè)數(shù)量的哈希值作為所述第一哈希值。
16.根據(jù)權(quán)利要求15所述的重復(fù)數(shù)據(jù)檢索設(shè)備,其特征在于,所述哈希計算模塊具體用于獲取所述哈希值存儲表中與所述第一數(shù)據(jù)分組的哈希值對應(yīng)位置上的重復(fù)位的個數(shù)大于或等于預(yù)設(shè)數(shù)量的哈希值作為所述第一哈希值包括: 所述哈希值計算模塊具體用于獲取所述第一數(shù)據(jù)分組的哈希值與所述哈希值存儲表中每個哈希值之間的漢明距離,將漢明距離小于或等于預(yù)設(shè)漢明距離閾值的所述哈希值存儲表中的哈希值作為所述第一哈希值。
17.一種重復(fù)數(shù)據(jù)檢索設(shè)備,其特征在于,包括:處理器、通信接口、存儲器和總線,所述處理器、所述通信接口、所述存儲器通過所述總線完成相互間的通信; 所述通信接口,用于接收數(shù)據(jù);所述處理器,用于執(zhí)行程序; 所述存儲器,用于存放所述程序; 其中,所述程序用于對所述通信接口接收到的所述數(shù)據(jù)進行分塊處理,獲取至少兩個數(shù)據(jù)分塊;對所述至少兩個數(shù)據(jù)分塊進行分組,得到至少一個數(shù)據(jù)分組,每個數(shù)據(jù)分組包括至少一個數(shù)據(jù)分塊;針對所述至少一個數(shù)據(jù)分組中的第一數(shù)據(jù)分組,對所述第一數(shù)據(jù)分組內(nèi)的數(shù)據(jù)分塊進行相似性哈希運算,獲取所述第一數(shù)據(jù)分組的哈希值,獲取哈希值存儲表中與所述第一數(shù)據(jù)分組的哈希值相似度大于或等于預(yù)設(shè)的第一相似度閾值的第一哈希值,所述哈希值存儲表中存儲有已經(jīng)存儲在數(shù)據(jù)存儲空間中的第二數(shù)據(jù)分組的哈希值和所述第二數(shù)據(jù)分組的對應(yīng)關(guān)系,所述第二數(shù)據(jù)分組的哈希值是根據(jù)所述第二數(shù)據(jù)分組內(nèi)的數(shù)據(jù)分塊進行相似性哈希運算獲得的;所述第一數(shù)據(jù)分組是所述至少一個數(shù)據(jù)分組中的任意一個數(shù)據(jù)分組;如果所述第一數(shù)據(jù)分組的哈希值與所述第一哈希值的相似度大于或等于預(yù)設(shè)的第二相似度閾值,對所述第一數(shù)據(jù)分組內(nèi)的數(shù)據(jù)分塊進行重復(fù)塊檢索。
18.根據(jù)權(quán)利要求17所述的重復(fù)數(shù)據(jù)檢索設(shè)備,其特征在于,所述程序還用于在所述第一數(shù)據(jù)分組的哈希值與所述第一哈希值的相似度小于所述第二相似度閾值時,將所述第一數(shù)據(jù)分組內(nèi)的數(shù)據(jù)分塊和所述第一數(shù)據(jù)分組內(nèi)的數(shù)據(jù)分塊的哈希值存儲到所述數(shù)據(jù)存儲空間中,并將所述第一數(shù)據(jù)分組的哈希值與所述第一數(shù)據(jù)分組的對應(yīng)關(guān)系存儲到所述哈希值存儲表中。
19.根據(jù)權(quán)利要求17或18所述的重復(fù)數(shù)據(jù)檢索設(shè)備,其特征在于,所述程序用于對所述至少兩個數(shù)據(jù)分塊進行分組,得到至少一個數(shù)據(jù)分組包括: 所述程序具體用于由所述至少兩個數(shù)據(jù)分塊中每個數(shù)據(jù)分塊的哈希值構(gòu)成待分塊哈希數(shù)據(jù),以任一個所述數(shù)據(jù)分塊的哈希值的長度為滑動步長,采用分塊算法對所述待分塊哈希數(shù)據(jù)進行分塊處理,得到至少一個哈希值分塊,將屬于同一哈希值分塊的哈希值對應(yīng)的數(shù)據(jù)分塊作為一個所述數(shù)據(jù)分組。
20.根據(jù)權(quán)利要求17-19任一項所述的重復(fù)數(shù)據(jù)檢索設(shè)備,其特征在于,所述程序用于對所述第一數(shù)據(jù)分組內(nèi)的數(shù)據(jù)分塊進行相似性哈希運算,獲取所述第一數(shù)據(jù)分組的哈希值包括: 所述程序具體用于對所述第一數(shù)據(jù)分組內(nèi)每個數(shù)據(jù)分塊進行哈希運算,獲取所述第一數(shù)據(jù)分組內(nèi)每個數(shù)據(jù)分塊的哈希值,將所述第一數(shù)據(jù)分組內(nèi)每個數(shù)據(jù)分塊的哈希值中的O替換為-1,將所述第一數(shù)據(jù)分組內(nèi)所有數(shù)據(jù)分塊的哈希值的對應(yīng)位相加,將相加大于O的位映射為1,將相加小于或等于O的位映射為0,獲得的二進制數(shù)值作為所述第一數(shù)據(jù)分組的哈希值。
21.根據(jù)權(quán)利要求17-20任一項所述的重復(fù)數(shù)據(jù)檢索設(shè)備,其特征在于,所述數(shù)據(jù)存儲空間包括多個存儲區(qū)域;所述哈希值存儲表還存儲有所述第二數(shù)據(jù)分組的哈希值和所述第二數(shù)據(jù)分組所在存儲區(qū)域的編號的對應(yīng)關(guān)系; 所述程序用于對所述第一數(shù)據(jù)分組內(nèi)的數(shù)據(jù)分塊進行重復(fù)塊檢索包括: 所述程序具體用于從所述哈希值存儲表中獲取所述第一哈希值對應(yīng)的存儲區(qū)域的編號n,將編號η對應(yīng)存儲區(qū)域中的數(shù)據(jù)分塊和數(shù)據(jù)分塊的哈希值加載到內(nèi)存中;其中,η為大于等于O的整數(shù);將所述第一數(shù)據(jù)分組中與所述編號η對應(yīng)存儲區(qū)域中哈希值相同的數(shù)據(jù)分塊進行比較,以完成對所述第一數(shù)據(jù)分組內(nèi)的數(shù)據(jù)分塊的重復(fù)塊檢索。
22.根據(jù)權(quán)利要求21所述的重復(fù)數(shù)據(jù)檢索設(shè)備,其特征在于,所述程序還用于在將編號η對應(yīng)存儲區(qū)域中的數(shù)據(jù)分塊和數(shù)據(jù)分塊的哈希值加載到內(nèi)存中的同時,將編號(η+1)對應(yīng)存儲區(qū)域中的數(shù)據(jù)分塊和數(shù)據(jù)分塊的哈希值加載到內(nèi)存中; 所述程序具體用于將所述第一數(shù)據(jù)分組中與所述編號η對應(yīng)存儲區(qū)域中哈希值相同的數(shù)據(jù)分塊進行比較,以完成對所述第一數(shù)據(jù)分組內(nèi)的數(shù)據(jù)分塊的重復(fù)塊檢索包括: 所述程序具體用于將所述第一數(shù)據(jù)分組中與所述編號η和編號(η+1)對應(yīng)存儲區(qū)域中哈希值相同的數(shù)據(jù)分塊進行比較,以完成對所述第一數(shù)據(jù)分組內(nèi)的數(shù)據(jù)分塊的重復(fù)塊檢索。
23.根據(jù)權(quán)利要求17-22任一項所述的重復(fù)數(shù)據(jù)檢索設(shè)備,其特征在于,所述程序用于獲取哈希值存儲表中與所述第一數(shù)據(jù)分組的哈希值相似度大于或等于預(yù)設(shè)的第一相似度閾值的第一哈希值包括: 所述程序具體用于獲取所述哈希值存儲表中與所述第一數(shù)據(jù)分組的哈希值對應(yīng)位置上的重復(fù)位的個數(shù)大于或等于預(yù)設(shè)數(shù)量的哈希值作為所述第一哈希值。
24.根據(jù)權(quán)利要求23所述的重復(fù)數(shù)據(jù)檢索設(shè)備,其特征在于,所述程序具體用于獲取所述哈希值存儲表中與所述第一數(shù)據(jù)分組的哈希值對應(yīng)位置上的重復(fù)位的個數(shù)大于或等于預(yù)設(shè)數(shù)量的哈希值作為所述第一哈希值包括: 所述程序具體用于獲取所述第一數(shù)據(jù)分組的哈希值與所述哈希值存儲表中每個哈希值之間的漢明距離,將漢明距離小于或等于預(yù)設(shè)漢明距離閾值的所述哈希值存儲表中的哈希值作為所述第一哈希值。
25.一種計算機程序產(chǎn)品,其特征在于,包括計算機可讀存儲介質(zhì),用于存儲程序,所述程序包括: 分塊獲取單元,用于對接收到的數(shù)據(jù)進行分塊處理,獲取至少兩個數(shù)據(jù)分塊; 分組獲取單元,用于對所述分塊獲取單元獲取到的所述至少兩個數(shù)據(jù)分塊進行分組,得到至少一個數(shù)據(jù)分組,每個數(shù)據(jù)分組包括至少一個數(shù)據(jù)分塊; 哈希計算單元,用于針對所述至少一個數(shù)據(jù)分組中的第一數(shù)據(jù)分組,對所述第一數(shù)據(jù)分組內(nèi)的數(shù)據(jù)分塊進行相似性哈希運算,獲取所述第一數(shù)據(jù)分組的哈希值,獲取哈希值存儲表中與所述第一數(shù)據(jù)分組的哈希值相似度大于或等于預(yù)設(shè)的第一相似度閾值的第一哈希值,所述哈希值存儲表中存儲有已經(jīng)存儲在數(shù)據(jù)存儲空間中的第二數(shù)據(jù)分組的哈希值和所述第二數(shù)據(jù)分組的對應(yīng)關(guān)系,所述第二數(shù)據(jù)分組的哈希值是根據(jù)所述第二數(shù)據(jù)分組內(nèi)的數(shù)據(jù)分塊進行相似性哈希運算獲得的;所述第一數(shù)據(jù)分組是所述至少一個數(shù)據(jù)分組中的任意一個數(shù)據(jù)分組; 重復(fù)檢索單元,用于在所述第一數(shù)據(jù)分組的哈希值與所述第一哈希值的相似度大于或等于預(yù)設(shè)的第二相似度閾值時,對所述第一數(shù)據(jù)分組內(nèi)的數(shù)據(jù)分塊進行重復(fù)塊檢索。
26.根據(jù)權(quán)利要求25所述的計算機程序產(chǎn)品,其特征在于,所述程序還包括: 存儲單元,用于在所述第一數(shù)據(jù)分組的哈希值與所述第一哈希值的相似度小于所述第二相似度閾值時,將所述第一數(shù)據(jù)分組內(nèi)的數(shù)據(jù)分塊和所述第一數(shù)據(jù)分組內(nèi)的數(shù)據(jù)分塊的哈希值存儲到所述數(shù)據(jù)存儲空間中,并將所述第一數(shù)據(jù)分組的哈希值與所述第一數(shù)據(jù)分組的對應(yīng)關(guān)系存儲到所述哈希值存儲表中。
27.根據(jù)權(quán)利要求25或26所述的計算機程序產(chǎn)品,其特征在于,所述分組獲取單元具體用于由所述至少兩個數(shù)據(jù)分塊中每個數(shù)據(jù)分塊的哈希值構(gòu)成待分塊哈希數(shù)據(jù),以任一個所述數(shù)據(jù)分塊的哈希值的長度為滑動步長,采用分塊算法對所述待分塊哈希數(shù)據(jù)進行分塊處理,得到至少一個哈希值分塊,將屬于同一哈希值分塊的哈希值對應(yīng)的數(shù)據(jù)分塊作為一個所述數(shù)據(jù)分組。
28.根據(jù)權(quán)利要求25-27任一項所述的計算機程序產(chǎn)品,其特征在于,所述哈希計算單元用于對所述第一數(shù)據(jù)分組內(nèi)的數(shù)據(jù)分塊進行相似性哈希運算,獲取所述第一數(shù)據(jù)分組的哈希值包括: 所述哈希計算單元具體用于對所述第一數(shù)據(jù)分組內(nèi)每個數(shù)據(jù)分塊進行哈希運算,獲取所述第一數(shù)據(jù)分組內(nèi)每個數(shù)據(jù)分塊的哈希值,將所述第一數(shù)據(jù)分組內(nèi)每個數(shù)據(jù)分塊的哈希值中的O替換為-1,將所述第一數(shù)據(jù)分組內(nèi)所有數(shù)據(jù)分塊的哈希值的對應(yīng)位相加,將相加大于O的位映射為I,將相加小于或等于O的位映射為O,獲得的二進制數(shù)值作為所述第一數(shù)據(jù)分組的哈希值。
29.根據(jù)權(quán)利要求25-28任一項所述的計算機程序產(chǎn)品,其特征在于,所述數(shù)據(jù)存儲空間包括多個存儲區(qū)域;所述哈希值存儲表還存儲有所述第二數(shù)據(jù)分組的哈希值和所述第二數(shù)據(jù)分組所在存儲區(qū)域的編號的對應(yīng)關(guān)系; 所述重復(fù)檢索單元具體用于從所述哈希值存儲表中獲取所述第一哈希值對應(yīng)的存儲區(qū)域的編號n,將編號η對應(yīng)存儲區(qū)域中的數(shù)據(jù)分塊和數(shù)據(jù)分塊的哈希值加載到內(nèi)存中;其中,η為大于等于O的整數(shù);將所述第一數(shù)據(jù)分組中與所述編號η對應(yīng)存儲區(qū)域中哈希值相同的數(shù)據(jù)分塊進行比較,以完成對所述第一數(shù)據(jù)分組內(nèi)的數(shù)據(jù)分塊的重復(fù)塊檢索。
30.根據(jù)權(quán)利要求25-29任一項所述的計算機程序產(chǎn)品,其特征在于,所述重復(fù)檢索單元還用于在將編號η對應(yīng)存儲區(qū)域中的數(shù)據(jù)分塊和數(shù)據(jù)分塊的哈希值加載到內(nèi)存中的同時,將編號(η+1)對應(yīng)存儲區(qū)域中的數(shù)據(jù)分塊和數(shù)據(jù)分塊的哈希值加載到內(nèi)存中; 所述重復(fù)檢索單元具體用于將所述第一數(shù)據(jù)分組中與所述編號η對應(yīng)存儲區(qū)域中哈希值相同的數(shù)據(jù)分塊進行比較,以完成對所述第一數(shù)據(jù)分組內(nèi)的數(shù)據(jù)分塊的重復(fù)塊檢索包括: 所述重復(fù)檢索單元具體用于將所述第一數(shù)據(jù)分組中與所述編號η和編號(η+1)對應(yīng)存儲區(qū)域中哈希值相同的數(shù)據(jù)分塊進行比較,以完成對所述第一數(shù)據(jù)分組內(nèi)的數(shù)據(jù)分塊的重復(fù)塊檢索。
31.根據(jù)權(quán)利要求25-30任一項所述的計算機程序產(chǎn)品,其特征在于,所述哈希計算單元用于獲取哈希值存儲表中與所述第一數(shù)據(jù)分組的哈希值相似度大于或等于預(yù)設(shè)的第一相似度閾值的第一哈希值包括: 所述哈希計算單元具體用于獲取所述哈希值存儲表中與所述第一數(shù)據(jù)分組的哈希值對應(yīng)位置上的重復(fù)位的個數(shù)大于或等于預(yù)設(shè)數(shù)量的哈希值作為所述第一哈希值。
32.根據(jù)權(quán)利要求32所述的計算機程序產(chǎn)品,其特征在于,所述哈希計算單元具體用于獲取所述哈希值存儲表中與所述第一數(shù)據(jù)分組的哈希值對應(yīng)位置上的重復(fù)位的個數(shù)大于或等于預(yù)設(shè)數(shù)量的哈希值作為所述第一哈希值包括: 所述哈希值計算單元具體用于獲取所述第一數(shù)據(jù)分組的哈希值與所述哈希值存儲表中每個哈希值之間的漢明距離,將漢明距離小于或等于預(yù)設(shè)漢明距離閾值的所述哈希值存儲表中的哈希值作為所述第一哈希值。
全文摘要
本發(fā)明實施例提供一種重復(fù)數(shù)據(jù)檢索方法及設(shè)備。方法包括對接收到的數(shù)據(jù)進行分塊處理獲取至少兩個數(shù)據(jù)分塊;對至少兩個數(shù)據(jù)分塊進行分組得到至少一個數(shù)據(jù)分組;針對每個數(shù)據(jù)分組,對該數(shù)據(jù)分組內(nèi)的數(shù)據(jù)分塊進行相似性哈希運算獲取該數(shù)據(jù)分組的哈希值,獲取哈希值存儲表中與該數(shù)據(jù)分組的哈希值相似度大于或等于第一相似度閾值的第一哈希值,如果該數(shù)據(jù)分組的哈希值與第一哈希值的相似度大于或等于預(yù)設(shè)第二相似度閾值,對該數(shù)據(jù)分組內(nèi)的數(shù)據(jù)分塊進行重復(fù)塊檢索。本發(fā)明技術(shù)方案提高了重復(fù)塊查詢效率,提高重復(fù)數(shù)據(jù)刪除技術(shù)的整體性能。
文檔編號G06F17/30GK103189867SQ201280001989
公開日2013年7月3日 申請日期2012年10月30日 優(yōu)先權(quán)日2012年10月30日
發(fā)明者覃強 申請人:華為技術(shù)有限公司