一種數(shù)據(jù)重刪方法
【專利摘要】本發(fā)明公開(kāi)了一種數(shù)據(jù)重刪方法,把數(shù)據(jù)對(duì)比規(guī)模局限在每個(gè)存儲(chǔ)裝置內(nèi)部,減少了數(shù)據(jù)比對(duì)規(guī)模,同時(shí)讓每個(gè)存儲(chǔ)裝置并發(fā)對(duì)比,提高了對(duì)比效率,減少了對(duì)主機(jī)資源的依賴。由各個(gè)存儲(chǔ)裝置根據(jù)業(yè)務(wù)壓力或主機(jī)要求觸發(fā)相應(yīng)的數(shù)據(jù)對(duì)比操作,并能在正常的業(yè)務(wù)流程中使用,不局限于特殊的備份等業(yè)務(wù)場(chǎng)景。
【專利說(shuō)明】一種數(shù)據(jù)重刪方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種數(shù)據(jù)重刪方法。
【背景技術(shù)】
[0002]現(xiàn)有技術(shù)都是通過(guò)在下發(fā)數(shù)據(jù)過(guò)程中,首先從文件系統(tǒng)或數(shù)據(jù)庫(kù)等存儲(chǔ)系統(tǒng)提取數(shù)據(jù)的hash指紋放入到主機(jī)內(nèi)存或?qū)S孟到y(tǒng)進(jìn)行數(shù)據(jù)比對(duì),通過(guò)比對(duì)結(jié)果來(lái)對(duì)重復(fù)的數(shù)據(jù)進(jìn)行刪除并標(biāo)記索引,對(duì)于非重復(fù)數(shù)據(jù)則添加到hash指紋庫(kù)中,然后再把處理后的數(shù)據(jù)下發(fā)到數(shù)據(jù)存儲(chǔ)裝置,從而達(dá)到有效清除重復(fù)數(shù)據(jù)的目的。
[0003]上述方法數(shù)據(jù)重刪的效率低,為保證正常業(yè)務(wù)執(zhí)行,在正常的業(yè)務(wù)處理流程中,上述技術(shù)是無(wú)法使用的,除非使用專用的數(shù)據(jù)重刪處理器分擔(dān)主機(jī)CPU壓力,而且現(xiàn)有技術(shù)對(duì)主機(jī)內(nèi)存有很高的要求,因此現(xiàn)有技術(shù)主要應(yīng)用到備份等非正常業(yè)務(wù)流程中。
【發(fā)明內(nèi)容】
[0004]本發(fā)明所要解決的技術(shù)問(wèn)題是,針對(duì)上述現(xiàn)有技術(shù)的不足,提供一種數(shù)據(jù)重刪方法。
[0005]為解決上述技術(shù)問(wèn)題,本發(fā)明所采用的技術(shù)方案是:一種數(shù)據(jù)重刪方法,包括以下步驟:
1)隨機(jī)從主機(jī)內(nèi)存獲取一段數(shù)據(jù),計(jì)算所獲取的數(shù)據(jù)的簽名,遍歷所有簽名,依次計(jì)算兩個(gè)簽名的海明距離,將海明距離在3以內(nèi)的簽名作為高相似度數(shù)據(jù),并統(tǒng)計(jì)每個(gè)高相似度數(shù)據(jù)的相似度計(jì)數(shù),將相似度計(jì)數(shù)最高的前N個(gè)簽名對(duì)應(yīng)的數(shù)據(jù)保存到初始樣本數(shù)據(jù)庫(kù)中,其中 100〈N〈5000 ;
2 )再一次從主機(jī)內(nèi)存獲取一段數(shù)據(jù),按照步驟1)方法抽取該段數(shù)據(jù)中前N個(gè)簽名對(duì)應(yīng)的數(shù)據(jù),即待入庫(kù)數(shù)據(jù),將待入庫(kù)數(shù)據(jù)與上述初始樣本數(shù)據(jù)庫(kù)中的數(shù)據(jù)進(jìn)行對(duì)比,刪除待入庫(kù)數(shù)據(jù)中與所述初始樣本數(shù)據(jù)庫(kù)中數(shù)據(jù)相同的數(shù)據(jù),比較余下的待入庫(kù)數(shù)據(jù)的相似度計(jì)數(shù)與所述初始樣本數(shù)據(jù)庫(kù)中數(shù)據(jù)的相似度計(jì)數(shù),刪除相似度計(jì)數(shù)小于初始樣本數(shù)據(jù)庫(kù)中相似度計(jì)數(shù)的余下的待入庫(kù)數(shù)據(jù)中的數(shù)據(jù),得到準(zhǔn)入庫(kù)數(shù)據(jù),按照相似度計(jì)數(shù)從大到小的順序?qū)?zhǔn)入庫(kù)數(shù)據(jù)保存到所述初始樣本數(shù)據(jù)庫(kù)中;
3)重復(fù)上述步驟2),直到初始樣本數(shù)據(jù)庫(kù)中的樣本數(shù)據(jù)個(gè)數(shù)=盤片容量/(1G?1M),即得到樣本數(shù)據(jù)庫(kù),將所述樣本數(shù)據(jù)庫(kù)發(fā)送給存儲(chǔ)裝置;
4)所述存儲(chǔ)裝置接收到主機(jī)請(qǐng)求后,將存儲(chǔ)裝置內(nèi)的數(shù)據(jù)與上述樣本數(shù)據(jù)庫(kù)中的樣本數(shù)據(jù)進(jìn)行對(duì)比,若存儲(chǔ)裝置的數(shù)據(jù)與所述樣本數(shù)據(jù)庫(kù)中的樣本數(shù)據(jù)有重復(fù),則標(biāo)記主機(jī)邏輯地址映射到存儲(chǔ)裝置的物理地址的地址映射表,修改所述地址映射表地址為第一個(gè)重復(fù)數(shù)據(jù)塊的地址,并把映射結(jié)果返回給主機(jī)。
[0006]與現(xiàn)有技術(shù)相比,本發(fā)明所具有的有益效果為:本發(fā)明把數(shù)據(jù)對(duì)比規(guī)模局限在每個(gè)存儲(chǔ)裝置內(nèi)部,減小了數(shù)據(jù)比對(duì)規(guī)模,同時(shí)讓每個(gè)存儲(chǔ)裝置并發(fā)對(duì)比,提高了對(duì)比效率,減少了對(duì)主機(jī)資源的依賴。由各個(gè)存儲(chǔ)裝置根據(jù)業(yè)務(wù)壓力或主機(jī)要求觸發(fā)相應(yīng)的數(shù)據(jù)對(duì)比操作,并能在正常的業(yè)務(wù)流程中使用,不局限于特殊的備份等業(yè)務(wù)場(chǎng)景。
【專利附圖】
【附圖說(shuō)明】
[0007]圖1為本發(fā)明一實(shí)施例方法原理圖。
【具體實(shí)施方式】
[0008]如下以存儲(chǔ)裝置為存儲(chǔ)陣列,主機(jī)為服務(wù)器為例說(shuō)明該技術(shù)方案具體實(shí)施過(guò)程:
1)服務(wù)器在下發(fā)業(yè)務(wù)數(shù)據(jù)過(guò)程中,首先在服務(wù)器上按照本發(fā)明的步驟1、步驟2、步驟3建立樣本數(shù)據(jù)庫(kù);
2)服務(wù)器與存儲(chǔ)陣列通過(guò)標(biāo)準(zhǔn)協(xié)議(如SCSI/SATA/SAS/FC)的自定義廠商命令或其他數(shù)據(jù)命令把樣本數(shù)據(jù)庫(kù)中數(shù)據(jù)下發(fā)給各個(gè)陣列。
[0009]3)每個(gè)存儲(chǔ)陣列收到服務(wù)器的對(duì)比數(shù)據(jù)請(qǐng)求后,把接收到的數(shù)據(jù)與陣列存儲(chǔ)的數(shù)據(jù)進(jìn)行對(duì)比等處理。即按照本發(fā)明的步驟4進(jìn)行處理。
[0010]經(jīng)過(guò)上述3步的具體實(shí)施后,每個(gè)存儲(chǔ)陣列的重復(fù)數(shù)據(jù)會(huì)同時(shí)進(jìn)行處理并刪除,而且并不影響服務(wù)器與陣列之間的正常業(yè)務(wù)數(shù)據(jù)處理。該方案同樣適用于存儲(chǔ)裝置為硬盤,主機(jī)為陣列或其他發(fā)起業(yè)務(wù)的設(shè)備。
[0011]如圖1所示,本發(fā)明方法如下:
首先主機(jī)下發(fā)數(shù)據(jù)到系統(tǒng)內(nèi)存,利用SimHash算法計(jì)算內(nèi)存數(shù)據(jù)樣本特征值并入庫(kù)保存,數(shù)據(jù)樣本特征值計(jì)算方法具體實(shí)現(xiàn)如下:
數(shù)據(jù)樣本特征值計(jì)算方法:通過(guò)隨機(jī)從內(nèi)存獲取一段數(shù)據(jù),然后利用SimHash算法對(duì)緩存中所有數(shù)據(jù)計(jì)算簽名,遍歷所有簽名,依次計(jì)算兩個(gè)簽名的海明距離(即兩個(gè)簽名二進(jìn)制異或后I的個(gè)數(shù)),將海明距離在3以內(nèi)的簽名作為高相似度數(shù)據(jù)(該海明距離誤判率比較低,海明距離越小,數(shù)據(jù)相似度越高),并統(tǒng)計(jì)每個(gè)高相似度數(shù)據(jù)的相似度計(jì)數(shù),將相似度計(jì)數(shù)最高的前N個(gè)簽名對(duì)應(yīng)的數(shù)據(jù)保存到初始樣本數(shù)據(jù)庫(kù)中,考慮數(shù)據(jù)庫(kù)容量及數(shù)據(jù)對(duì)比效率,其中100〈N〈5000,N隨盤片容量遞增而遞增;對(duì)于每個(gè)簽名,初始樣本重復(fù)率計(jì)數(shù)為O并依據(jù)樣本重復(fù)率和相似度計(jì)數(shù)建立索引,從而作為樣本數(shù)據(jù)庫(kù),當(dāng)新樣本入庫(kù)前應(yīng)當(dāng)先與庫(kù)中已有簽名計(jì)算海明距離后按相似度計(jì)數(shù)排名后再入庫(kù)。
[0012]SimHash算法描述如下:
該算法參考文獻(xiàn):
Moses S.Charikar 《Similarity estimat1n techniques from roundingalgorithms)).arist g1nis, p1ter indyk, rajeev motwani 《Similarity Search in HighDimens1ns via Hashing》
輸入為一個(gè)N維向量V,比如文本的特征向量,每個(gè)特征具有一定權(quán)重。輸出是一個(gè)C位的二進(jìn)制簽名S。
[0013]I)初始化一個(gè)C維向量Q為0,C位的二進(jìn)制簽名S為O。
[0014]2)對(duì)向量V中的每一個(gè)特征,使用傳統(tǒng)的Hash算法計(jì)算出一個(gè)C位的散列值H。對(duì) l〈=i〈=C,
如果H的第i位為I,則Q的第i個(gè)元素加上該特征的權(quán)重; 否則,Q的第i個(gè)元素減去該特征的權(quán)重。
[0015]3)如果Q的第i個(gè)元素大于0,則S的第i位為1 ;否則為0 ;
4)返回簽名S。
[0016]然后在主機(jī)業(yè)務(wù)壓力不大的情況下,從樣本數(shù)據(jù)庫(kù)中提取重復(fù)率最高的前N個(gè)數(shù)據(jù)樣本(樣本數(shù)據(jù)個(gè)數(shù)=盤片容量/ (lG^lM)),并通過(guò)自定義命令下發(fā)給存儲(chǔ)裝置。。
[0017]接著存儲(chǔ)裝置接收到主機(jī)請(qǐng)求后,啟動(dòng)內(nèi)部數(shù)據(jù)對(duì)比,對(duì)于重復(fù)數(shù)據(jù)需要修改地址映射值模塊,把該表項(xiàng)置為第一個(gè)重復(fù)的映射表中地址值,從而釋放對(duì)應(yīng)的物理空間,并把映射及對(duì)比結(jié)果返回給主機(jī),主機(jī)接收并保存存儲(chǔ)裝置的對(duì)比及映射結(jié)果。
【權(quán)利要求】
1.一種數(shù)據(jù)重刪方法,其特征在于,包括以下步驟: I)隨機(jī)從主機(jī)內(nèi)存獲取一段數(shù)據(jù),計(jì)算所獲取的數(shù)據(jù)的簽名,遍歷所有簽名,依次計(jì)算兩個(gè)簽名的海明距離,將海明距離在3以內(nèi)的簽名作為高相似度數(shù)據(jù),并統(tǒng)計(jì)每個(gè)高相似度數(shù)據(jù)的相似度計(jì)數(shù),將相似度計(jì)數(shù)最高的前N個(gè)簽名對(duì)應(yīng)的數(shù)據(jù)保存到初始樣本數(shù)據(jù)庫(kù)中,其中 100〈N〈5000 ; 2)再一次從主機(jī)內(nèi)存獲取一段數(shù)據(jù),按照步驟I)方法抽取該段數(shù)據(jù)中前N個(gè)簽名對(duì)應(yīng)的數(shù)據(jù),即待入庫(kù)數(shù)據(jù),將待入庫(kù)數(shù)據(jù)與上述初始樣本數(shù)據(jù)庫(kù)中的數(shù)據(jù)進(jìn)行對(duì)比,刪除待入庫(kù)數(shù)據(jù)中與所述初始樣本數(shù)據(jù)庫(kù)中數(shù)據(jù)相同的數(shù)據(jù),比較余下的待入庫(kù)數(shù)據(jù)的相似度計(jì)數(shù)與所述初始樣本數(shù)據(jù)庫(kù)中數(shù)據(jù)的相似度計(jì)數(shù),刪除相似度計(jì)數(shù)小于初始樣本數(shù)據(jù)庫(kù)中相似度計(jì)數(shù)的余下的待入庫(kù)數(shù)據(jù)中的數(shù)據(jù),得到準(zhǔn)入庫(kù)數(shù)據(jù),按照相似度計(jì)數(shù)從大到小的順序?qū)?zhǔn)入庫(kù)數(shù)據(jù)保存到所述初始樣本數(shù)據(jù)庫(kù)中; 3)重復(fù)上述步驟2),直到初始樣本數(shù)據(jù)庫(kù)中的樣本數(shù)據(jù)個(gè)數(shù)=盤片容量/(IGlM),即得到樣本數(shù)據(jù)庫(kù),將所述樣本數(shù)據(jù)庫(kù)發(fā)送給存儲(chǔ)裝置; 4)所述存儲(chǔ)裝置接收到主機(jī)請(qǐng)求后,將存儲(chǔ)裝置內(nèi)的數(shù)據(jù)與上述樣本數(shù)據(jù)庫(kù)中的樣本數(shù)據(jù)進(jìn)行對(duì)比,若存儲(chǔ)裝置的數(shù)據(jù)與所述樣本數(shù)據(jù)庫(kù)中的樣本數(shù)據(jù)有重復(fù),則標(biāo)記主機(jī)邏輯地址映射到存儲(chǔ)裝置的物理地址的地址映射表,修改所述地址映射表地址為第一個(gè)重復(fù)數(shù)據(jù)塊的地址,并把映射結(jié)果返回給主機(jī)。
【文檔編號(hào)】G06F17/30GK104391915SQ201410661035
【公開(kāi)日】2015年3月4日 申請(qǐng)日期:2014年11月19日 優(yōu)先權(quán)日:2014年11月19日
【發(fā)明者】呂輝, 姜黎, 馬翼 申請(qǐng)人:湖南國(guó)科微電子有限公司