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

一種清洗比對(duì)入庫(kù)方法與流程

文檔序號(hào):12666452閱讀:1391來(lái)源:國(guó)知局

本發(fā)明屬于計(jì)算機(jī)和互聯(lián)網(wǎng)領(lǐng)域,具體的,涉及一種清洗比對(duì)入庫(kù)方法。



背景技術(shù):

近年來(lái),隨著計(jì)算機(jī)和互聯(lián)網(wǎng)技術(shù)的快速發(fā)展,我們處在了一個(gè)信息爆炸的時(shí)代,信息爆炸帶來(lái)了海量的數(shù)據(jù)信息,而海量的數(shù)據(jù)信息給存儲(chǔ)系統(tǒng)帶來(lái)了極大的壓力。雖然現(xiàn)在用于存儲(chǔ)的計(jì)算機(jī)越來(lái)越多,性能越來(lái)越好,但是由于存儲(chǔ)介質(zhì)本身IO速度的限制,面對(duì)海量數(shù)據(jù)時(shí)仍然力不從心。

因此,現(xiàn)有技術(shù)中,海量數(shù)據(jù)存儲(chǔ)的第一步,是檢測(cè)和消除其中的相同數(shù)據(jù),即冗余數(shù)據(jù),在新數(shù)據(jù)入庫(kù)時(shí),通過對(duì)新數(shù)據(jù)和已存儲(chǔ)數(shù)據(jù)的比對(duì),清洗掉重復(fù)的數(shù)據(jù),只給其保留一個(gè)指針,指向該重復(fù)數(shù)據(jù)已存儲(chǔ)的存檔。這種做法一方面是減少存儲(chǔ)空間和IO帶寬的占用,另一方面是減少數(shù)據(jù)處理量。因此,海量數(shù)據(jù)存儲(chǔ)時(shí)的清洗比對(duì)入庫(kù)已經(jīng)是大規(guī)模數(shù)據(jù)存儲(chǔ)系統(tǒng)的必備技術(shù)。

但是,現(xiàn)有技術(shù)中的清洗比對(duì)入庫(kù)方法通常只是比較存儲(chǔ)文件的哈希值來(lái)檢測(cè)重復(fù)數(shù)據(jù)。但是單純以文件為單位來(lái)檢測(cè)重復(fù),其粒度太大,不能處理相似文件中的部分相同數(shù)據(jù),因此需要考慮減小粒度,能夠盡可能檢測(cè)相似文件間的部分重復(fù)數(shù)據(jù)。



技術(shù)實(shí)現(xiàn)要素:

為了解決現(xiàn)有技術(shù)中的上述問題,本發(fā)明提出了一種清洗比對(duì)入庫(kù)方法,其技術(shù)方案如下:

一種清洗比對(duì)入庫(kù)方法,該方法包括如下步驟:

(1)入庫(kù)服務(wù)器接收需要存儲(chǔ)入庫(kù)的數(shù)據(jù)文件;

(2)所述入庫(kù)服務(wù)器檢查所述數(shù)據(jù)文件的長(zhǎng)度L,如果L小于預(yù)定義的最小數(shù)據(jù)塊長(zhǎng)度MinBlockLength,則提取該數(shù)據(jù)文件的最后一個(gè)字節(jié)B,轉(zhuǎn)到步驟3。如果L≥MinBlockLength,則轉(zhuǎn)到步驟5;

(3)預(yù)先給系統(tǒng)中的256個(gè)存儲(chǔ)服務(wù)器編號(hào),分別命名為Server(i),其中0≤i≤255,入庫(kù)服務(wù)器將該數(shù)據(jù)文件發(fā)送到Server(B),同時(shí)保存該數(shù)據(jù)文件的相關(guān)信息;

(4)所述Server(B)計(jì)算該數(shù)據(jù)文件的哈希值,根據(jù)該哈希值判斷該數(shù)據(jù)文件是否已存儲(chǔ)在服務(wù)器中,如果已存儲(chǔ),僅為該數(shù)據(jù)文件保留一個(gè)指針,指向已存儲(chǔ)的相同數(shù)據(jù);如果并未存儲(chǔ),則Server(B)存儲(chǔ)該數(shù)據(jù)文件和其哈希值,方法結(jié)束;

(5)所述入庫(kù)服務(wù)器設(shè)置初始的分塊向量V=0;

(6)所述入庫(kù)服務(wù)器從該數(shù)據(jù)文件的第MinBlockLength個(gè)字節(jié)開始向后掃描,當(dāng)掃描某個(gè)字節(jié)等于分塊向量時(shí),記錄該字節(jié)的位置P1,然后再?gòu)腜1+MinBlockLength的位置開始掃描,尋找并記錄下一個(gè)等于分塊向量的字節(jié)位置,如此反復(fù),直到數(shù)據(jù)文件的末尾;

(7)根據(jù)步驟6的所記錄的位置,將每個(gè)位置作為一個(gè)數(shù)據(jù)塊的結(jié)尾,對(duì)數(shù)據(jù)文件進(jìn)行分塊,由此得到了KV個(gè)數(shù)據(jù)塊;

(8)分塊向量V增加1,如果V≤255,則返回步驟6,否則繼續(xù)步驟9;

(9)對(duì)K0到K255按照從大到小進(jìn)行排序,獲取排在最前的5個(gè)值,假設(shè)為KV1,KV2,KV3,KV4,KV5

(10)按照V1到V5五個(gè)分塊向量對(duì)該數(shù)據(jù)文件的分塊結(jié)果,將各個(gè)數(shù)據(jù)塊按照其結(jié)尾字節(jié)發(fā)送到相應(yīng)的存儲(chǔ)服務(wù)器進(jìn)行重復(fù)性檢測(cè);

(11)每個(gè)存儲(chǔ)服務(wù)器對(duì)接收到的每個(gè)數(shù)據(jù)塊,計(jì)算其哈希值,根據(jù)該哈希值判斷該數(shù)據(jù)塊是否是重復(fù)數(shù)據(jù),將判斷結(jié)果發(fā)送給入庫(kù)服務(wù)器;

(12)所述入庫(kù)服務(wù)器根據(jù)步驟11接收到的判斷結(jié)果,從五種分塊方式中選擇重復(fù)數(shù)據(jù)量最多的兩種,根據(jù)這兩種分塊方式,通知相應(yīng)的存儲(chǔ)服務(wù)器進(jìn)行存儲(chǔ),入庫(kù)服務(wù)器自身保存該數(shù)據(jù)文件的相關(guān)信息,包括其兩種分塊方式和相應(yīng)的存儲(chǔ)服務(wù)器。

進(jìn)一步地,所述入庫(kù)服務(wù)器是一個(gè)Web服務(wù)器,接收上傳的數(shù)據(jù)文件。

進(jìn)一步地,所述入庫(kù)服務(wù)器有多個(gè)。

進(jìn)一步地,所述MinBlockLength=1024字節(jié)。

進(jìn)一步地,同一存儲(chǔ)服務(wù)器復(fù)用多個(gè)服務(wù)器編號(hào)。

本發(fā)明的技術(shù)效果是:在清洗比對(duì)入庫(kù)時(shí),以較小的粒度進(jìn)行清洗比對(duì),提高了重復(fù)數(shù)據(jù)的發(fā)現(xiàn)率,降低了數(shù)據(jù)存儲(chǔ)的占用空間。

【附圖說(shuō)明】

此處所說(shuō)明的附圖是用來(lái)提供對(duì)本發(fā)明的進(jìn)一步理解,構(gòu)成本申請(qǐng)的一部分,但并不構(gòu)成對(duì)本發(fā)明的不當(dāng)限定,在附圖中:

圖1是本發(fā)明方法所應(yīng)用的系統(tǒng)結(jié)構(gòu)圖。

【具體實(shí)施方式】

下面將結(jié)合附圖以及具體實(shí)施例來(lái)詳細(xì)說(shuō)明本發(fā)明,其中的示意性實(shí)施例以及說(shuō)明僅用來(lái)解釋本發(fā)明,但并不作為對(duì)本發(fā)明的不當(dāng)限定。

參見附圖1,其示出了本發(fā)明方法所應(yīng)用的系統(tǒng)結(jié)構(gòu),該系統(tǒng)包括入庫(kù)服務(wù)器和多個(gè)存儲(chǔ)服務(wù)器,所述入庫(kù)服務(wù)器負(fù)責(zé)管理數(shù)據(jù)文件的清洗比對(duì)入庫(kù),而存儲(chǔ)服務(wù)器用于存儲(chǔ)數(shù)據(jù)。為了存儲(chǔ)海量的數(shù)據(jù),本發(fā)明的優(yōu)選方案是使用256個(gè)存儲(chǔ)服務(wù)器,當(dāng)然這是對(duì)于大型數(shù)據(jù)存儲(chǔ)系統(tǒng)而言的,如果使用者是小型企業(yè),為了減少成本,也可以考慮將其中的多個(gè)服務(wù)器合并成一個(gè),從而減少存儲(chǔ)服務(wù)器數(shù)量。

在上述系統(tǒng)結(jié)構(gòu)的基礎(chǔ)上,本發(fā)明方法的具體步驟如下:

(1)入庫(kù)服務(wù)器接收需要存儲(chǔ)入庫(kù)的數(shù)據(jù)文件。

入庫(kù)服務(wù)器作為整個(gè)系統(tǒng)與外界的接口,接收外界發(fā)送來(lái)的數(shù)據(jù)文件,并負(fù)責(zé)采用后續(xù)的步驟將該數(shù)據(jù)文件存儲(chǔ)到存儲(chǔ)服務(wù)器中。一個(gè)典型的例子是互聯(lián)網(wǎng)上的Web服務(wù)器相當(dāng)于入庫(kù)服務(wù)器,接收用戶上傳的數(shù)據(jù)文件并存儲(chǔ)。另外,本發(fā)明的入庫(kù)服務(wù)器也可以是多個(gè),本發(fā)明不對(duì)其數(shù)量做出限制。

(2)所述入庫(kù)服務(wù)器檢查所述數(shù)據(jù)文件的長(zhǎng)度L,如果L小于預(yù)定義的最小數(shù)據(jù)塊長(zhǎng)度MinBlockLength,則提取該數(shù)據(jù)文件的最后一個(gè)字節(jié)B,轉(zhuǎn)到步驟3。如果L≥MinBlockLength,則轉(zhuǎn)到步驟5。

上述長(zhǎng)度都是以字節(jié)為單位,由于一個(gè)字節(jié)為8位,則必然有0≤B≤255。所述最小數(shù)據(jù)塊長(zhǎng)度是本發(fā)明對(duì)文件分塊時(shí)的最小長(zhǎng)度,其具體值可以由管理員根據(jù)具體情況設(shè)定。一種優(yōu)選的情況下,該MinBlockLength=1024字節(jié)。

(3)預(yù)先給系統(tǒng)中的256個(gè)存儲(chǔ)服務(wù)器編號(hào),分別命名為Server(i),其中0≤i≤255,入庫(kù)服務(wù)器將該數(shù)據(jù)文件發(fā)送到Server(B),同時(shí)保存該數(shù)據(jù)文件的相關(guān)信息。

本發(fā)明根據(jù)數(shù)據(jù)塊結(jié)尾的字節(jié),對(duì)數(shù)據(jù)塊進(jìn)行分類,由于一個(gè)字節(jié)一共有256個(gè)取值,因此將數(shù)據(jù)塊分成256類,并且對(duì)應(yīng)的分配到256個(gè)存儲(chǔ)服務(wù)器,每個(gè)存儲(chǔ)服務(wù)器的編號(hào)與其負(fù)責(zé)的數(shù)據(jù)塊的分類(即結(jié)尾字節(jié)的值)相同。

256個(gè)存儲(chǔ)服務(wù)器是本發(fā)明的優(yōu)選方案,其實(shí)現(xiàn)成本較高,適用于大型的數(shù)據(jù)存儲(chǔ)系統(tǒng),如果需要縮減成本,存儲(chǔ)服務(wù)器之間可以進(jìn)行復(fù)用,即多個(gè)數(shù)據(jù)塊類別共享一個(gè)存儲(chǔ)服務(wù)器,該存儲(chǔ)服務(wù)器也就具有了多個(gè)編號(hào),這樣不影響本發(fā)明方法的具體實(shí)施過程。

所述數(shù)據(jù)文件的相關(guān)信息包括數(shù)據(jù)文件的名字、大小、存儲(chǔ)服務(wù)器的編號(hào)等等,由此入庫(kù)服務(wù)器可以查詢到該數(shù)據(jù)文件。

(4)所述Server(B)計(jì)算該數(shù)據(jù)文件的哈希值,根據(jù)該哈希值判斷該數(shù)據(jù)文件是否已存儲(chǔ)在服務(wù)器中,如果已存儲(chǔ),則該數(shù)據(jù)文件是重復(fù)數(shù)據(jù),僅為該數(shù)據(jù)文件保留一個(gè)指針,指向已存儲(chǔ)的數(shù)據(jù)即可;如果并未存儲(chǔ),則Server(B)存儲(chǔ)該數(shù)據(jù)文件和其哈希值,方法結(jié)束。

由于存儲(chǔ)服務(wù)器保存了每個(gè)存儲(chǔ)的數(shù)據(jù)文件或數(shù)據(jù)塊的哈希值,因此將該數(shù)據(jù)文件的哈希值與已有哈希值進(jìn)行比較,就可以判斷該數(shù)據(jù)文件是否是重復(fù)數(shù)據(jù),如果是重復(fù)數(shù)據(jù),就不用再次存儲(chǔ)整個(gè)數(shù)據(jù)文件。

(5)所述入庫(kù)服務(wù)器準(zhǔn)備對(duì)該數(shù)據(jù)文件進(jìn)行數(shù)據(jù)分塊,首先設(shè)置初始的分塊向量V=0.

(6)所述入庫(kù)服務(wù)器從該數(shù)據(jù)文件的第MinBlockLength個(gè)字節(jié)開始向后掃描,當(dāng)掃描某個(gè)字節(jié)等于分塊向量時(shí),記錄該字節(jié)的位置P1,然后再?gòu)腜1+MinBlockLength的位置開始掃描,尋找并記錄下一個(gè)等于分塊向量的字節(jié)位置,如此循環(huán),直到數(shù)據(jù)文件的末尾。換言之,每一次掃描的開始位置與上一次記錄位置的距離都是MinBlockLength,直到達(dá)到數(shù)據(jù)文件的末尾。

(7)根據(jù)步驟6的所記錄的位置,將每個(gè)位置作為一個(gè)數(shù)據(jù)塊的結(jié)尾,對(duì)數(shù)據(jù)文件進(jìn)行分塊,由此可以得到一個(gè)或多個(gè)數(shù)據(jù)塊,設(shè)得到了KV個(gè)數(shù)據(jù)塊。

步驟7得到的數(shù)據(jù)塊可能有兩類,第一類是以分塊向量V結(jié)尾的數(shù)據(jù)塊,第二類是數(shù)據(jù)文件的最后一個(gè)數(shù)據(jù)塊,即以B結(jié)尾的數(shù)據(jù)塊。其中第二類的數(shù)據(jù)塊的數(shù)量只能是1或者0,第一類數(shù)據(jù)塊的數(shù)據(jù)量也可能為0,這取決于數(shù)據(jù)文件的具體內(nèi)容。

(8)分塊向量V增加1,如果V≤255,則返回步驟6,否則繼續(xù)步驟9。

上述步驟6-8是一個(gè)循環(huán),基于0到255的每個(gè)分塊向量值進(jìn)行文件掃描,從而獲得了多種數(shù)據(jù)塊分割形式,數(shù)量從K0到K255。但是,本發(fā)明寫成循環(huán)的形式只是為了敘述方便,實(shí)際應(yīng)用中,本領(lǐng)域技術(shù)人員可以了解,可以只對(duì)數(shù)據(jù)文件進(jìn)行一遍掃描就完成上述256個(gè)循環(huán),從而提高執(zhí)行效率。

(9)對(duì)K0到K255按照從大到小進(jìn)行排序(如果有相等的KV,則下標(biāo)大的在前),獲取排在最前的(即最大的)5個(gè)值,假設(shè)為KV1,KV2,KV3,KV4,KV5。

(10)按照V1到V5五個(gè)分塊向量對(duì)該數(shù)據(jù)文件的分塊結(jié)果,將各個(gè)數(shù)據(jù)塊按照其結(jié)尾字節(jié)發(fā)送到相應(yīng)的存儲(chǔ)服務(wù)器進(jìn)行重復(fù)性檢測(cè)。

如前所述,如果一個(gè)數(shù)據(jù)塊的結(jié)尾字節(jié)是X,則將該數(shù)據(jù)塊發(fā)送到Server(X)。

(11)每個(gè)存儲(chǔ)服務(wù)器對(duì)接收到的每個(gè)數(shù)據(jù)塊,計(jì)算其哈希值,根據(jù)該哈希值判斷該數(shù)據(jù)塊是否是重復(fù)數(shù)據(jù)(即該數(shù)據(jù)塊與已存儲(chǔ)的數(shù)據(jù)塊相同),將判斷結(jié)果發(fā)送給入庫(kù)服務(wù)器。

(12)所述入庫(kù)服務(wù)器根據(jù)步驟11接收到的判斷結(jié)果,從五種分塊方式中選擇重復(fù)數(shù)據(jù)量最多的兩種(如果重復(fù)數(shù)據(jù)量相同,則隨機(jī)選擇)。根據(jù)這兩種分塊方式,通知相應(yīng)的存儲(chǔ)服務(wù)器進(jìn)行存儲(chǔ)。入庫(kù)服務(wù)器自身保存該數(shù)據(jù)文件的相關(guān)信息,包括其兩種分塊方式和相應(yīng)的存儲(chǔ)服務(wù)器。

存儲(chǔ)服務(wù)器的存儲(chǔ)方式與步驟4相同,如果是重復(fù)的數(shù)據(jù)塊,則只保留指針和相應(yīng)的哈希值,如果是不重復(fù)的數(shù)據(jù)塊,則保存該數(shù)據(jù)塊和相應(yīng)的哈希值。

保留的兩種分塊方式是為了冗余備份的考慮,即在一種分塊方式的存儲(chǔ)服務(wù)器出故障后,另外一種分塊方式仍然可以組合成原數(shù)據(jù)文件。

另外,上述步驟中,在五種分塊方式中選擇兩種僅僅是本發(fā)明的一種優(yōu)選的實(shí)施方式,本領(lǐng)域技術(shù)人員可以根據(jù)具體情況選擇另外的數(shù)值,例如從3種中選擇2種,或者5種中選擇3種。

以上所述僅是本發(fā)明的較佳實(shí)施方式,故凡依本發(fā)明專利申請(qǐng)范圍所述的構(gòu)造、特征及原理所做的等效變化或修飾,均包括于本發(fā)明專利申請(qǐng)范圍內(nèi)。

當(dāng)前第1頁(yè)1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
SHOW| 蛟河市| 冷水江市| 新余市| 岢岚县| 宣武区| 来安县| 延寿县| 威远县| 荆门市| 深水埗区| 吉安市| 南召县| 万载县| 伊金霍洛旗| 揭阳市| 禹城市| 尤溪县| 三亚市| 北京市| 晋州市| 萝北县| 门头沟区| 蓝山县| 常德市| 津市市| 米脂县| 上高县| 张掖市| 濮阳市| 准格尔旗| 齐河县| 黄浦区| 甘泉县| 综艺| 丹寨县| 和林格尔县| 乐山市| 水城县| 奉贤区| 咸阳市|