欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種文件分塊比較方法和裝置的制作方法

文檔序號(hào):6584629閱讀:213來(lái)源:國(guó)知局
專利名稱:一種文件分塊比較方法和裝置的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及計(jì)算機(jī)與互聯(lián)網(wǎng)技術(shù)領(lǐng)域,特別涉及數(shù)據(jù)備份技術(shù),尤其涉及一種文 件分塊比較方法和裝置。
背景技術(shù)
數(shù)據(jù)備份是容災(zāi)的基礎(chǔ),是指為防止系統(tǒng)出現(xiàn)操作失誤或系統(tǒng)故障導(dǎo)致數(shù)據(jù)丟 失,而將全部或部分?jǐn)?shù)據(jù)集合從應(yīng)用主機(jī)的硬盤或陣列復(fù)制到其它的存儲(chǔ)介質(zhì)的過(guò)程。傳 統(tǒng)的數(shù)據(jù)備份主要是采用內(nèi)置或外置的磁帶機(jī)進(jìn)行冷備份。但是這種方式只能防止操作失 誤等人為故障,而且其恢復(fù)時(shí)間也很長(zhǎng)。隨著技術(shù)的不斷發(fā)展,數(shù)據(jù)的海量增加,不少的企 業(yè)開(kāi)始采用網(wǎng)絡(luò)備份。網(wǎng)絡(luò)備份一般通過(guò)專業(yè)的數(shù)據(jù)存儲(chǔ)管理軟件結(jié)合相應(yīng)的硬件和存儲(chǔ) 設(shè)備來(lái)實(shí)現(xiàn)。在數(shù)據(jù)備份中,為了節(jié)省存儲(chǔ)空間,常常采用文件比較技術(shù)來(lái)比較原文件與新文件是否相同,只有在出現(xiàn)不同時(shí)才進(jìn)行備份操作。目前的文件比較技術(shù)可以分為兩類一類 整體比較,就是把兩個(gè)文件都當(dāng)作一個(gè)整體作比較,這種比較容易實(shí)現(xiàn),但當(dāng)文件大小較大 時(shí)所消耗的時(shí)間較長(zhǎng);另一類是分塊比較,首先將兩個(gè)文件分割成一定數(shù)量的固定大小的 土夬,再來(lái)依次比較每一塊是否相同。一般來(lái)說(shuō),分塊比較是應(yīng)用得比較多的,特別是在數(shù)據(jù) 備份的重復(fù)數(shù)據(jù)刪除領(lǐng)域,通過(guò)分塊比較法除了可以分辨兩個(gè)文件是否一致,同時(shí)還可以 分辨出哪些部分不同,這樣就可以只備份不同的部分,達(dá)到減少存儲(chǔ)空間的目的。傳統(tǒng)的分塊比較過(guò)程如圖1所示。將兩個(gè)文件(原文件和新文件)分割成一定數(shù) 量的固定大小的塊,然后按照塊排列的順序來(lái)依次比較每一塊是否相同。這樣,如果文件中 某個(gè)塊的數(shù)據(jù)改變了,例如塊3,那么系統(tǒng)直接備份塊3即可,而其它塊則不需要備份。假設(shè) 文件被分成了 η塊(η為自然數(shù)),則節(jié)省了(η-υ/η的空間。相比較的文件越大、相似度越 高,最后帶來(lái)的存儲(chǔ)空間節(jié)省也會(huì)更高。現(xiàn)有的分塊比較技術(shù)能夠較好地處理塊的改變,卻無(wú)法很好地處理增加或減少的 塊。如圖2所示,兩個(gè)原本完全一致的文件A與B,后來(lái)B文件在塊1前增加了一個(gè)新塊,這 樣一來(lái),即使后面的塊都不變,用現(xiàn)有的分塊比較方法的結(jié)果將是所有塊都匹配不上,完全
不一致。

發(fā)明內(nèi)容
有鑒于此,本發(fā)明的目的在于,提出一種文件分塊比較方法和裝置,可以較好地處 理塊增加或減少的情況。本發(fā)明實(shí)施例提出的一種文件分塊比較方法包括如下步驟Α、將原文件和新文件分成固定大小的塊;B、采用多于一種比較順序來(lái)依次比較這兩個(gè)文件的各個(gè)塊,在任一種比較順序中 比較結(jié)果為相同的塊均認(rèn)為是未發(fā)生改變;只有在各種比較順序中均不相同的塊才認(rèn)為是 發(fā)生了改變。
步驟B所述采用多于一種比較順序來(lái)依次比較這兩個(gè)文件的各個(gè)塊為采用第k種比較順序比較這兩個(gè)文件的各個(gè)塊時(shí),僅對(duì)前k-i次比較中均未匹配 的塊進(jìn)行比較,所述k為大于1的自然數(shù)。所述步驟B包括Bi、設(shè)置初始的待比較部分為原文件和新文件的全部塊;B2、按照由前向后的順序依次比較原文件和新文件的各個(gè)塊,記錄各個(gè)塊的比較 結(jié)果并將比較結(jié)果相同的塊從待比較部分中排除,判斷連續(xù)不同的塊的數(shù)目是否大于預(yù)定 閾值,若是則執(zhí)行步驟B3,否則繼續(xù)執(zhí)行步驟B2直到最后一對(duì)塊,第一次比較完成并轉(zhuǎn)至 步驟B4 ;B3、按照由后向前的順序依次比較原文件和新文件的各個(gè)塊,記錄各個(gè)塊的比較 結(jié)果并將比較結(jié)果相同的塊從待比較部分中排除,直到步驟B2中首次出現(xiàn)不同的塊,第二 次比較完成;B4、判定待比較部分中的塊發(fā)生了改變。較佳地,所述步驟B3包括B31、按照由后向前的順序依次比較原文件和新文件的各個(gè)塊,記錄各個(gè)塊的比較 結(jié)果并將比較結(jié)果相同的塊從待比較部分中排除,判斷連續(xù)不同的塊的數(shù)目是否大于預(yù)定 閾值,若是則執(zhí)行步驟B32 ;否則直到步驟B2中首次出現(xiàn)不同的塊,第二次比較完成并轉(zhuǎn)至 步驟B4 ;B32、在待比較部分中找到η對(duì)比較結(jié)果相同的塊,以每一對(duì)塊為起點(diǎn)分別向前和 向后進(jìn)行依次比較,將比較結(jié)果相同的塊從待比較部分中排除,直到每個(gè)塊均在第二次比 較完成后又執(zhí)行了一次比較,其中η為自然數(shù)。所述按照由前向后以及由后向前的順序依次比較原文件和新文件的各個(gè)塊的步 驟中進(jìn)一步包括記錄原文件中η個(gè)具有特定序號(hào)的塊的部分原始數(shù)據(jù),得到η個(gè)原始數(shù)據(jù) 記錄;所述在待比較部分中找到η對(duì)比較結(jié)果相同的塊包括將任一處原始數(shù)據(jù)記錄與新文件的待比較部分進(jìn)行匹配,檢查新文件待比較的部 分中是否存在該原始數(shù)據(jù)記錄,若存在,則認(rèn)為找到了一對(duì)比較結(jié)果相同的塊,該對(duì)塊為新 文件與原文件中包含該原始數(shù)據(jù)記錄的塊。本發(fā)明實(shí)施例還提出一種文件分塊比較裝置,包括分塊模塊,用于將原文件和新文件分成固定大小的塊;比較模塊,用于采用多于一種比較順序來(lái)依次比較這兩個(gè)文件的各個(gè)塊,在任一 種比較順序中比較結(jié)果為相同的塊均認(rèn)為是未發(fā)生改變;只有在各種比較順序中均不相同 的塊才認(rèn)為是發(fā)生了改變。所述比較模塊在采用第k種比較順序比較這兩個(gè)文件的各個(gè)塊時(shí),僅對(duì)前k_l次 比較中均未匹配的塊進(jìn)行比較,所述k為大于1的自然數(shù)。所述比較模塊包括初始化單元,用于設(shè)置初始的待比較部分為原文件和新文件的全部塊;正向比較單元,用于按照由前向后的順序 依次比較原文件和新文件的各個(gè)塊,記 錄各個(gè)塊的比較結(jié)果并將比較結(jié)果相同的塊從待比較部分中排除,判斷連續(xù)不同的塊的數(shù)目是否大于預(yù)定閾值,若是通知逆向比較單元進(jìn)行處理,否則直到比較到最后一對(duì)塊并通 知判定單元;逆向比較單元,用于按照由后向前的順序依次比較原文件和新文件的各個(gè)塊,記 錄各個(gè)塊的比較結(jié)果并將比較結(jié)果相同的塊從待比較部分中排除,直到正向比較單元的比 較結(jié)果首次不同的塊,并通知判定單元, 判定單元,用于在收到正向比較單元或逆向比較單元的通知后,判定待比較部分 中的塊發(fā)生了改變。所述比較模塊進(jìn)一步包括雙向比較單元;所述逆向比較單元用于按照由后向前的順序依次比較原文件和新文件的各個(gè)塊, 記錄各個(gè)塊的比較結(jié)果并將比較結(jié)果相同的塊從待比較部分中排除,判斷連續(xù)不同的塊的 數(shù)目是否大于預(yù)定閾值,若是則通知雙向比較單元;否則直到正向比較單元的比較結(jié)果首 次出現(xiàn)不同的塊并通知判定單元;所述雙向比較單元在待比較部分中找到η對(duì)比較結(jié)果相同的塊,以每一對(duì)塊為起 點(diǎn)分別向前和向后進(jìn)行依次比較,將比較結(jié)果相同的塊從待比較部分中排除,直到每個(gè)塊 均在第二次比較完成后又執(zhí)行了一次比較,并通知判定單元,其中η為自然數(shù)。所述正向比較單元和逆向比較單元進(jìn)一步用于記錄原文件中η個(gè)具有特定序號(hào) 的塊的部分原始數(shù)據(jù),共得到η個(gè)原始數(shù)據(jù)記錄;所述雙向比較單元包括原始數(shù)據(jù)匹配子單元,用于將正向比較單元和逆向比較單元所得到的任一處原始 數(shù)據(jù)記錄與新文件的待比較部分進(jìn)行匹配,檢查新文件待比較的部分中是否存在該原始數(shù) 據(jù)記錄,若存在,則認(rèn)為找到了一對(duì)比較結(jié)果相同的塊,該對(duì)塊為新文件與原文件中包含該 原始數(shù)據(jù)記錄的塊。從以上技術(shù)方案可以看出,采用多于一種比較順序來(lái)依次比較兩個(gè)文件的各個(gè) 塊,如果在任一種比較順序中匹配的塊,均認(rèn)為是未發(fā)生改變,只有在各種比較順序中均不 匹配的塊才認(rèn)為是發(fā)生了改變,這樣即使新文件中出現(xiàn)了少量塊的增加或減少,仍然可以 準(zhǔn)確地判定多數(shù)未改變的塊,避免了現(xiàn)有技術(shù)中存在的誤判問(wèn)題。


圖1為現(xiàn)有技術(shù)的分塊比較過(guò)程的原理示意圖;圖2為現(xiàn)有技術(shù)的分塊比較過(guò)程中,若新文件增加塊則未改變的塊被誤認(rèn)為不匹 配的示意圖;圖3為本發(fā)明的文件分塊比較技術(shù)的原理示意圖;圖4為本發(fā)明實(shí)施例一提出的一種文件分塊比較的流程圖;圖5為本發(fā)明實(shí)施例二提出的一種文件分塊比較的流程圖。
具體實(shí)施例方式本發(fā)明的文件分塊比較技術(shù),將原文件和新文件分成固定大小的塊,采用多于一 種比較順序來(lái)依次比較這兩個(gè)文件的各個(gè)塊,如果在任一種比較順序中匹配的塊,均認(rèn)為 是未發(fā)生改變,只有在各種比較順序中均不匹配的塊才認(rèn)為是發(fā)生了改變。為節(jié)省比較的時(shí)間開(kāi)銷,在采用第k種比較順序比較這兩個(gè)文件的各個(gè)塊時(shí),僅對(duì)前k-1次比較中均未匹 配的塊進(jìn)行比較,所述k為大于1的自然數(shù)。為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面結(jié)合附圖對(duì)本發(fā)明作進(jìn)一步 的詳細(xì)闡述。圖3為本發(fā)明的文件分塊比較技術(shù)的原理示意圖。該示例中采用兩種比較順序, 即由前到后比較和由后到前比較。假設(shè)新文件在塊1之后增加了塊X,在經(jīng)過(guò)由前到后的 分塊+比較后,除了塊1匹配上,其他塊均不匹配;再來(lái)一次由后到前的分塊+比較,則塊2 至塊4均匹配上了,由于塊1已經(jīng)匹配了因此可以不用比較塊1。在兩次匹配過(guò)程中,只有 塊χ始終不能匹配。最終得出結(jié)論塊Χ不匹配。假設(shè)一個(gè)文件總塊數(shù)為X,其中第Y塊發(fā)生了改變?,F(xiàn)有的分塊比較法可能會(huì)導(dǎo) 致Y后面的所有塊都會(huì)不匹配。特別是發(fā)生改變的塊在文件中的位置比較靠(例如當(dāng)Y < (X+2))時(shí),現(xiàn)有分塊更是會(huì)導(dǎo)致大量的浪費(fèi),一個(gè)小小的字節(jié)增加都可能會(huì)影響后繼 所有沒(méi)改變的塊都不匹配起來(lái)。本發(fā)明方案將現(xiàn)有技術(shù)中的一次單向比較改為多次向比 較,就能夠找到真正改變的塊,把匹配失誤帶來(lái)的損失降到最低。
實(shí)際上,如果只是在由前向后的比較的基礎(chǔ)上,再增加一次由后向前的比較,仍然 在很多情況下會(huì)出現(xiàn)誤判。例如文件中增加了 m個(gè)塊,或減少了 m個(gè)塊,或者既出現(xiàn)了增加, 又出現(xiàn)了減少,增加或減少的塊總數(shù)為m,則在第一個(gè)增加/減少的塊到第m個(gè)增加/減少 的塊之間的所有塊都會(huì)無(wú)法匹配。為解決文件中多處出現(xiàn)增加/減少塊的問(wèn)題,本發(fā)明實(shí)施例在由前向后比較以及 由后向前比較的基礎(chǔ)上,又增加了雙向比較機(jī)制,從尚未匹配的塊中找到一對(duì)或多對(duì)匹配 的塊,以匹配的塊為起點(diǎn),分別向前和向后進(jìn)行雙向比較。本發(fā)明實(shí)施例一提出的一種文件分塊比較的流程如圖4所示,該流程中包括兩次 不同順序的比較,具體包括如下步驟步驟401 將原文件和新文件分成固定大小的塊。步驟402 設(shè)置初始的待比較部分為原文件和新文件的全部塊。步驟403 按照由前向后的順序依次比較原文件和新文件的各個(gè)塊,記錄各個(gè)塊 的比較結(jié)果并將比較結(jié)果相同的塊從待比較部分中排除。判斷連續(xù)不同的塊的數(shù)目是否大 于預(yù)定閾值,若是則執(zhí)行步驟404,否則繼續(xù)執(zhí)行步驟403直到最后一對(duì)塊,第一次比較完 成并轉(zhuǎn)至步驟405。所述依次比較原文件和新文件的各個(gè)塊,首先依照特定的校驗(yàn)算法計(jì)算各個(gè)塊的 特征值,然后將原文件的第i塊的特征值與新文件第i塊的特征值進(jìn)行比較(i大于1且小 于總塊數(shù))。步驟404:按照由后向前的順序依次比較原文件和新文件的各個(gè)塊,記錄各個(gè)塊 的比較結(jié)果并將比較結(jié)果相同的塊從待比較部分中排除,直到步驟403中首次出現(xiàn)不同的 塊,第二次比較完成;步驟405 判定待比較部分中的塊發(fā)生了改變。本發(fā)明實(shí)施例二提出的一種文件分塊比較的流程如圖5所示,該流程在實(shí)施例一 的基礎(chǔ)上,進(jìn)一步增加了至少一次雙向比較,具體包括如下步驟步驟501 將原文件和新文件分成固定大小的塊;
步驟502 設(shè)置初始的待比較部分為原文件和新文件的全部塊;步驟503 按照由前向后的順序依次比較原文件和新文件的各個(gè)塊,記錄各個(gè)塊 的比較結(jié)果,判斷連續(xù)不同的塊的數(shù)目是否大于預(yù)定閾值,若是則執(zhí)行步驟504,否則繼續(xù) 執(zhí)行步驟503直到最后一對(duì)塊,將比較結(jié)果相同的塊從待比較部分中排除,第一次比較完 成并轉(zhuǎn)至步驟506 ;步驟504:按照由后向前的順序依次比較原文件和新文件的各個(gè)塊,記錄各個(gè)塊 的比較結(jié)果,判斷連續(xù)不同的塊的數(shù)目是否大于預(yù)定閾值,若是則將比較結(jié)果相同的塊從 待比較部分中排除,并執(zhí)行步驟505 ;否則直到步驟503中首次出現(xiàn)不同的塊,將比較結(jié)果 相同的塊從待比較部分中排除,第二次比較完成并轉(zhuǎn)至步驟506 ;步驟505 在待比較部分中找到η對(duì)比較結(jié)果相同的塊,以每一對(duì)塊為起點(diǎn)分別向 前和向后進(jìn)行依次比較,直到每個(gè)塊均在第二次比較完成后又執(zhí)行了一次比較,將比較結(jié) 果相同的塊從待比較部分中排除,其中η為自然數(shù)。所述在待比較部分中找到η對(duì)比較結(jié)果相同的塊的具體方法可以有很多,例如可 以在屬于原文件的待比較的塊中隨機(jī)挑選Htl個(gè)塊,對(duì)任一個(gè)挑選出來(lái)的塊,與屬于新文件 的待比較的塊進(jìn)行依次比較,通常情況下其中一些塊可以找到相同的塊。以下再給出另一種具體的實(shí)施方式在步驟503以及步驟504對(duì)原文件進(jìn)行由前向后與由后向前的比較過(guò)程中,除了 記錄兩種順序下各塊的特征碼,還會(huì)記錄兩種順序下某些塊的一段原始數(shù)據(jù)(例如該塊的 前16字節(jié)數(shù)據(jù)),這樣一共會(huì)保存η處原始數(shù)據(jù)記錄。較佳地,這些塊可以是第kX 1/4+1、 kX 1/2+1、kX3/4+l塊(k為總塊數(shù)),當(dāng)然也可以是其他序號(hào)的塊。較佳地,η彡6。然后將任一處原始數(shù)據(jù)記錄與新文件的待比較部分進(jìn)行匹配,檢查新文件待比較 的部分中是否存在該原始數(shù)據(jù)記錄,若存在,則認(rèn)為找到了一對(duì)比較結(jié)果相同的塊,該對(duì)塊 為新文件與原文件中包含該原始數(shù)據(jù)記錄的塊,如果這一對(duì)塊中該原始數(shù)據(jù)記錄的位置不 同,則要對(duì)新文件待比較部分進(jìn)行重新分塊,使得該原始數(shù)據(jù)記錄的位置相同。步驟506 判定待比較部分中的塊發(fā)生了改變。本發(fā)明實(shí)施例三提出了一種文件分塊比較裝置,包括分塊模塊,用于將原文件和新文件分成固定大小的塊;比較模塊,用于采用多于一種比較順序來(lái)依次比較這兩個(gè)文件的各個(gè)塊,在任一 種比較順序中比較結(jié)果為相同的塊均認(rèn)為是未發(fā)生改變;只有在各種比較順序中均不相同 的塊才認(rèn)為是發(fā)生了改變。所述比較模塊在采用第k種比較順序比較這兩個(gè)文件的各個(gè)塊時(shí),僅對(duì)前k_l次 比較中均未匹配的塊進(jìn)行比較,所述k為大于1的自然數(shù)。所述比較模塊包括初始化單元,用于設(shè)置初始的待比較部分為原文件和新文件的全部塊;正向比較單元,用于按照由前向后的順序依次比較原文件和新文件的各個(gè)塊,記 錄各個(gè)塊的比較結(jié)果并將比較結(jié)果相同的塊從待比較部分中排除,判斷連續(xù)不同的塊的數(shù) 目是否大于預(yù)定閾值,若是通知逆向比較單元進(jìn)行處理,否則直到比較到最后一對(duì)塊并通 知判定單元;逆向比較單元,用于按照由后向前的 順序依次比較原文件和新文件的各個(gè)塊,記錄各個(gè)塊的比較結(jié)果并將比較結(jié)果相同的塊從待比較部分中排除,直到正向比較單元的比 較結(jié)果首次不同的塊,并通知判定單元,判定單元,用于在收到正向比較單元或逆向比較單元的通知后,判定待比較部分 中的塊發(fā)生了改變。所述比較模塊進(jìn)一步包括雙向比較單元;所述逆向比較單元用于按照由后向前的順序依次比較原文件和新文件的各個(gè)塊, 記錄各個(gè)塊的比較結(jié)果并將比較結(jié)果相同的塊從待比較部分中排除,判斷連續(xù)不同的塊的 數(shù)目是否大于預(yù)定閾值,若是則通知雙向比較單元;否則直到正向比較單元的比較結(jié)果首 次出現(xiàn)不同的塊并通知判定單元;所述雙向比較單元在待比較部分中找到η對(duì)比較結(jié)果相同的塊,以每一對(duì)塊為起 點(diǎn)分別向前和向后進(jìn)行依次比較,將比較結(jié)果相同的塊從待比較部分中排除,直到每個(gè)塊 均在第二次比較完成后又執(zhí)行了一次比較,并通知判定單元,其中η為自然數(shù)。所述正向比較單元和逆向比較單元進(jìn)一步用于記錄原文件中η個(gè)具有特定序號(hào) 的 塊的部分原始數(shù)據(jù),共得到η個(gè)原始數(shù)據(jù)記錄;所述雙向比較單元包括原始數(shù)據(jù)匹配子單元,用于將正向比較單元和逆向比較單元所得到的任一處原始 數(shù)據(jù)記錄與新文件的待比較部分進(jìn)行匹配,檢查新文件待比較的部分中是否存在該原始數(shù) 據(jù)記錄,若存在,則認(rèn)為找到了一對(duì)比較結(jié)果相同的塊,該對(duì)塊為新文件與原文件中包含該 原始數(shù)據(jù)記錄的塊。通過(guò)以上的實(shí)施方式的描述,本領(lǐng)域的技術(shù)人員可以清楚地了解到本發(fā)明可借 助軟件加必需的硬件平臺(tái)的方式來(lái)實(shí)現(xiàn),當(dāng)然也可以全部通過(guò)硬件來(lái)實(shí)施,但很多情況下 前者是更佳的實(shí)施方式?;谶@樣的理解,本發(fā)明的技術(shù)方案對(duì)背景技術(shù)做出貢獻(xiàn)的全部 或者部分可以以軟件產(chǎn)品的形式體現(xiàn)出來(lái),該計(jì)算機(jī)軟件產(chǎn)品可以存儲(chǔ)在存儲(chǔ)介質(zhì)中,如 ROM/RAM、磁碟、光盤等,包括若干指令用以使得一臺(tái)計(jì)算機(jī)設(shè)備(可以是個(gè)人計(jì)算機(jī),服務(wù) 器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個(gè)實(shí)施例或者實(shí)施例的某些部分所述的方法。以上所述僅為本發(fā)明的較佳實(shí)施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精 神和原則之內(nèi)所作的任何修改、等同替換和改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
一種文件分塊比較方法,其特征在于,包括如下步驟A、將原文件和新文件分成固定大小的塊;B、采用多于一種比較順序來(lái)依次比較這兩個(gè)文件的各個(gè)塊,在任一種比較順序中比較結(jié)果為相同的塊均認(rèn)為是未發(fā)生改變;只有在各種比較順序中均不相同的塊才認(rèn)為是發(fā)生了改變。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,步驟B所述采用多于一種比較順序來(lái)依次 比較這兩個(gè)文件的各個(gè)塊為采用第k種比較順序比較這兩個(gè)文件的各個(gè)塊時(shí),僅對(duì)前k-1次比較中均未匹配的塊 進(jìn)行比較,所述k為大于1的自然數(shù)。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述步驟B包括B 1、設(shè)置初始的待比較部分為原文件和新文件的全部塊;B2、按照由前向后的順序依次比較原文件和新文件的各個(gè)塊,記錄各個(gè)塊的比較結(jié)果 并將比較結(jié)果相同的塊從待比較部分中排除,判斷連續(xù)不同的塊的數(shù)目是否大于預(yù)定閾 值,若是則執(zhí)行步驟B3,否則繼續(xù)執(zhí)行步驟B2直到最后一對(duì)塊,第一次比較完成并轉(zhuǎn)至步 驟B4 ;B3、按照由后向前的順序依次比較原文件和新文件的各個(gè)塊,記錄各個(gè)塊的比較結(jié)果 并將比較結(jié)果相同的塊從待比較部分中排除,直到步驟B2中首次出現(xiàn)不同的塊,第二次比 較完成;B4、判定待比較部分中的塊發(fā)生了改變。
4.根據(jù)權(quán)利要求3所述的方法,其特征在于,所述步驟B3包括B31、按照由后向前的順序依次比較原文件和新文件的各個(gè)塊,記錄各個(gè)塊的比較結(jié) 果并將比較結(jié)果相同的塊從待比較部分中排除,判斷連續(xù)不同的塊的數(shù)目是否大于預(yù)定閾 值,若是則執(zhí)行步驟B32 ;否則直到步驟B2中首次出現(xiàn)不同的塊,第二次比較完成并轉(zhuǎn)至步 驟B4 ;B32、在待比較部分中找到n對(duì)比較結(jié)果相同的塊,以每一對(duì)塊為起點(diǎn)分別向前和向后 進(jìn)行依次比較,將比較結(jié)果相同的塊從待比較部分中排除,直到每個(gè)塊均在第二次比較完 成后又執(zhí)行了一次比較,其中n為自然數(shù)。
5.根據(jù)權(quán)利要求4所述的方法,其特征在于,所述按照由前向后以及由后向前的順序 依次比較原文件和新文件的各個(gè)塊的步驟中進(jìn)一步包括記錄原文件中n個(gè)具有特定序號(hào) 的塊的部分原始數(shù)據(jù),得到n個(gè)原始數(shù)據(jù)記錄;所述在待比較部分中找到n對(duì)比較結(jié)果相同的塊包括將任一處原始數(shù)據(jù)記錄與新文件的待比較部分進(jìn)行匹配,檢查新文件待比較的部分中 是否存在該原始數(shù)據(jù)記錄,若存在,則認(rèn)為找到了一對(duì)比較結(jié)果相同的塊,該對(duì)塊為新文件 與原文件中包含該原始數(shù)據(jù)記錄的塊。
6.一種文件分塊比較裝置,其特征在于,包括分塊模塊,用于將原文件和新文件分成固定大小的塊;比較模塊,用于采用多于一種比較順序來(lái)依次比較這兩個(gè)文件的各個(gè)塊,在任一種比 較順序中比較結(jié)果為相同的塊均認(rèn)為是未發(fā)生改變;只有在各種比較順序中均不相同的塊 才認(rèn)為是發(fā)生了改變。
7.根據(jù)權(quán)利要求6所述的裝置,其特征在于,所述比較模塊在采用第k種比較順序比較 這兩個(gè)文件的各個(gè)塊時(shí),僅對(duì)前k-1次比較中均未匹配的塊進(jìn)行比較,所述k為大于1的自 然數(shù)。
8.根據(jù)權(quán)利要求6所述的裝置,其特征在于,所述比較模塊包括初始化單元,用于設(shè)置初始的待比較部分為原文件和新文件的全部塊;正向比較單元,用于按照由前向后的順序依次比較原文件和新文件的各個(gè)塊,記錄各 個(gè)塊的比較結(jié)果并將比較結(jié)果相同的塊從待比較部分中排除,判斷連續(xù)不同的塊的數(shù)目是 否大于預(yù)定閾值,若是通知逆向比較單元進(jìn)行處理,否則直到比較到最后一對(duì)塊并通知判 定單元;逆向比較單元,用于按照由后向前的順序依次比較原文件和新文件的各個(gè)塊,記錄各 個(gè)塊的比較結(jié)果并將比較結(jié)果相同的塊從待比較部分中排除,直到正向比較單元的比較結(jié) 果首次不同的塊,并通知判定單元,判定單元,用于在收到正向比較單元或逆向比較單元的通知后,判定待比較部分中的 塊發(fā)生了改變。
9.根據(jù)權(quán)利要求8所述的裝置,其特征在于,所述比較模塊進(jìn)一步包括雙向比較單元;所述逆向比較單元用于按照由后向前的順序依次比較原文件和新文件的各個(gè)塊,記錄 各個(gè)塊的比較結(jié)果并將比較結(jié)果相同的塊從待比較部分中排除,判斷連續(xù)不同的塊的數(shù)目 是否大于預(yù)定閾值,若是則通知雙向比較單元;否則直到正向比較單元的比較結(jié)果首次出 現(xiàn)不同的塊并通知判定單元;所述雙向比較單元在待比較部分中找到n對(duì)比較結(jié)果相同的塊,以每一對(duì)塊為起點(diǎn)分 別向前和向后進(jìn)行依次比較,將比較結(jié)果相同的塊從待比較部分中排除,直到每個(gè)塊均在 第二次比較完成后又執(zhí)行了一次比較,并通知判定單元,其中n為自然數(shù)。
10.根據(jù)權(quán)利要求9所述的裝置,其特征在于,所述正向比較單元和逆向比較單元進(jìn)一 步用于記錄原文件中n個(gè)具有特定序號(hào)的塊的部分原始數(shù)據(jù),共得到n個(gè)原始數(shù)據(jù)記錄;所述雙向比較單元包括原始數(shù)據(jù)匹配子單元,用于將正向比較單元和逆向比較單元所得到的任一處原始數(shù)據(jù) 記錄與新文件的待比較部分進(jìn)行匹配,檢查新文件待比較的部分中是否存在該原始數(shù)據(jù)記 錄,若存在,則認(rèn)為找到了一對(duì)比較結(jié)果相同的塊,該對(duì)塊為新文件與原文件中包含該原始 數(shù)據(jù)記錄的塊。
全文摘要
本發(fā)明公開(kāi)了一種文件分塊比較方法,包括如下步驟A、將原文件和新文件分成固定大小的塊;B、采用多于一種比較順序來(lái)依次比較這兩個(gè)文件的各個(gè)塊,在任一種比較順序中比較結(jié)果為相同的塊均認(rèn)為是未發(fā)生改變;只有在各種比較順序中均不相同的塊才認(rèn)為是發(fā)生了改變。本發(fā)明還公開(kāi)了一種文件分塊比較裝置。本發(fā)明提出的分塊比較方案,即使新文件中出現(xiàn)了少量塊的增加或減少,仍然可以準(zhǔn)確地判定多數(shù)未改變的塊,避免了現(xiàn)有技術(shù)中存在的誤判問(wèn)題。
文檔編號(hào)G06F11/14GK101840363SQ200910237360
公開(kāi)日2010年9月22日 申請(qǐng)日期2009年11月10日 優(yōu)先權(quán)日2009年11月10日
發(fā)明者殷亮 申請(qǐng)人:創(chuàng)新科存儲(chǔ)技術(shù)有限公司;創(chuàng)新科軟件技術(shù)(深圳)有限公司
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
肃南| 襄城县| 榕江县| 安庆市| 宁安市| 大渡口区| 铜山县| 邛崃市| 含山县| 修武县| 寿光市| 柘荣县| 左权县| 诏安县| 广水市| 武威市| 北宁市| 太谷县| 南川市| 巴彦县| 孟连| 金秀| 陆川县| 茌平县| 西乌珠穆沁旗| 普宁市| 鹤峰县| 兴化市| 庐江县| 沅江市| 泾源县| 浙江省| 五指山市| 松滋市| 锡林郭勒盟| 临朐县| 体育| 宿松县| 怀集县| 文水县| 金昌市|