專利名稱:相似性分析方法、裝置及系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明實(shí)施例涉及數(shù)據(jù)存儲領(lǐng)域,尤其涉及一種相似性分析方法、裝置及系統(tǒng)。
背景技術(shù):
伴隨著科技的發(fā)展,社會的信息量急劇增大,需要存儲的數(shù)據(jù)量以及隨之而來的存儲容量和存儲成本的增大已成為企業(yè)需要考慮的重要難題。重復(fù)數(shù)據(jù)刪除技術(shù)通過對存儲數(shù)據(jù)中多次出現(xiàn)的相同數(shù)據(jù)只存儲單一實(shí)例的方式,有效降低了數(shù)據(jù)備份等場景下的存儲容量需求,節(jié)省了存儲成本。在重復(fù)數(shù)據(jù)刪除技術(shù)中,通過采用多節(jié)點(diǎn)并發(fā)重復(fù)數(shù)據(jù)刪除來加快重復(fù)數(shù)據(jù)刪除處理速率,提高重復(fù)數(shù)據(jù)刪除性能,已被證明是一種行之有效的方法。多節(jié)點(diǎn)重復(fù)數(shù)據(jù)刪除方案中,在查詢重復(fù)塊時,每個分塊都需要查詢所有的分塊記錄以確認(rèn)是否存在重復(fù)數(shù)據(jù),導(dǎo)致在重復(fù)刪除數(shù)據(jù)量較大時查詢耗時很長。為了提高重復(fù)數(shù)據(jù)刪除性能,通過對文件進(jìn)行相似性分析,將相似度較大的文件的每個分塊和與該文件相似度較大的分組中的各分塊進(jìn)行比較,以在一個分組內(nèi)進(jìn)行重復(fù)數(shù)據(jù)刪除,使得查詢重復(fù)數(shù)據(jù)塊時只需要查詢分組內(nèi)的分塊記錄,通過犧牲有限的重刪率達(dá)到提高重復(fù)數(shù)據(jù)刪除性能的目的。雖然基于分組的多節(jié)點(diǎn)重復(fù)數(shù)據(jù)刪除減小了數(shù)據(jù)查詢的時間,但在對文件進(jìn)行相似性分析確定分組時,由于需要與所有分組的指紋進(jìn)行查詢匹配以確定相似度,每個文件都需要與所有分組的指紋進(jìn)行匹配查詢;同時,為了保證查詢準(zhǔn)確性,在每個文件進(jìn)行相似性分析時,都需要對保存分組指紋的文件進(jìn)行加鎖,導(dǎo)致多個節(jié)點(diǎn)不能并行地進(jìn)行匹配查詢,成為分組多節(jié)點(diǎn)重復(fù)數(shù)據(jù)刪除的性能瓶頸。
發(fā)明內(nèi)容
本發(fā)明實(shí)施例提供一種相似性分析方法、裝置及系統(tǒng),用以解決現(xiàn)有的相似性分析成為分組多節(jié)點(diǎn)重復(fù)數(shù)據(jù)刪除的性能瓶頸的問題。第一方面,本發(fā)明實(shí)施例提供的一種相似性分析方法,包括獲取待分析文件的文件指紋信息;將攜帶所述文件指紋信息的分析請求發(fā)送給至少兩個元數(shù)據(jù)服務(wù)器MDS,以使所述至少兩個MDS分別根據(jù)所述文件指紋信息查詢本地的各文件指紋信息集,所述各文件指紋信息集分別包括所述MDS負(fù)責(zé)的各分組中的文件指紋信息;根據(jù)各MDS返回的分析結(jié)果選擇至少一個分組,所述分析結(jié)果包括每個MDS根據(jù)本地的各文件指紋信息集查詢到的與所述文件指紋信息相似度最高的至少一個分組的組號和相似度;將預(yù)先獲取的所述待分析文件中各數(shù)據(jù)塊的塊指紋信息發(fā)送給所述選擇的分組所屬的MDS,以使所述MDS將所述待分析文件中的各數(shù)據(jù)塊的塊指紋信息與本地的所述選擇的分組中的塊指紋信息庫進(jìn)行比較,以查詢重復(fù)數(shù)據(jù)塊,所述選擇的分組中的塊指紋信息庫包括塊指紋信息。
在第一方面的第一種可能的實(shí)現(xiàn)方式中,所述根據(jù)各MDS返回的分析結(jié)果選擇至少一個分組,包括若各MDS返回的分析結(jié)果中最高的至少一個相似度高于預(yù)設(shè)閾值,則選擇所述最高的至少一個相似度對應(yīng)的至少一個分組;若各MDS返回的分析結(jié)果中的相似度均不高于所述預(yù)設(shè)閾值,則選擇至少一個預(yù)先建立的空閑的分組。結(jié)合第一方面的第一種可能的實(shí)現(xiàn)方式,在第一方面的第二種可能的實(shí)現(xiàn)方式中,所述分析結(jié)果還包括所述各MDS的負(fù)載信息;所述選擇至少一個預(yù)先建立的空閑的分組,包括選擇所屬M(fèi)DS負(fù)載最小的至少一個空閑的分組。結(jié)合第一方面或第一方面的上述幾種可能的實(shí)現(xiàn)方式,在第一方面的第三種可能的實(shí)現(xiàn)方式中,所述獲取待分析文件的文件指紋信息,之前還包括建立預(yù)設(shè)數(shù)量的空閑的分組;根據(jù)預(yù)設(shè)的分配策略,將所述預(yù)設(shè)數(shù)量的空閑的分組分別分配給所述多個MDS。第二方面,本發(fā)明實(shí)施例提供了一種相似性分析方法,包括接收數(shù)據(jù)重復(fù)刪除引擎DDE發(fā)送的分析請求,所述分析請求攜帶待分析文件的文件指紋信息;查詢本地的各文件指紋信息集,所述各文件指紋信息集分別包括所負(fù)責(zé)的各分組中的文件指紋信息,獲取所述分析請求中的文件指紋信息與所負(fù)責(zé)的各分組的相似度;將分析結(jié)果發(fā)送給所述DDE,所述分析結(jié)果包括與所述文件指紋信息相似度最高的至少一個分組的組號和相似度。在第二方面的第一種可能的實(shí)現(xiàn)方式中,所述查詢本地的各文件指紋信息集,獲取所述分析請求中的文件指紋信息與所負(fù)責(zé)的各分組的相似度包括分別獲取各分組的各文件指紋信息與所述分析請求中的文件指紋信息的相似度;基于每個分組,將分組中的各文件指紋信息與所述分析請求中的文件指紋信息的相似度中最高的相似度作為所述分組與所述分析請求中的文件指紋信息的相似度,以獲得每個分組和所述分析請求中的文件指紋信息的相似度。結(jié)合第二方面或第二方面的第一種可能的實(shí)現(xiàn)方式,在第二方面的第二種可能的實(shí)現(xiàn)方式中,所述將分析結(jié)果發(fā)送給所述DDE之后,還包括接收所述DDE的查詢請求,所述查詢請求包括所述待分析文件中各數(shù)據(jù)塊的塊指紋信息和所述DDE選擇的分組的組號;將所述各數(shù)據(jù)塊的塊指紋信息與所述選擇的分組中的塊指紋信息庫進(jìn)行比較,以查詢重復(fù)數(shù)據(jù)塊,所述選擇的分組中的塊指紋信息庫包括所述選擇的分組中的塊指紋信息;將所述各數(shù)據(jù)塊中不重復(fù)的數(shù)據(jù)塊的塊指紋信息保存到所述選擇的分組中的塊指紋信息庫中;將所述待分析文件的文件指紋信息保存到所述選擇的分組中的文件指紋信息集中。
第三方面,本發(fā)明實(shí)施例提供了一種數(shù)據(jù)重復(fù)刪除引擎DDE,包括獲取模塊,用于獲取待分析文件的文件指紋信息;發(fā)送模塊,用于將攜帶所述文件指紋信息的分析請求發(fā)送給至少兩個元數(shù)據(jù)服務(wù)器MDS,以使所述至少兩個MDS分別根據(jù)所述文件指紋信息查詢本地的各文件指紋信息集,所述各文件指紋信息集分別包括所述MDS負(fù)責(zé)的各分組中的文件指紋信息;選擇模塊,用于根據(jù)各MDS返回的分析結(jié)果選擇至少一個分組,所述分析結(jié)果包括每個MDS根據(jù)本地的各文件指紋信息集查詢到的與所述文件指紋信息相似度最高的至少一個分組的組號和相似度;分配模塊,用于將預(yù)先獲取的所述待分析文件中各數(shù)據(jù)塊的塊指紋信息發(fā)送給所述選擇的分組所屬的MDS,以使所述MDS將所述待分析文件中的各數(shù)據(jù)塊的塊指紋信息與本地的所述選擇的分組中的塊指紋信息庫進(jìn)行比較,以查詢重復(fù)數(shù)據(jù)塊,所述選擇的分組中的塊指紋信息庫包括塊指紋信息。在第三方面的第一種可能的實(shí)現(xiàn)方式中,所述選擇模塊具體用于若各MDS返回的分析結(jié)果中最高的至少一個相似度高于預(yù)設(shè)閾值,則選擇所述最高的至少一個相似度對應(yīng)的至少一個分組;若各MDS返回的分析結(jié)果中的相似度均不高于所述預(yù)設(shè)閾值,則選擇至少一個預(yù)先建立的空閑的分組。結(jié)合第三方面的第一種可能的實(shí)現(xiàn)方式,在第三方面的第二種可能的實(shí)現(xiàn)方式中,所述分析結(jié)果還包括所述MDS的負(fù)載信息;所述選擇模塊在各MDS返回的分析結(jié)果中的相似度均不高于所述預(yù)設(shè)閾值情況下選擇所屬M(fèi)DS負(fù)載最小的至少一個空閑的分組。結(jié)合第三方面或第三方面的上述幾種可能的實(shí)現(xiàn)方式,在第三方面的第三種可能的實(shí)現(xiàn)方式中,還包括分組建立模塊,用于在所述獲取模塊獲取待分析文件的文件指紋信息之前,建立預(yù)設(shè)數(shù)量的空閑的分組;分組分配模塊,用于根據(jù)預(yù)設(shè)的分配策略,將所述預(yù)設(shè)數(shù)量的空閑的分組分別分配給所述多個MDS。第四方面,本發(fā)明實(shí)施例提供了一種元數(shù)據(jù)服務(wù)器MDS,包括接收模塊,用于接收數(shù)據(jù)重復(fù)刪除引擎DDE發(fā)送的分析請求,所述分析請求攜帶待分析文件的文件指紋信息;分析模塊,用于查詢本地的各文件指紋信息集,所述各文件指紋信息集分別包括所負(fù)責(zé)的各分組中的文件指紋信息,獲取所述分析請求中的文件指紋信息與所負(fù)責(zé)的各分組的相似度;發(fā)送模塊,用于將分析結(jié)果發(fā)送給所述DDE,所述分析結(jié)果包括與所述文件指紋信息相似度最高的至少一個分組的組號和相似度。在第四方面的第一種可能的實(shí)現(xiàn)方式中,所述分析模塊具體用于分別獲取各分組的各文件指紋信息與所述分析請求中的文件指紋信息的相似度;基于每個分組,將分組中的各文件指紋信息與所述分析請求中的文件指紋信息的相似度中最高的相似度作為所述分組與所述分析請求中的文件指紋信息的相似度,以獲得每個分組和所述分析請求中的文件指紋信息的相似度。結(jié)合第四方面或第四方面的第一種可能的實(shí)現(xiàn)方式,在第四方面的第二種可能的實(shí)現(xiàn)方式中,所述接收模塊還用于接收所述DDE的查詢請求,所述查詢請求包括所述待分析文件中各數(shù)據(jù)塊的塊指紋信息和所述DDE選擇的分組的組號;所述MDS還包括查詢模塊,用于將所述各數(shù)據(jù)塊的塊指紋信息與所述選擇的分組中的塊指紋信息庫進(jìn)行比較,以查詢重復(fù)數(shù)據(jù)塊,所述選擇的分組中的塊指紋信息庫包括所述選擇的分組中的塊指紋信息;保存模塊,用于將所述各數(shù)據(jù)塊中不重復(fù)的數(shù)據(jù)塊的塊指紋信息保存到所述選擇的分組中的塊指紋信息庫中;將所述待分析文件的文件指紋信息保存到所述選擇的分組中的文件指紋信息集中。第五方面,本發(fā)明實(shí)施例提供了一種相似性分析系統(tǒng),包括如上所述的DDE,和多個如上所述的MDS。以上多個技術(shù)方案中的至少一個技術(shù)方案具有如下優(yōu)點(diǎn)或有益效果本發(fā)明實(shí)施例采用將攜帶文件指紋信息的分析請求發(fā)送給至少兩個元數(shù)據(jù)服務(wù)器(Meta Data Server,簡稱MDS),以使所述至少兩個MDS分別根據(jù)所述文件指紋信息查詢本地所負(fù)責(zé)各分組的文件指紋信息集,并根據(jù)各MDS返回的攜帶有查詢到的與所述文件指紋信息相似度最高的至少一個分組的組號和相似度的分析結(jié)果選擇至少一個分組,將所述待分析文件中各數(shù)據(jù)塊的塊指紋信息發(fā)送給所述選擇的分組所屬的MDS,以使所述MDS進(jìn)行重復(fù)塊查詢的技術(shù)手段,使得每個MDS只需查詢自身所負(fù)責(zé)分組的文件指紋信息集,減少了數(shù)據(jù)檢索量和對數(shù)據(jù)庫文件讀寫加鎖的等待時間,且由多個MDS并發(fā)完成相似性分析,提高了相似性分析的性能。另外,本發(fā)明實(shí)施例通過MDS完成相似性分析中大量的計算和排序工作,減少了對DDE的資源占用。
為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作一簡單地介紹,顯而易見地,下面描述中的附圖是本發(fā)明的一些實(shí)施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。圖1為本發(fā)明實(shí)施例提供的一種相似性分析方法的流程示意圖;圖2為本發(fā)明實(shí)施例提供的又一種相似性分析方法的流程示意3為本發(fā)明實(shí)施例提供的一種DDE300的結(jié)構(gòu)示意圖;圖4為本發(fā)明實(shí)施例提供的一種MDS400的結(jié)構(gòu)示意圖;圖5為本發(fā)明實(shí)施例提供的又一種DDE500的結(jié)構(gòu)示意圖;圖6為本發(fā)明實(shí)施例提供的又一種MDS600的結(jié)構(gòu)示意圖;圖7為本發(fā)明實(shí)施例提供的一種相似性分析系統(tǒng)700的結(jié)構(gòu)示意圖。
具體實(shí)施方式
為使本發(fā)明實(shí)施例的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。圖1為本發(fā)明實(shí)施例提供的一種相似性分析方法的流程示意圖。如圖1所示,該方法包括101、獲取待分析文件的文件指紋信息。舉例來說,本發(fā)明實(shí)施例提供的數(shù)據(jù)重復(fù)刪除引擎(Data Deduplicate Engine,簡稱DDE)獲取待分析文件的文件指紋信息。所述待分析文件可以是任意的待存儲的文件?!?br>
101可以包括將所述待分析文件分成至少一個數(shù)據(jù)塊;從所述待分析文件處理后得到的數(shù)據(jù)塊中提取獲取至少一個數(shù)據(jù)塊的塊指紋信息;將所述至少一個數(shù)據(jù)塊的塊指紋信息組合成所述待分析文件的文件指紋信息。數(shù)據(jù)塊的塊指紋信息包含在數(shù)據(jù)塊的元數(shù)據(jù)中。所述將所述至少一個數(shù)據(jù)塊的塊指紋信息組合成所述待分析文件的文件指紋信息的方法,具體為,將待分析文件中全部或部分?jǐn)?shù)據(jù)塊的塊指紋信息組合成所述待分析文件的文件指紋信息。102、將攜帶所述文件指紋信息的分析請求發(fā)送給至少兩個MDS,以使所述至少兩個MDS分別根據(jù)所述文件指紋信息查詢本地的各文件指紋信息集,各文件指紋信息集分別包括所述MDS負(fù)責(zé)的各分組中的文件指紋信息。具體地,所述多個MDS可以位于存儲系統(tǒng)中不同的節(jié)點(diǎn)上,通常,存儲系統(tǒng)中每個節(jié)點(diǎn)上設(shè)置有一個MDS和一個DDE。每個分組包括該分組的文件指紋信息集和塊指紋信息庫,且每個分組有一個唯一的組號。一個分組的文件指紋信息集包含該分組的所有文件指紋信息,一個分組的塊指紋信息庫包含該分組的所有塊指紋信息。可選地,每個MDS負(fù)責(zé)哪些分組在預(yù)先建立分組時就確定了,一個MDS可以負(fù)責(zé)一個或多個分組。假設(shè)預(yù)先建立了 m個分組、一共有η個MDS,則根據(jù)平均分配的策略每個MDS負(fù)責(zé)維護(hù)m/n個分組,即每個MDS負(fù)責(zé)m/n個分組的文件指紋信息集及塊指紋信息庫。具體地,文件指紋信息集及塊指紋信息庫均以數(shù)據(jù)庫文件的形式存放。每個分組中的文件指紋信息集包括至少一個文件指紋信息。每個MDS遍歷所負(fù)責(zé)分組的文件指紋信息集中的各文件指紋信息,計算分析請求中的文件指紋信息與所負(fù)責(zé)分組的文件指紋信息集中的各文件指紋信息的相似度。舉例來說,分析請求中的文件指紋信息為(A,B, C),文件指紋信息集中的一個文件指紋信息為(A,C,D,E),則兩者的相似度為兩者中相同的塊指紋信息的個數(shù)除以兩者中塊指紋信息的總個數(shù),即為2/5=0. 4。上述僅為相似度的一種計算方法示例,本實(shí)施例對相似度的計算方法不做限定。103、根據(jù)各MDS返回的分析結(jié)果選擇至少一個分組,所述分析結(jié)果包括每個MDS根據(jù)本地的各文件指紋信息集查詢到的與所述文件指紋信息相似度最高的至少一個分組的組號和相似度。其中,可以選擇相似度最高的分組。對應(yīng)地,103可以包括選擇各MDS返回的分析結(jié)果中相似度最高的至少一個分組。
可選地,所述根據(jù)MDS返回的分析結(jié)果選擇至少一個分組,可以包括判斷所述MDS返回的分析結(jié)果中最高的相似度的至少一個分組是否符合預(yù)先設(shè)置的分組選擇策略,這里的分組選擇策略通常指相似度閾值。對應(yīng)地,103可以包括若各MDS返回的分析結(jié)果中最高的至少一個相似度高于預(yù)設(shè)閾值,則選擇所述最高的至少一個相似度對應(yīng)的至少一個分組。若各MDS返回的分析結(jié)果中的相似度均不高于所述預(yù)設(shè)閾值,則選擇至少一個預(yù)先建立的空閑的分組。進(jìn)一步地,為了達(dá)到負(fù)載均衡的目標(biāo),還可以在選擇空閑的分組時選擇所屬M(fèi)DS負(fù)載較小的空閑的分組。對應(yīng)地,所述分析結(jié)果還包括所述MDS的負(fù)載信息;所述選擇至少一個預(yù)先建立的空閑的分組,包括選擇所屬M(fèi)DS負(fù)載最小的至少一個空閑的分組。具體地,所述MDS的負(fù)載信息包括所述MDS正在進(jìn)行重復(fù)塊查詢的文件的個數(shù)。進(jìn)一步地,101之前還包括建立預(yù)設(shè)數(shù)量的空閑的分組;根據(jù)預(yù)設(shè)的分配策略,將所述預(yù)設(shè)數(shù)量的空閑的分組分別分配給所述多個MDS。具體地,在初始化時可以根據(jù)配置文件中的數(shù)量和分配策略,建立相應(yīng)個數(shù)的空閑的分組,并將所有建立的空閑的分組分別分配給所述多個MDS。舉例來說,分配策略可以是隨機(jī)分配,也可以是平均分配。每個MDS負(fù)責(zé)維護(hù)分配給自身的分組,一個MDS可以負(fù)責(zé)一個或多個分組。通常,建立空閑的分組是指為該分組分配一個組號和一個存儲空間,空閑的分組中的文件指紋信息集和塊指紋信息庫均為空。104、將所述待分析文件中各數(shù)據(jù)塊的塊指紋信息發(fā)送給所述選擇的分組所屬的MDS,以使所述MDS將所述待分析文件中的各數(shù)據(jù)塊的塊指紋信息與本地的所述選擇的分組中的塊指紋信息庫進(jìn)行比較,以查詢重復(fù)數(shù)據(jù)塊,所述選擇的分組中的塊指紋信息庫包括塊指紋信息。具體地,若選擇了一個分組,則將所述待分析文件中各數(shù)據(jù)塊的塊指紋信息發(fā)送給所述選擇的一個分組所屬的MDS;若選擇了多個分組,則將所述待分析文件中各數(shù)據(jù)塊的塊指紋信息發(fā)送給所述選擇的各個分組所屬的MDS,選擇的各個分組較優(yōu)地屬于同一MDS,本實(shí)施例對此不做限定。具體地,所述選擇的分組所屬的MDS查詢在所述選擇的分組的塊指紋信息庫中是否有與所述待分析文件中數(shù)據(jù)塊的塊指紋信息相同的,若有,則說明存在與該數(shù)據(jù)塊重復(fù)的分塊,若沒有,則說明不存在與該數(shù)據(jù)塊重復(fù)的分塊,將該數(shù)據(jù)塊的塊指紋信息添加到所述選擇的分組的塊指紋信息庫中。之后,所述選擇的分組所屬的MDS還將所述待分析文件的文件指紋信息保存到所述選擇的分組中的文件指紋信息集中。需要說明的是,由于空閑的分組的塊指紋信息庫是空的,若103中選擇的是空閑的分組,則MDS在塊指紋信息庫中查詢不到與所述待分析文件中各數(shù)據(jù)塊的塊指紋信息相同的塊指紋信息,相應(yīng)地,MDS會將所述待分析文件中各數(shù)據(jù)塊的塊指紋信息均存儲在該空閑的分組的塊指紋信息庫中,將所述待分析文件的文件指紋信息保存到該空閑的分組中的文件指紋信息集中,此后,該空閑的分組就不再空閑了。102中,DDE可選地直接將攜帶所述文件指紋信息的分析請求廣播給所有MDS。可選地,DDE先將所述待分析文件的文件指紋信息與預(yù)先存儲的各分組的特征信息進(jìn)行匹配,確定與該待分析文件匹配的分組,然后將所述分析請求發(fā)送給所述匹配的分組所屬的MDS。具體地,各分組的特征信息可以是根據(jù)各分組的文件指紋信息集得到的,需要說明的是,在此場景下,DDE進(jìn)行匹配的工作量小于MDS將計算分析請求中的文件指紋信息與各分組的相似度的工作量。本發(fā)明實(shí)施例采用將攜帶文件指紋信息的分析請求發(fā)送給至少兩個MDS,以使所述至少兩個MDS分別根據(jù)所述文件指紋信息查詢本地所負(fù)責(zé)各分組的文件指紋信息集,并根據(jù)各MDS返回的攜帶有查詢到的與所述文件指紋信息相似度最高的至少一個分組的組號和相似度的分析結(jié)果選擇至少一個分組,將所述待分析文件中各數(shù)據(jù)塊的塊指紋信息發(fā)送給所述選擇的分組所屬的MDS,以使所述MDS進(jìn)行重復(fù)塊查詢的技術(shù)手段,使得每個MDS只需查詢自身所負(fù)責(zé)分組的文件指紋信息集,減少了數(shù)據(jù)檢索量和對數(shù)據(jù)庫文件讀寫加鎖的等待時間,且由多個MDS并發(fā)完成相似性分析,提高了相似性分析的性能。另外,本發(fā)明實(shí)施例通過MDS完成相似性分析中大量的計算和排序工作,減少了對DDE的資源占用。圖2為本發(fā)明實(shí)施例提供的又一種相似性分析方法的流程示意圖。如圖2所示, 包括201、接收DDE發(fā)送的分析請求,所述分析請求攜帶待分析文件的文件指紋信息。舉例來說,本發(fā)明實(shí)施例提供的各MDS分別接收DDE發(fā)送的分析請求。所述待分析文件可以是任意的待存儲的文件。具體地,所述DDE位于存儲系統(tǒng)中一個的節(jié)點(diǎn)上,通常,存儲系統(tǒng)中每個節(jié)點(diǎn)上設(shè)置有一個MDS和一個DDE。202、查詢本地的各文件指紋信息集,各文件指紋信息集分別包括所負(fù)責(zé)的各分組中的文件指紋信息,獲取所述分析請求中的文件指紋信息與所負(fù)責(zé)的各分組的相似度。具體地,每個分組包括該分組的文件指紋信息集和塊指紋信息庫,且每個分組有一個唯一的組號??蛇x地,每個MDS負(fù)責(zé)哪些分組在預(yù)先建立分組時就確定了,一個MDS可以負(fù)責(zé)一個或多個分組。舉例來說,預(yù)先建立了 m個分組、一共有η個MDS,則根據(jù)平均分配的策略每個MDS負(fù)責(zé)維護(hù)m/n個分組,即每個MDS負(fù)責(zé)m/n個分組的文件指紋信息集及塊指紋信息庫。具體地,文件指紋信息集及塊指紋信息庫均以數(shù)據(jù)庫文件的形式存放。每個分組中的文件指紋信息集包括至少一個文件指紋信息。每個MDS遍歷所負(fù)責(zé)分組的文件指紋信息集中的各文件指紋信息,計算分析請求中的文件指紋信息與所負(fù)責(zé)分組的文件指紋信息集中的各文件指紋信息的相似度。舉例來說,分析請求中的文件指紋信息為(A,B, C),文件指紋信息集中的一個文件指紋信息為(A,C,D,E),則兩者的相似度為兩者中相同的塊指紋信息的個數(shù)除以兩者中塊指紋信息的總個數(shù),即為2/5=0. 4。具體地,202可以包括分別獲取各分組中的各文件指紋信息與所述分析請求中的文件指紋信息的相似度;基于每個分組,將分組中的各文件指紋信息與所述分析請求中的文件指紋信息的相似度中最高的相似度作為所述分組與所述分析請求中的文件指紋信息的相似度,以獲得每個分組和所述分析請求中的文件指紋信息的相似度。舉例來說,分析請求中的文件指紋信息為X,分組A中的文件指紋信息集中包括文件指紋信息a、b、c,假設(shè)X與a的相似度為O. 5,X與b的相似度為O. 7,X與c的相似度為O. 45,則X與分組A的相似度為O. 7。
203、將分析結(jié)果發(fā)送給所述DDE,所述分析結(jié)果包括與所述文件指紋信息相似度最高的至少一個分組的組號和相似度。舉例來說,MDS負(fù)責(zé)分組A、分組B和分組C,分析請求中的文件指紋信息X與分組A的相似度為O. 7,與分組B的相似度為O. 6,與分組C的相似度為O. 5,若分析結(jié)果僅包括相似度最高的一個分組的組號和相似度,則分析結(jié)果包括相似度O. 7和分組A的組號,可選地以二元組(A,O. 7)表示;若分析結(jié)果包括相似度最高的兩個分組的組號和相似度,則分析結(jié)果包括相似度O. 7和分組A的組號,以及相似度O. 6和分組B的組號,可選地以(A,O. 7),(B,0.6)表示。通常,分析結(jié)果中包括相似度最高的多少個分組的組號和相似度,可以根據(jù)預(yù)先設(shè)定,也可以由DDE在分析請求中指定。進(jìn)一步地,若DDE選擇了本MDS所負(fù)責(zé)的分組進(jìn)行重復(fù)塊查詢,則203之后,還可以包括接收所述DDE的查詢請求,所述查詢請求包括所述待分析文件中各數(shù)據(jù)塊的塊指紋信息和所述DDE選擇的分組的組號;將所述各數(shù)據(jù)塊的塊指紋信息與所述選擇的分組中的塊指紋信息庫進(jìn)行比較,以查詢重復(fù)數(shù)據(jù)塊,所述選擇的分組中的塊指紋信息庫包括所述選擇的分組中的塊指紋信息;將所述各數(shù)據(jù)塊中不重復(fù)的數(shù)據(jù)塊的塊指紋信息保存到所述選擇的分組中的塊指紋信息庫中;將所述待分析文件的文件指紋信息保存到所述選擇的分組中的文件指紋信息集中。通常,DDE選擇至少一個分組進(jìn)行重復(fù)塊查詢。具體地,若選擇了一個分組,則將所述待分析文件中各數(shù)據(jù)塊的塊指紋信息發(fā)送給所述選擇的一個分組所屬的MDS ;若選擇了多個分組,則將所述待分析文件中各數(shù)據(jù)塊的塊指紋信息發(fā)送給所述選擇的各個分組所屬的MDS,選擇的各個分組較優(yōu)地屬于同一 MDS,本實(shí)施例對此不做限定。對于MDS來說,若接收到了 DDE的查詢請求,則說明DDE選擇了本MDS負(fù)責(zé)的分組進(jìn)行重復(fù)塊查詢,若DDE的查詢請求除了各數(shù)據(jù)塊的塊指紋信息,僅包括本MDS上一個分組的組號,則MDS僅在該分組中進(jìn)行重復(fù)塊查詢;若DDE的查詢請求除了各數(shù)據(jù)塊的塊指紋信息,僅包括本MDS上多個分組的組號,則MDS僅在該多個分組中進(jìn)行重復(fù)塊查詢,具體地,只有在該多個分組的塊指紋信息庫中均查詢不到與一個數(shù)據(jù)塊的塊指紋信息相同的塊指紋信息時,該數(shù)據(jù)塊才是不重復(fù)的數(shù)據(jù)塊,將不重復(fù)的數(shù)據(jù)塊的塊指紋信息保存到該多個分組中一個分組的塊指紋信息庫中,將待分析文件的文件指紋信息也對應(yīng)地保存到該分組的文件指紋信息集中。本發(fā)明實(shí)施例采用接收DDE發(fā)送的攜帶文件指紋信息的分析請求,查詢所負(fù)責(zé)的各分組中的文件指紋信息集,獲取所述文件指紋信息與所負(fù)責(zé)的各分組的相似度,將包括與所述文件指紋信息相似度最高的至少一個分組的組號和相似度的分析結(jié)果發(fā)送給所述DDE,以使所述DDE選擇至少一個分組進(jìn)行重復(fù)塊查詢的技術(shù)手段,使得每個MDS只需查詢自身所負(fù)責(zé)分組的文件指紋信息集,減少了數(shù)據(jù)檢索量和對數(shù)據(jù)庫文件讀寫加鎖的等待時間,且可以由多個MDS并發(fā)完成相似性分析,提高了相似性分析的性能。另外,本發(fā)明實(shí)施例通過MDS完成相似性分析中大量的計算和排序工作,減少了對DDE的資源占用。
本領(lǐng)域普通技術(shù)人員可以理解實(shí)現(xiàn)上述各方法實(shí)施例的全部或部分步驟可以通過程序指令相關(guān)的硬件來完成。前述的程序可以存儲于一計算機(jī)可讀取存儲介質(zhì)中。該程序在執(zhí)行時,執(zhí)行包括上述各方法實(shí)施例的步驟;而前述的存儲介質(zhì)包括R0M、RAM、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)。圖3為本發(fā)明實(shí)施例提供的一種DDE300的結(jié)構(gòu)示意圖。如圖3所示,DDE300包括獲取模塊31,用于獲取待分析文件的文件指紋信息;發(fā)送模塊32,用于將攜帶所述文件指紋信息的分析請求發(fā)送給至少兩個MDS,以使所述至少兩個MDS分別根據(jù)所述文件指紋信息查詢本地的各文件指紋信息集,所述各文件指紋信息集分別包括所述MDS負(fù)責(zé)的各分組中的文件指紋信息;選擇模塊33,用于根據(jù)各MDS返回的分析結(jié)果選擇至少一個分組,所述分析結(jié)果包括每個MDS根據(jù)本地的各文件指紋信息集查詢到的與所述文件指紋信息相似度最高的至少一個分組的組號和相似度;分配模塊34,用于將預(yù)先獲取的所述待分析文件中各數(shù)據(jù)塊的塊指紋信息發(fā)送給所述選擇的分組所屬的MDS,以使所述MDS將所述待分析文件中的各數(shù)據(jù)塊的塊指紋信息與本地的所述選擇的分組中的塊指紋信息庫進(jìn)行比較,以查詢重復(fù)數(shù)據(jù)塊,所述選擇的分組中的塊指紋信息庫包括塊指紋信息。本實(shí)施例中的DDE300可以與各MDS位于存儲系統(tǒng)中的相同或不同的節(jié)點(diǎn)上,通常,每個節(jié)點(diǎn)上設(shè)置有一個MDS和一個DDE。進(jìn)一步地,選擇模塊33具體用于選擇各MDS返回的分析結(jié)果中相似度最高的至少一個分組??蛇x地,選擇模塊33具體用于若各MDS返回的分析結(jié)果中最高的至少一個相似度高于預(yù)設(shè)閾值,則選擇所述最高的至少一個相似度對應(yīng)的至少一個分組。進(jìn)一步地,選擇模塊33具體還用于若各MDS返回的分析結(jié)果中的相似度均不高于所述預(yù)設(shè)閾值,則選擇至少一個預(yù)先建立的空閑的分組。優(yōu)選地,所述分析結(jié)果還包括所述MDS的負(fù)載信息;選擇模塊33在各MDS返回的分析結(jié)果中的相似度均不高于所述預(yù)設(shè)閾值情況下選擇所屬M(fèi)DS負(fù)載最小的至少一個空閑的分組。具體地,所述MDS的負(fù)載信息包括所述MDS正在進(jìn)行重復(fù)塊查詢的文件的個數(shù)。進(jìn)一步地,DDE300還包括分組建立模塊,用于在獲取模塊31獲取待分析文件的文件指紋信息之前,建立預(yù)設(shè)數(shù)量的空閑的分組;分組分配模塊,用于根據(jù)預(yù)設(shè)的分配策略,將所述預(yù)設(shè)數(shù)量的空閑的分組分別分配給所述多個MDS。進(jìn)一步地,獲取模塊31包括分塊單元,用于將所述待分析文件分成至少一個數(shù)據(jù)塊;提取單元,用于從所述待分析文件處理后得到的數(shù)據(jù)塊中提取至少一個數(shù)據(jù)塊的塊指紋信息;生成單元,用于將所述至少一個數(shù)據(jù)塊的塊指紋信息組合成所述待分析文件的文件指紋信息。本實(shí)施例的具體實(shí)現(xiàn)參照本發(fā)明實(shí)施例提供的一種相似性分析方法。本發(fā)明實(shí)施例采用DDE將攜帶文件指紋信息的分析請求發(fā)送給至少兩個MDS,以使所述至少兩個MDS分別根據(jù)所述文件指紋信息查詢本地所負(fù)責(zé)分組的文件指紋信息集,并根據(jù)各MDS返回的攜帶查詢到的與所述文件指紋信息相似度最高的至少一個分組的組號和相似度的分析結(jié)果選擇至少一個分組,將所述待分析文件中各數(shù)據(jù)塊的塊指紋信息發(fā)送給所述選擇的分組所屬的MDS,以使所述MDS進(jìn)行重復(fù)塊查詢的技術(shù)手段,使得每個MDS只需查詢自身所負(fù)責(zé)分組的文件指紋信息集,減少了數(shù)據(jù)檢索量和對數(shù)據(jù)庫文件讀寫加鎖的等待時間,且由多個MDS并發(fā)完成相似性分析,提高了相似性分析的性能。另外,本發(fā)明實(shí)施例通過MDS完成相似性分析中大量的計算和排序工作,減少了對DDE的資源占用。圖4為本發(fā)明實(shí)施例提供的一種MDS400的結(jié)構(gòu)示意圖。如圖4所示,MDS400包括接收模塊41,用于接收DDE發(fā)送的分析請求,所述分析請求攜帶待分析文件的文件指紋信息;分析模塊42,用于查詢本地的各文件指紋信息集,所述各文件指紋信息集分別包括所負(fù)責(zé)的各分組中的文件指紋信息,獲取所述分析請求中的文件指紋信息與所負(fù)責(zé)的各分組的相似度;發(fā)送模塊43,用于將分析結(jié)果發(fā)送給所述DDE,所述分析結(jié)果包括與所述文件指紋信息相似度最高的至少一個分組的組號和相似度。進(jìn)一步地,分析模塊42具體用于分別獲取各分組的各文件指紋信息與所述分析請求中的文件指紋信息的相似度;基于每個分組,將分組中的各文件指紋信息與所述分析請求中的文件指紋信息的相似度中最高的相似度作為所述分組與所述分析請求中的文件指紋信息的相似度,以獲得每個分組和所述分析請求中的文件指紋信息的相似度。進(jìn)一步地,接收模塊41還用于接收所述DDE的查詢請求,所述查詢請求包括所述待分析文件中各數(shù)據(jù)塊的塊指紋信息和所述DDE選擇的分組的組號;MDS400 還包括查詢模塊,用于將所述各數(shù)據(jù)塊的塊指紋信息與所述選擇的分組中的塊指紋信息庫進(jìn)行比較,以查詢重復(fù)數(shù)據(jù)塊,所述選擇的分組中的塊指紋信息庫包括所述選擇的分組中的塊指紋信息;保存模塊,用于將所述各數(shù)據(jù)塊中不重復(fù)的數(shù)據(jù)塊的塊指紋信息保存到所述選擇的分組中的塊指紋信息庫中;將所述待分析文件的文件指紋信息保存到所述選擇的分組中的文件指紋信息集中。本實(shí)施例的具體實(shí)現(xiàn)參照本發(fā)明實(shí)施例提供的又一種相似性分析方法。本發(fā)明實(shí)施例采用MDS接收DDE發(fā)送的攜帶文件指紋信息的分析請求,查詢本地所負(fù)責(zé)的各分組中的文件指紋信息集,獲取所述文件指紋信息與所負(fù)責(zé)的各分組的相似度,將包括與所述文件指紋信息相似度最高的至少一個分組的組號和相似度的分析結(jié)果發(fā)送給所述DDE,以使所述DDE選擇至少一個分組進(jìn)行重復(fù)塊查詢的技術(shù)手段,使得每個MDS只需查詢自身所負(fù)責(zé)分組的文件指紋信息集,減少了數(shù)據(jù)檢索量和對數(shù)據(jù)庫文件讀寫加鎖的等待時間,且可以由多個MDS并發(fā)完成相似性分析,提高了相似性分析的性能。另外,本發(fā)明實(shí)施例通過MDS完成相似性分析中大量的計算和排序工作,減少了對DDE的資源占用。圖5為本發(fā)明實(shí)施例提供的又一種DDE500的結(jié)構(gòu)示意圖。如圖5所示,DDE500 —般包括至少一個處理器510,例如中央處理單元(Central Processing Unit,簡稱CPU),數(shù)字信號處理器(Digital Signal Processor,簡稱DSP),至少一個端口 520,存儲器530,和至少一個通信總線540。通信總線540用于實(shí)現(xiàn)這些裝置之間的連接通信。處理器510用于執(zhí)行存儲器530中存儲的可執(zhí)行模塊,例如計算機(jī)程序;可選地,DDE500可包括用戶接口550,用戶接口 550包括但不限于顯示器,鍵盤和點(diǎn)擊設(shè)備,例如鼠標(biāo)、軌跡球(trackball)、觸感板或者觸感顯示屏。存儲器530可能包含高速隨機(jī)存儲器(Random Access Memory,簡稱RAM),也可能還包括非易失性存儲器(non-volatile memory),例如至少一個磁盤存儲器。在一些實(shí)施方式中,存儲器530存儲了如下的元素,可執(zhí)行模塊或者數(shù)據(jù)結(jié)構(gòu),或者他們的子集,或者他們的擴(kuò)展集操作系統(tǒng)532,包含各種系統(tǒng)程序,用于實(shí)現(xiàn)各種基礎(chǔ)業(yè)務(wù)以及處理基于硬件的任務(wù);應(yīng)用模塊534,包含各種應(yīng)用程序,用于實(shí)現(xiàn)各種應(yīng)用業(yè)務(wù)。應(yīng)用模塊534中包括但不限于獲取模塊31、發(fā)送模塊32、選擇模塊33和分配模塊34。進(jìn)一步地,應(yīng)用模塊534中還包括分組建立模塊和分組分配模塊。應(yīng)用模塊534中各模塊的具體實(shí)現(xiàn)參見DDE300中的相應(yīng)模塊,在此不贅述。本發(fā)明實(shí)施例采用DDE將攜帶文件指紋信息的分析請求發(fā)送給至少兩個MDS,以使所述至少兩個MDS分別根據(jù)所述文件指紋信息查詢本地所負(fù)責(zé)分組的文件指紋信息集,并根據(jù)各MDS返回的攜帶查詢到的與所述文件指紋信息相似度最高的至少一個分組的組號和相似度的分析結(jié)果選擇至少一個分組,將所述待分析文件中各數(shù)據(jù)塊的塊指紋信息發(fā)送給所述選擇的分組所屬的MDS,以使所述MDS進(jìn)行重復(fù)塊查詢的技術(shù)手段,使得每個MDS只需查詢自身所負(fù)責(zé)分組的文件指紋信息集,減少了數(shù)據(jù)檢索量和對數(shù)據(jù)庫文件讀寫加鎖的等待時間,且由多個MDS并發(fā)完成相似性分析,提高了相似性分析的性能。另外,本發(fā)明實(shí)施例通過MDS完成相似性分析中大量的計算和排序工作,減少了對DDE的資源占用。圖6為本發(fā)明實(shí)施例提供的又一種MDS600的結(jié)構(gòu)示意圖。MDS600 —般包括至少一個處理器610,例如CPU、DSP,至少一個端口 620,存儲器630,和至少一個通信總線640。通信總線640用于實(shí)現(xiàn)這些裝置之間的連接通信。處理器610用于執(zhí)行存儲器630中存儲的可執(zhí)行模塊,例如計算機(jī)程序;可選地,MDS600可包括用戶接口 650,用戶接口 650包括但不限于顯示器,鍵盤和點(diǎn)擊設(shè)備,例如鼠標(biāo)、軌跡球(trackball)、觸感板或者觸感顯示屏。存儲器630可能包含RAM,也可能還包括非易失性存儲器(non-volatile memory),例如至少一個磁盤存儲器。在一些實(shí)施方式中,存儲器630存儲了如下的元素,可執(zhí)行模塊或者數(shù)據(jù)結(jié)構(gòu),或者他們的子集,或者他們的擴(kuò)展集
操作系統(tǒng)632,包含各種系統(tǒng)程序,用于實(shí)現(xiàn)各種基礎(chǔ)業(yè)務(wù)以及處理基于硬件的任務(wù);應(yīng)用模塊634,包含各種應(yīng)用程序,用于實(shí)現(xiàn)各種應(yīng)用業(yè)務(wù)。應(yīng)用模塊634中包括但不限于接收模塊41、分析模塊42和發(fā)送模塊43。進(jìn)一步地,應(yīng)用模塊634中還包括查詢模塊和保存模塊。應(yīng)用模塊634中各模塊的具體實(shí)現(xiàn)參見MDS400中的相應(yīng)模塊,在此不贅述。本發(fā)明實(shí)施例采用MDS接收DDE發(fā)送的攜帶文件指紋信息的分析請求,查詢本地所負(fù)責(zé)的各分組中的文件指紋信息集,獲取所述文件指紋信息與所負(fù)責(zé)的各分組的相似度,將包括與所述文件指紋信息相似度最高的至少一個分組的組號和相似度的分析結(jié)果發(fā)送給所述DDE,以使所述DDE選擇至少一個分組進(jìn)行重復(fù)塊查詢的技術(shù)手段,使得每個MDS只需查詢自身所負(fù)責(zé)分組的文件指紋信息集,減少了數(shù)據(jù)檢索量和對數(shù)據(jù)庫文件讀寫加鎖的等待時間,且可以由多個MDS并發(fā)完成相似性分析,提高了相似性分析的性能。另外,本發(fā)明實(shí)施例通過MDS完成相似性分析中大量的計算和排序工作,減少了對DDE的資源占用。本發(fā)明實(shí)施例提供了 一種計算機(jī)程序產(chǎn)品,該計算機(jī)程序產(chǎn)品包括存儲程序代碼的計算機(jī)可讀存儲介質(zhì),該程序代碼包括指令,該指令用于獲取待分析文件的文件指紋信息;將攜帶所述文件指紋信息的分析請求發(fā)送給至少兩個MDS,以使所述至少兩個MDS分別根據(jù)所述文件指紋信息查詢本地的各文件指紋信息集,所述各文件指紋信息集分別包括所述MDS負(fù)責(zé)的各分組中的文件指紋信息;根據(jù)各MDS返回的分析結(jié)果選擇至少一個分組,所述分析結(jié)果包括每個MDS根據(jù)本地的各文件指紋信息集查詢到的與所述文件指紋信息相似度最高的至少一個分組的組號和相似度;將預(yù)先獲取的所述待分析文件中各數(shù)據(jù)塊的塊指紋信息發(fā)送給所述選擇的分組所屬的MDS,以使所述MDS將所述待分析文件中的各數(shù)據(jù)塊的塊指紋信息與本地的所述選擇的分組中的塊指紋信息庫進(jìn)行比較,以查詢重復(fù)數(shù)據(jù)塊,所述選擇的分組中的塊指紋信息庫包括塊指紋信息。進(jìn)一步地,該指令具體用于若各MDS返回的分析結(jié)果中最高的至少一個相似度高于預(yù)設(shè)閾值,則選擇所述最高的至少一個相似度對應(yīng)的至少一個分組;若各MDS返回的分析結(jié)果中的相似度均不高于所述預(yù)設(shè)閾值,則選擇至少一個預(yù)先建立的空閑的分組。進(jìn)一步地,所述分析結(jié)果還包括所述各MDS的負(fù)載信息;該指令具體用于在各MDS返回的分析結(jié)果中的相似度均不高于所述預(yù)設(shè)閾值的情況下,選擇所屬M(fèi)DS負(fù)載最小的至少一個空閑的分組。進(jìn)一步地,該指令還用于建立預(yù)設(shè)數(shù)量的空閑的分組;根據(jù)預(yù)設(shè)的分配策略,將所述預(yù)設(shè)數(shù)量的空閑的分組分別分配給所述多個MDS。本發(fā)明實(shí)施例采用DDE將攜帶文件指紋信息的分析請求發(fā)送給至少兩個MDS,以使所述至少兩個MDS分別根據(jù)所述文件指紋信息查詢本地所負(fù)責(zé)分組的文件指紋信息集,并根據(jù)各MDS返回的攜帶查詢到的與所述文件指紋信息相似度最高的至少一個分組的組號和相似度的分析結(jié)果選擇至少一個分組,將所述待分析文件中各數(shù)據(jù)塊的塊指紋信息發(fā)送給所述選擇的分組所屬的MDS,以使所述MDS進(jìn)行重復(fù)塊查詢的技術(shù)手段,使得每個MDS只需查詢自身所負(fù)責(zé)分組的文件指紋信息集,減少了數(shù)據(jù)檢索量和對數(shù)據(jù)庫文件讀寫加鎖的等待時間,且由多個MDS并發(fā)完成相似性分析,提高了相似性分析的性能。另外,本發(fā)明實(shí)施例通過MDS完成相似性分析中大量的計算和排序工作,減少了對DDE的資源占用。本發(fā)明實(shí)施例提供了又一種計算機(jī)程序產(chǎn)品,該計算機(jī)程序產(chǎn)品包括存儲程序代碼的計算機(jī)可讀存儲介質(zhì),該程序代碼包括指令,該指令用于接收DDE發(fā)送的分析請求,所述分析請求攜帶待分析文件的文件指紋信息;查詢本地的各文件指紋信息集,所述各文件指紋信息集分別包括所負(fù)責(zé)的各分組中的文件指紋信息,獲取所述分析請求中的文件指紋信息與所負(fù)責(zé)的各分組的相似度;將分析結(jié)果發(fā)送給所述DDE,所述分析結(jié)果包括與所述文件指紋信息相似度最高的至少一個分組的組號和相似度。進(jìn)一步地,該指令具體用于分別獲取各分組的各文件指紋信息與所述分析請求中的文件指紋信息的相似度;基于每個分組,將分組中的各文件指紋信息與所述分析請求中的文件指紋信息的相似度中最高的相似度作為所述分組與所述分析請求中的文件指紋信息的相似度,以獲得每個分組和所述分析請求中的文件指紋信息的相似度。進(jìn)一步地,該指令還用于接收所述DDE的查詢請求,所述查詢請求包括所述待分析文件中各數(shù)據(jù)塊的塊指紋信息和所述DDE選擇的分組的組號;將所述各數(shù)據(jù)塊的塊指紋信息與所述選擇的分組中的塊指紋信息庫進(jìn)行比較,以查詢重復(fù)數(shù)據(jù)塊,所述選擇的分組中的塊指紋信息庫包括塊指紋信息;將所述各數(shù)據(jù)塊中不重復(fù)的數(shù)據(jù)塊的塊指紋信息保存到所述選擇的分組中的塊指紋信息庫中;將所述待分析文件的文件指紋信息保存到所述選擇的分組中的文件指紋信息集中。本發(fā)明實(shí)施例采用MDS接收DDE發(fā)送的攜帶文件指紋信息的分析請求,查詢本地所負(fù)責(zé)的各分組中的文件指紋信息集,獲取所述文件指紋信息與所負(fù)責(zé)的各分組的相似度,將包括與所述文件指紋信息相似度最高的至少一個分組的組號和相似度的分析結(jié)果發(fā)送給所述DDE,以使所述DDE選擇至少一個分組進(jìn)行重復(fù)塊查詢的技術(shù)手段,使得每個MDS只需查詢自身所負(fù)責(zé)分組的文件指紋信息集,減少了數(shù)據(jù)檢索量和對數(shù)據(jù)庫文件讀寫加鎖的等待時間,且可以由多個MDS并發(fā)完成相似性分析,提高了相似性分析的性能。另外,本發(fā)明實(shí)施例通過MDS完成相似性分析中大量的計算和排序工作,減少了對DDE的資源占用。圖7為本發(fā)明實(shí)施例提供的一種相似性分析系統(tǒng)700的結(jié)構(gòu)示意圖。如圖7所示,該系統(tǒng)包括DDE71 和多個 MDS72 ;DDE71為本發(fā)明實(shí)施例提供的一種DDE,各MDS72均為如本發(fā)明實(shí)施例提供的一種MDS。進(jìn)一步地,DDE71有多個。各DDE71可以與各MDS72位于存儲系統(tǒng)中相同或不同的節(jié)點(diǎn)上,通常,每個節(jié)點(diǎn)上設(shè)置有一個MDS和一個DDE。本實(shí)施例的具體實(shí)現(xiàn)參照本發(fā)明實(shí)施例提供的一種DDE和本發(fā)明實(shí)施例提供的一種MDS。本發(fā)明實(shí)施例采用DDE將攜帶文件指紋信息的分析請求發(fā)送給至少兩個MDS,以使所述至少兩個MDS分別根據(jù)所述文件指紋信息查詢本地所負(fù)責(zé)分組的文件指紋信息集,并根據(jù)各MDS返回的攜帶查詢到的與所述文件指紋信息相似度最高的至少一個分組的組號和相似度的分析結(jié)果選擇至少一個分組,將所述待分析文件中各數(shù)據(jù)塊的塊指紋信息發(fā)送給所述選擇的分組所屬的MDS,以使所述MDS進(jìn)行重復(fù)塊查詢的技術(shù)手段,使得每個MDS只需查詢自身所負(fù)責(zé)分組的文件指紋信息集,減少了數(shù)據(jù)檢索量和對數(shù)據(jù)庫文件讀寫加鎖的等待時間,且由多個MDS并發(fā)完成相似性分析,提高了相似性分析的性能。另外,本發(fā)明實(shí)施例通過MDS完成相似性分析中大量的計算和排序工作,減少了對DDE的資源占用。最后應(yīng)說明的是以上實(shí)施例僅用以說明本發(fā)明的技術(shù)方案,而非對其限制;盡管參照前述實(shí)施例對本發(fā)明進(jìn)行了詳細(xì)的說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解其依然可以對前述各實(shí)施例所記載的技術(shù)方案進(jìn)行修改,或者對其中部分技術(shù)特征進(jìn)行等同替換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明各實(shí)施例技術(shù)方案的范圍。
權(quán)利要求
1.一種相似性分析方法,其特征在于,包括獲取待分析文件的文件指紋信息;將攜帶所述文件指紋信息的分析請求發(fā)送給至少兩個元數(shù)據(jù)服務(wù)器MDS,以使所述至少兩個MDS分別根據(jù)所述文件指紋信息查詢本地的各文件指紋信息集,所述各文件指紋信息集分別包括所述MDS負(fù)責(zé)的各分組中的文件指紋信息;根據(jù)各MDS返回的分析結(jié)果選擇至少一個分組,所述分析結(jié)果包括每個MDS根據(jù)本地的各文件指紋信息集查詢到的與所述文件指紋信息相似度最高的至少一個分組的組號和相似度;將預(yù)先獲取的所述待分析文件中各數(shù)據(jù)塊的塊指紋信息發(fā)送給所述選擇的分組所屬的MDS,以使所述MDS將所述待分析文件中的各數(shù)據(jù)塊的塊指紋信息與本地的所述選擇的分組中的塊指紋信息庫進(jìn)行比較,以查詢重復(fù)數(shù)據(jù)塊,所述選擇的分組中的塊指紋信息庫包括塊指紋信息。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述根據(jù)各MDS返回的分析結(jié)果選擇至少一個分組,包括若各MDS返回的分析結(jié)果中最高的至少一個相似度高于預(yù)設(shè)閾值,則選擇所述最高的至少一個相似度對應(yīng)的至少一個分組;若各MDS返回的分析結(jié)果中的相似度均不高于所述預(yù)設(shè)閾值,則選擇至少一個預(yù)先建立的空閑的分組。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述分析結(jié)果還包括所述各MDS的負(fù)載信所述選擇至少一個預(yù)先建立的空閑的分組,包括選擇所屬M(fèi)DS負(fù)載最小的至少一個空閑的分組。
4.根據(jù)權(quán)利要求1 3中任一項(xiàng)所述的方法,其特征在于,所述獲取待分析文件的文件指紋信息,之前還包括建立預(yù)設(shè)數(shù)量的空閑的分組;根據(jù)預(yù)設(shè)的分配策略,將所述預(yù)設(shè)數(shù)量的空閑的分組分別分配給所述多個MDS。
5.—種相似性分析方法,其特征在于,包括接收數(shù)據(jù)重復(fù)刪除引擎DDE發(fā)送的分析請求,所述分析請求攜帶待分析文件的文件指紋信息;查詢本地的各文件指紋信息集,所述各文件指紋信息集分別包括所負(fù)責(zé)的各分組中的文件指紋信息,獲取所述分析請求中的文件指紋信息與所負(fù)責(zé)的各分組的相似度;將分析結(jié)果發(fā)送給所述DDE,所述分析結(jié)果包括與所述文件指紋信息相似度最高的至少一個分組的組號和相似度。
6.根據(jù)權(quán)利要求5所述的方法,其特征在于,所述查詢本地的各文件指紋信息集,獲取所述分析請求中的文件指紋信息與所負(fù)責(zé)的各分組的相似度包括分別獲取各分組的各文件指紋信息與所述分析請求中的文件指紋信息的相似度;基于每個分組,將分組中的各文件指紋信息與所述分析請求中的文件指紋信息的相似度中最高的相似度作為所述分組與所述分析請求中的文件指紋信息的相似度,以獲得每個分組和所述分析請求中的文件指紋信息的相似度。
7.根據(jù)權(quán)利要求5或6所述的方法,其特征在于,所述將分析結(jié)果發(fā)送給所述DDE之后,還包括接收所述DDE的查詢請求,所述查詢請求包括所述待分析文件中各數(shù)據(jù)塊的塊指紋信息和所述DDE選擇的分組的組號;將所述各數(shù)據(jù)塊的塊指紋信息與所述選擇的分組中的塊指紋信息庫進(jìn)行比較,以查詢重復(fù)數(shù)據(jù)塊,所述選擇的分組中的塊指紋信息庫包括塊指紋信息;將所述各數(shù)據(jù)塊中不重復(fù)的數(shù)據(jù)塊的塊指紋信息保存到所述選擇的分組中的塊指紋信息庫中;將所述待分析文件的文件指紋信息保存到所述選擇的分組中的文件指紋信息集中。
8.一種數(shù)據(jù)重復(fù)刪除引擎DDE,其特征在于,包括獲取模塊,用于獲取待分析文件的文件指紋信息;發(fā)送模塊,用于將攜帶所述文件指紋信息的分析請求發(fā)送給至少兩個元數(shù)據(jù)服務(wù)器 MDS,以使所述至少兩個MDS分別根據(jù)所述文件指紋信息查詢本地的各文件指紋信息集,所述各文件指紋信息集分別包括所述MDS負(fù)責(zé)的各分組中的文件指紋信息;選擇模塊,用于根據(jù)各MDS返回的分析結(jié)果選擇至少一個分組,所述分析結(jié)果包括每個MDS根據(jù)本地的各文件指紋信息集查詢到的與所述文件指紋信息相似度最高的至少一個分組的組號和相似度;分配模塊,用于將預(yù)先獲取的所述待分析文件中各數(shù)據(jù)塊的塊指紋信息發(fā)送給所述選擇的分組所屬的MDS,以使所述MDS將所述待分析文件中的各數(shù)據(jù)塊的塊指紋信息與本地的所述選擇的分組中的塊指紋信息庫進(jìn)行比較,以查詢重復(fù)數(shù)據(jù)塊,所述選擇的分組中的塊指紋信息庫包括塊指紋信息。
9.根據(jù)權(quán)利要求8所述的DDE,其特征在于,所述選擇模塊具體用于若各MDS返回的分析結(jié)果中最高的至少一個相似度高于預(yù)設(shè)閾值,則選擇所述最高的至少一個相似度對應(yīng)的至少一個分組;若各MDS返回的分析結(jié)果中的相似度均不高于所述預(yù)設(shè)閾值,則選擇至少一個預(yù)先建立的空閑的分組。
10.根據(jù)權(quán)利要求9所述的DDE,其特征在于,所述分析結(jié)果還包括所述MDS的負(fù)載信所述選擇模塊在各MDS返回的分析結(jié)果中的相似度均不高于所述預(yù)設(shè)閾值情況下選擇所屬M(fèi)DS負(fù)載最小的至少一個空閑的分組。
11.根據(jù)權(quán)利要求8 10中任一項(xiàng)所述的DDE,其特征在于,還包括分組建立模塊,用于在所述獲取模塊獲取待分析文件的文件指紋信息之前,建立預(yù)設(shè)數(shù)量的空閑的分組;分組分配模塊,用于根據(jù)預(yù)設(shè)的分配策略,將所述預(yù)設(shè)數(shù)量的空閑的分組分別分配給所述多個MDS。
12.一種元數(shù)據(jù)服務(wù)器MDS,其特征在于,包括接收模塊,用于接收數(shù)據(jù)重復(fù)刪除引擎DDE發(fā)送的分析請求,所述分析請求攜帶待分析文件的文件指紋信息;分析模塊,用于查詢本地的各文件指紋信息集,所述各文件指紋信息集分別包括所負(fù)責(zé)的各分組中的文件指紋信息,獲取所述分析請求中的文件指紋信息與所負(fù)責(zé)的各分組的相似度;發(fā)送模塊,用于將分析結(jié)果發(fā)送給所述DDE,所述分析結(jié)果包括與所述文件指紋信息相似度最高的至少一個分組的組號和相似度。
13.根據(jù)權(quán)利要求12所述的MDS,其特征在于,所述分析模塊具體用于分別獲取各分組的各文件指紋信息與所述分析請求中的文件指紋信息的相似度;基于每個分組,將分組中的各文件指紋信息與所述分析請求中的文件指紋信息的相似度中最高的相似度作為所述分組與所述分析請求中的文件指紋信息的相似度,以獲得每個分組和所述分析請求中的文件指紋信息的相似度。
14.根據(jù)權(quán)利要求12或13所述的MDS,其特征在于,所述接收模塊還用于接收所述 DDE的查詢請求,所述查詢請求包括所述待分析文件中各數(shù)據(jù)塊的塊指紋信息和所述DDE 選擇的分組的組號;所述MDS還包括查詢模塊,用于將所述各數(shù)據(jù)塊的塊指紋信息與所述選擇的分組中的塊指紋信息庫進(jìn)行比較,以查詢重復(fù)數(shù)據(jù)塊,所述選擇的分組中的塊指紋信息庫包括所述選擇的分組中的塊指紋信息;保存模塊,用于將所述各數(shù)據(jù)塊中不重復(fù)的數(shù)據(jù)塊的塊指紋信息保存到所述選擇的分組中的塊指紋信息庫中;將所述待分析文件的文件指紋信息保存到所述選擇的分組中的文件指紋信息集中。
15.一種相似性分析系統(tǒng),其特征在于,包括如權(quán)利要求8所述的數(shù)據(jù)重復(fù)刪除引擎 DDE,和多個如權(quán)利要求12所述的元數(shù)據(jù)服務(wù)器MDS。
全文摘要
本發(fā)明實(shí)施例提供一種相似性分析方法、裝置及系統(tǒng)。方法包括獲取待分析文件的文件指紋信息;將攜帶所述文件指紋信息的分析請求發(fā)送給至少兩個MDS,以使所述至少兩個MDS分別根據(jù)所述文件指紋信息查詢本地的各文件指紋信息集;根據(jù)各MDS返回的分析結(jié)果選擇至少一個分組,所述分析結(jié)果包括所述MDS查詢到的與所述文件指紋信息相似度最高的至少一個分組的組號和相似度;將所述待分析文件中各數(shù)據(jù)塊的塊指紋信息發(fā)送給所述選擇的分組所屬的MDS,以使所述MDS在本地所述選擇的分組內(nèi)進(jìn)行重復(fù)塊查詢。每個MDS只需查詢自身所負(fù)責(zé)分組的文件指紋信息集,減少了數(shù)據(jù)檢索量和對數(shù)據(jù)庫文件讀寫加鎖的等待時間。
文檔編號G06F17/30GK103020174SQ20121049471
公開日2013年4月3日 申請日期2012年11月28日 優(yōu)先權(quán)日2012年11月28日
發(fā)明者黃焰 申請人:華為技術(shù)有限公司