專利名稱:基于md5哈希列表的文件分解與組合技術(shù)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明是屬于計(jì)算機(jī)信息處理技術(shù)領(lǐng)域,具體涉及一種基于md5哈希列表的文件分解與組合技術(shù)。
背景技術(shù):
隨著近幾年WEB技術(shù)的飛速發(fā)展,特別是WEB2. O具有交互式時(shí)代的崛起,不管對(duì)于哪一種網(wǎng)絡(luò)應(yīng)用來(lái)說(shuō),用戶的數(shù)據(jù)是無(wú)價(jià)的,所以數(shù)據(jù)的遷移與備份顯得尤為重要。在進(jìn)行大文件傳輸?shù)倪^(guò)程中,帶寬的占用勢(shì)必會(huì)影響用戶的體驗(yàn),進(jìn)而對(duì)用戶的利益產(chǎn)生影響。對(duì)于不斷增大的數(shù)據(jù),我們也需要不斷地定期備份,但是不可能每次都去重新請(qǐng)求需要備份的數(shù)據(jù),我們只需要請(qǐng)求遠(yuǎn)程數(shù)據(jù)與本地?cái)?shù)據(jù)當(dāng)中不同的部分就可以了。在數(shù)據(jù)的完整性要求上,我們可以采用md5哈希列表來(lái)對(duì)照。所以,針對(duì)網(wǎng)站部署與維護(hù)方面需要進(jìn)行大文件傳輸怎樣才能節(jié)省帶寬與保證文件的完整性上,我們提出了一種基于md5哈希列表的 文件分解與組合技術(shù)。本發(fā)明所實(shí)現(xiàn)的基于md5哈希列表的文件分解與組合技術(shù),可以有效的解決帶寬占用大的影響以及保證了傳輸文件的完整性。
發(fā)明內(nèi)容
本發(fā)明旨在提供一種基于md5哈希列表的文件分解與組合技術(shù),本發(fā)明主要實(shí)現(xiàn)的功能有(1)對(duì)大文件(比如數(shù)據(jù)庫(kù)、打包的郵件、日志文件)以一定大小(4KB)進(jìn)行切害I],并生成對(duì)應(yīng)于各個(gè)小段文件的基于md5的哈希列表。(2)根據(jù)本地生成的哈希與遠(yuǎn)程主機(jī)生成的哈希列表進(jìn)行比對(duì),得到不同的塊文件。(3)傳輸不同的塊文件,并與本地的塊文件按照哈希列表進(jìn)行排列,組合成最終的大文件。
具體實(shí)施例方式基于md5哈希列表的文件分解與組合技術(shù),包括以下步驟I.對(duì)本地和遠(yuǎn)程的相關(guān)數(shù)據(jù)文件以一定大小(4KB)進(jìn)行切割,并對(duì)各自切割后的小段文件計(jì)算其md5值及對(duì)其命名,各個(gè)小塊文件對(duì)應(yīng)其md5值為一條記錄,然后按照切割的順序排列記錄寫入哈希列表。(分解并不是以恒定的4KB大小進(jìn)行切割,而是按照遠(yuǎn)程數(shù)據(jù)文件的大小而定。比如文件大小為1GB,則以128KB切割;文件大小為2GB,則已256KB切割;文件大小為4G,則已512KB切割;文件大小為8GB,則已1024KB切割。最大的切割大小為4096KB。其特征在于提高了下載文件的精確度,減少很些不必要的傳輸。2.假設(shè)本地?cái)?shù)據(jù)文件要與遠(yuǎn)程數(shù)據(jù)文件同步。本地向遠(yuǎn)程推送生成的本地?cái)?shù)據(jù)哈希列表(local),遠(yuǎn)程主機(jī)接收l(shuí)ocal并與自身生成的數(shù)據(jù)哈希列表(remote)進(jìn)行比對(duì)各條hash記錄。不同的記錄則記下來(lái)其在遠(yuǎn)程哈希列表中(remote)的文件名與位置。3.遠(yuǎn)程主機(jī)向本地推送不同的文件分塊與一份remote的拷貝。4.把本地已有的小塊文件與下載的不同小塊文件按照遠(yuǎn)程數(shù)據(jù)哈希列表(remote)的順序進(jìn)行組合,形成最終的數(shù)據(jù)文件,從而實(shí)現(xiàn)與遠(yuǎn)程數(shù)據(jù)的同步。
圖I為對(duì)本地與遠(yuǎn)程數(shù)據(jù)文件進(jìn)行切割,生成各自的哈希列表。圖2為假設(shè)本地要與遠(yuǎn)程數(shù)據(jù)進(jìn)行同步。遠(yuǎn)程主機(jī)對(duì)比remtoe與local哈希列表的不同,并記錄下與之對(duì)應(yīng)的塊文件。然后遠(yuǎn)程主機(jī)向本地推送一份remote的拷貝與傳輸不同的各個(gè)小塊。圖3為本地按照遠(yuǎn)程數(shù)據(jù)哈希列表的順序進(jìn)行組合成最終的數(shù)據(jù)文件?!?br>
權(quán)利要求
1.本發(fā)明涉及一種基于md5哈希列表的文件分解與組合技術(shù)的實(shí)現(xiàn)方法。具體實(shí)現(xiàn)為,在數(shù)據(jù)同步的需求下。第一次同步時(shí),遠(yuǎn)程主機(jī)對(duì)自身的數(shù)據(jù)文件R以一定大小進(jìn)行分解,分解成不同的塊文件并計(jì)算其md5值,生成一份塊文件與塊自身md5--對(duì)應(yīng)的hash列表R_HASH,并向本地推送這些塊與R_HASH,本地接收塊與R_HASH,最后根據(jù)RJiASH的排布進(jìn)行組合成最終文件。第二次或以后的同步時(shí),本地與遠(yuǎn)程主機(jī)對(duì)自身的數(shù)據(jù)文件進(jìn)行分解,遠(yuǎn)程分解后產(chǎn)生R與R_HASH,本地分解后產(chǎn)生L與L_HASH。本地向遠(yuǎn)程推送L_HASH,遠(yuǎn)程主機(jī)用RJiASH與LJiASH進(jìn)行對(duì)比,得出不同的塊文件,向本地推送不同的塊文件與R_HASH。最后根據(jù)R_HASH的排布進(jìn)行組合成最終文件。
2.本發(fā)明重點(diǎn)突出的技術(shù)點(diǎn)是 (1)文件分解在對(duì)大數(shù)據(jù)文件進(jìn)行切割時(shí),需要支持多線程地對(duì)其進(jìn)行計(jì)算md5值,各個(gè)小塊文件以唯一標(biāo)識(shí)符命名(或者利用本身的md5值命名),其特征在于提高了塊文件對(duì)比的精確性與減少不必要的傳輸帶寬。
(2)文件組合在對(duì)比本地哈希列表與遠(yuǎn)程哈希列表的時(shí)候,需要快速查找到不同的記錄,并請(qǐng)求不同的塊文件,最后在按照遠(yuǎn)程哈希列表順序組合各個(gè)小塊文件,最終實(shí)現(xiàn)與遠(yuǎn)程數(shù)據(jù)同步,其特征在與保證了數(shù)據(jù)的完整性。
全文摘要
本發(fā)明為文件分解與組合技術(shù)。它是基于md5哈希列表的分解與組合技術(shù)。應(yīng)了互聯(lián)網(wǎng)大數(shù)據(jù)傳輸帶寬占用盡量小和保持?jǐn)?shù)據(jù)完整性的要求,本發(fā)明利用對(duì)本地?cái)?shù)據(jù)文件與遠(yuǎn)程數(shù)據(jù)文件切割成等大小塊文件的md5值的不同,只請(qǐng)求不同塊文件的傳輸,并對(duì)所有塊文件進(jìn)行有序組合成最終數(shù)據(jù)文件,能有效地滿足實(shí)際應(yīng)用中的需求。
文檔編號(hào)G06F17/30GK102915325SQ201210297280
公開(kāi)日2013年2月6日 申請(qǐng)日期2012年8月11日 優(yōu)先權(quán)日2012年8月11日
發(fā)明者賴洪昌 申請(qǐng)人:深圳市極限網(wǎng)絡(luò)科技有限公司