一種基于服務器查找數據流分割點的方法及服務器的制造方法
【專利摘要】本發明實施例提供了一種基于服務器查找數據流分割點的方法。本發明實施例中通過判斷M個窗口中某一個窗口中至少部分數據是否滿足預定條件,來查找數據流分割點,當某一個窗口中至少部分數據不滿足預定條件,則跳過N*U個長度,獲得下一個潛在分割點,提高了數據流分割點查找效率。
【專利說明】一種基于服務器查找數據流分割點的方法及服務器
【技術領域】
[0001]本發明涉及信息【技術領域】,尤其涉及一種基于服務器查找數據流分割點的方法及服務器。
【背景技術】
[0002]數據量的不斷增長,使得提供充足的數據存儲成為當前存儲領域面臨的嚴峻挑戰。目前應對這一挑戰的一種方式為利用需要存儲的數據的冗余特性,使用重復數據刪除技術,從而減少存儲的數據量。
[0003]現有技術中,基于內容分塊(Content Defined Chunk, CDC)的重復數據刪除算法,首先要將待存儲的數據流分成很多數據塊,而將數據流分成數據塊就需要在數據流中查找合適的分割點,兩個相鄰數據流分割點之間的數據構成一個數據塊。計算數據塊的特征值,從而查找是否存在相同特征值的數據塊,如果查找到相同特征指的數據塊,則認為存在重復數據。具體的,基于內容分塊的重復數據刪除技術是應用滑動窗口技術(Sliding WindowTechnique)基于文件的內容來查找分塊的分割點,即通過計算窗口內數據的Rabin指紋來確定數據流分割點。假設從數據流的左邊向右邊查找分割點,每次計算滑動窗口內數據的指紋,并且將指紋值基于給定的整數K取模后,與給定的余數R進行比對;若相等則窗口的右端為數據流分割點,否則將窗口繼續往右滑動一個字節,依次循環地進行計算和比對,直到到達數據流末尾。在基于內容分塊的重復數據刪除過程中,查找數據流分割點,需要消耗大量的計算資源,從而成為提升重復數據刪除性能的瓶頸。
【發明內容】
[0004]第一方面,本發明實施例提供了一種基于服務器查找數據流分割點的方法,在所述服務器上預設有規則,所述規則為:為潛在分割點
[0005]k 確定 M 個點 px、點 Px 對應的窗口 Wx[px_Ax,px+Bj 和窗口 Wx [px_Ax,px+Bx]對應的預定條件Cx,其中,X為I到M連續的自然數,M ^ 2, Ax和Bx為整數;所述方法包括:
[0006]a)依據所述規則為當前潛在分割點Ici確定點Piz及所述點Piz對應的窗口WiJpiz-Az, piz+Bz],i 和 z 為整數,并且 I 彡 z 彡 M ;
[0007]b)判斷所述窗口 Wiz[piz_Az, piz+Bj中至少部分數據是否滿足預定條件Cz ;
[0008]當所述窗口Wiz[piz-Az,piz+Bz]中至少部分數據不滿足所述預定條件Cz,從所述點P i z沿所述數據流分割點查找方向跳躍N個數據流分割點最小查找單位U,N* U不大于Il Bz Il +maxx( Il Ax || + || (Ic1-Pix) || ),獲得新的潛在分割點,執行步驟a);
[0009]c)當所述當前潛在分割點Ici的皿個窗口中的每一個窗口 Wix[pix_Ax,pix+Bx]中至少部分數據滿足預定條件Cx,則所述當前潛在分割點Ici為數據流分割點。
[0010]結合第一方面,第一種可能的實現方式中,所述規則還包括:至少兩個點Pe和Pf,滿足條件 Ae = Af, Be = Bf, Ce = Cf。
[0011]結合第一方面的第一種可能的實現方式,第二種可能的實現方式中,所述規則還包括:所述至少兩個點Pe和?。相對于所述潛在分割點k,在所述數據流分割點查找反方向上。
[0012]結合第一方面的第一種可能的實現方式或第二種可能的實現方式,第三種可能的實現方式中,所述規則還包括:所述至少兩個點Pe和Pf之間的距離為I個U。
[0013]結合第一方面,或第一方面第一至第三種任一可能的實現方式,第四種可能的實現方式中,判斷所述窗口 Wiz[piz-Az,piz+Bz]中至少部分數據是否滿足所述預定條件Cz,具體包括:
[0014]使用隨機函數判斷所述窗口 Wiz[piz_Az,piz+Bj中至少部分數據是否滿足所述預定條件Cz。
[0015]結合第一方面的第四種可能的實現方式,第五種可能的實現方式中,所述使用隨機函數判斷所述窗口 Wiz[Piz-Az,piz+Bz]中至少部分數據是否滿足所述預定條件Cz,具體為使用hash函數判斷所述窗口 Wiz [piz-Az,piz+Bz]中至少部分數據是否滿足所述預定條件Cz。
[0016]結合第一方面,或第一方面第一至第五種任一可能的實現方式,第六種可能的實現方式中,當所述窗口 Wiz[piz-Az,piz+Bz]中至少部分數據不滿足所述預定條件Cz,從所述點Piz沿所述數據流分割點查找方向跳躍N個數據流分割點最小查找單位U,獲得所述新的潛在分割點,根據所述規則,為所述新的潛在分割點確定的點Pi。對應的窗口ffic[pic-Ac,pic+Bc]的左邊界與所述窗口 Wiz[piz-Az,piz+Bz]的右邊界重合或者為所述新的潛在分割點確定的所述點Pic;對應的所述窗口 WiJpicH^piJBJ的左邊界位于所述窗口Wiz[piz-Az, piz+Bz]范圍之內;其中,為所述新的潛在分割點確定的所述點Pi。是根據所述規貝U,為所述新的潛在分割點確定的M個點按照數據流查找方向獲得的序列中排序第一的點。
[0017]結合第一方面的第四種可能的實現方式,第七種可能的實現方式中,使用隨機函數判斷所述窗口 Wiz[Piz-Az,piz+Bz]中至少部分數據是否滿足所述預定條件Cz,具體包括:
[0018]在所述窗口 Wiz [piz_Az,piz+Bz]中選擇F個字節,將所述F個字節反復利用H次,共獲得F*H個字節,其中每個字節由8位組成,記為a。,表示所述F*H個字節中第m個
^1,1 ai'2 …^1,8
字節的第I到第8位,所述F*H個字節對應的位可以表示為:ar ": 8 ,
\α¥*ΗΛ aF*H二 …j
當an,n = I時,Vamjn = 1,當Bni,n = O時,Vam;n = -1,其中a"表示B111,廣、』中的任一個,所述F*H個字節對應的位按照am,n與Vam,n的轉換關系得到矩陣所述矩陣Va表示為:(V VV λ
ν α?,?ν α\α
Κ:1 Κ:'2:,從服務正態分布的隨機數中選擇F*H*8個隨機數組成矩
Vγ...V
hi'i hl2...hi%
陣R,所述矩陣R表示為:? k〒 7 V ,將所述矩陣Va的第m行與所述矩陣
^F*H,2...J
R的第m行的隨機數相乘,然后求和得到一個值,具體表示為Sam =…
+Vamj8^hnij8,同理,獲得Sal、Sa2…到SaFW,統計Sal、Sa2…到SaM中滿足大于O的值的個數K,當K為偶數,則所述窗口 Wiz [piz-Az,piz+Bz]中至少部分數據滿足所述預定條件Cz。
[0019]第二方面,本發明實施例提供了一種基于服務器查找數據流分割點的方法,在所述服務器上預設有規則,所述規則為:為潛在分割點k確定M個窗口 Wx[k-Ax,k+Bj和窗口Wx[k-Ax, k+Bj對應的預定條件Cx,其中,X為I到M連續的自然數,M彡2,Ax和Bx為整數;
[0020]所述方法包括:
[0021]a)依據所述規則為當前潛在分割點Iii確定對應的窗口 WiJk1-Az, k^Bj,i和z為整數,并且I彡z彡Μ;
[0022]b)判斷所述窗口 WiJk1-Az, k^Bj中至少部分數據是否滿足預定條件Cz ;
[0023]當所述窗口WiJk1-Az, h+Bj中至少部分數據不滿足所述預定條件Cz,從所述當前潛在分割點h沿所述數據流分割點查找方向跳躍N個數據流分割點最小查找單位U,N*U不大于Il Bz Il +maxx( Il Ax || ),獲得新的潛在分割點,執行步驟a);
[0024]c)當所述當前潛在分割點Iii的M個窗口中的每一個窗口 WiJk1-Ax, k^Bj中至少部分數據滿足預定條件Cx,則所述當前潛在分割點Ici為數據流分割點。
[0025]結合第二方面,第一種可能的實現方式中,所述規則還包括:至少兩個窗口Wie Lk1-Ae, VBe]與 WifLk1-Af, VBf],滿足條件:I Ae+Be | = | Af+Bf |, Ce = Cfo
[0026]結合第二方面的第一種可能的實現方式,第二種可能的實現方式中,所述規則還包括:κ和Af為正整數。
[0027]結合第二方面的第一種可能的實現方式或第二種可能的實現方式,在第三種可能的實現方式中,所述規則還包括:Ae-l = Af, Be+1 = Bf。
[0028]結合第二方面,或第二方面第一至第三任一可能的實現方式,第四種可能的實現方式中,判斷所述窗口 WiJk1-AukdBJ中至少部分數據是否所述滿足預定條件Cz,具體包括:
[0029]使用隨機函數判斷所述窗口 WJk1-Az, h+Bj中至少部分數據是否滿足所述預定條件Cz。
[0030]結合第二方面的第四種可能的實現方式,第五種可能的實現方式中,所述使用隨機函數判斷所述窗口 Wiz Lk1-Az, ki+Bj中至少部分數據是否滿足所述預定條件Cz,具體為使用hash函數判斷所述窗口 WiJk1-Az, h+Bj中至少部分數據是否滿足所述預定條件Cz。
[0031]結合第二方面,或第二方面第一至第五任一可能的實現方式,第六種可能的實現方式中,當所述窗口 Wiz [k1-Az,ki+Bj中至少部分數據不滿足所述預定條件Cz,從所述當前潛在分割點h沿所述數據流分割點查找方向跳躍N個數據流分割點最小查找單位U,獲得所述新的潛在分割點,根據所述規則,為所述新的潛在分割點確定的窗口 Uk1-A。,h+B。]的左邊界與所述窗口 Wiz[k1-Az,h+Bj的右邊界重合或者為所述新的潛在分割點確定的所述窗口 WiJH ki+B。]的左邊界位于所述窗口 Wiz[H I^+BJ范圍之內;其中,為所述新的潛在分割點確定的所述窗口 WiJk1-Ac^ h+B。]是根據所述規則,為所述新的潛在分割點確定的M個窗口按照數據流查找方向獲得的序列中排序第一的窗口。
[0032]結合第二方面的第四種可能的實現方式,第七種可能的實現方式中,使用隨機函數判斷所述窗口 Wiz[k1-Az,h+Bj中至少部分數據是否滿足所述預定條件Cz,具體包括:
[0033]在所述窗口 WiJk1-AzJjBz]中選擇F個字節,將所述F個字節反復利用H次,共獲得F*H個字節,其中每個字節由8位組成,記為,表示所述F*H個字節中第m個
氣 I a\,2 ■..α?,8
字節的第I到第8位,所述F*H個字節對應的位可以表示為:y aT,
aF*H'1...aF*HS J
當an,n = I時,Vamjn = 1,當= 0時,Vam;n = _1,其中a"表示中的任一個,所述F*H個字節對應的位按照am,n與Vam,n的轉換關系得到矩陣所述矩陣Va表示為:
r Cu Ku …、
1Valf.Ffl.2,8 ,從服務正態分布的隨機數中選擇F*H*8個隨機數組成矩
Λ VaFm,2^aFliHS j
(h h h λ
liU〃1,2...〃1,8
陣R,所述矩陣R表示為:h:;' k丨1':,將所述矩陣Va的第m行與所述矩陣
hi...^F*H,a j
R的第m行的隨機數相乘,然后求和得到一個值,具體表示為Sam =…
+Vamj8^hnij8,同理,獲得Sal、Sa2…到SaFW,統計Sal、Sa2…到SaM中滿足大于O的值的個數K,當K為偶數,則所述窗口 WiJk1-Az, k.+Bj中至少部分數據滿足所述預定條件Cz。
[0034]第三方面,本發明實施例提供了一種用于查找數據流分割點的服務器,所述服務器包括中央處理單元和主存儲器,所述中央處理單元與所述主存儲器通信,在所述服務器上預設有規則,所述規則為:為潛在分割點k確定M個點px、點px對應的窗口 Wx [px-Ax,px+Bx]和窗口 Wx[px-Ax,px+Bx]對應的預定條件Cx,其中,X為I到M連續的自然數,M彡2,Ax和Bx為整數;
[0035]所述主存儲器用于存儲可執行指令,所述中央處理單元執行所述可執行指令,以執行如下步驟:
[0036]a)依據所述規則為當前潛在分割點Ici確定點Piz及所述點Piz對應的窗口WiJpiz-Az, piz+Bz],i 和 z 為整數,并且 I 彡 z 彡 M ;
[0037]b)判斷所述窗口 Wiz [piz-Az,piz+Bj中至少部分數據是否滿足預定條件Cz ;
[0038]當所述窗口Wiz[piz-Az,piz+Bz]中至少部分數據不滿足所述預定條件Cz,從所述點P i z沿所述數據流分割點查找方向跳躍N個數據流分割點最小查找單位U,N* U不大于Il Bz Il +maxx( Il Ax || + || (Ic1-Pix) || ),獲得新的潛在分割點,執行步驟a);
[0039]c)當所述當前潛在分割點Ici的皿個窗口中的每一個窗口 Wix[pix_Ax,pix+Bx]中至少部分數據滿足預定條件cx,則所述當前潛在分割點ki為數據流分割點。
[0040]結合第三方面,第一種可能的實現方式中,所述規則還包括:至少兩個點Pe和Pf,滿足條件 Ae = Af, Be = Bf, Ce = Cf。
[0041]結合第三方面的第一種可能的實現方式,第二種可能的實現方式中,所述規則還包括:所述至少兩個點Pe和Pf,相對于所述潛在分割點k,在所述數據流分割點查找反方向上。
[0042]結合第三方面的第一種可能的實現方式或第二種可能的實現方式,第三種可能的實現方式中,所述規則還包括:所述至少兩個點Pe和Pf之間的距離為I個U。
[0043]結合第三方面,或第一至第三任一可能的實現方式,第四種可能的實現方式中,所述中央處理單元具體用于
[0044]使用隨機函數判斷所述窗口 Wiz[piz_Az,piz+Bj中至少部分數據是否滿足所述預定條件Cz。
[0045]結合第三方面的第四種可能的實現方式,第五種可能的實現方式中,所述中央處理單元具體用于使用hash函數判斷所述窗口 Wiz[piz_Az,piz+Bz]中至少部分數據是否滿足所述預定條件Cz。
[0046]結合第三方面,或第一至第五任一可能的實現方式,第六種可能的實現方式中,當所述窗口 Wiz [piz_Az,piz+Bj中至少部分數據不滿足所述預定條件Cz,從所述點piz沿所述數據流分割點查找方向跳躍N個數據流分割點最小查找單位U,獲得所述新的潛在分割點,根據所述規則,為所述新的潛在分割點確定的點Pi。對應的窗口 Wic;[Pic;-A。,pic+Bc]的左邊界與所述窗口 Wiz[piz-Az, piz+Bj的右邊界重合或者為所述新的潛在分割點確定的所述點Pi。對應的所述窗口 WjpicH^piJBj的左邊界位于所述窗口 Wiz[piz-Az,piz+Bz]范圍之內;其中,為所述新的潛在分割點確定的所述點Pi。是根據所述規則,為所述新的潛在分割點確定的M個點按照數據流查找方向獲得的序列中排序第一的點。
[0047]結合第三方面的第四種可能的實現方式,第七種可能的實現方式中,所述中央處理單元使用隨機函數判斷所述窗口 Wiz[piz-Az,piz+Bj中至少部分數據是否滿足所述預定條件Cz,具體包括:
[0048]在所述窗口 Wiz [piz_Az,piz+Bz]中選擇F個字節,將所述F個字節反復利用H次,共獲得F*H個字節,其中每個字節由8位組成,記為a。,表示所述F*H個字節中第m個
^ G1 j O12...α18 Λ
字節的第I到第8位,所述f*h個字節對應的位可以表示為:1a;'8 ,
KaF*H\l αβ H …j
當an,n = I時,Vamjn = 1,當= O時,Vam;n = _1,其中a"表示中的任一個,所述F*H個字節對應的位按照am,n與Vam,n的轉換關系得到矩陣所述矩陣Va表示為:
,Ku Ku2 …^、
Va:>l VT 7 vT ,從服務正態分布的隨機數中選擇F*H*8個隨機數組成矩
Vν...V
\ v aF*H,l t Hy aF*H^ J
(h h h ^
ilI5I〃1,2 … fiU
陣R,所述矩陣R表示為:?丨h]? 7,將所述矩陣Va的第m行與所述矩陣
T*H 'I h1...j
R的第m行的隨機數相乘,然后求和得到一個值,具體表示為Sam =…
+Vamj8^hnij8,同理,獲得Sal、Sa2…到SaFW,統計Sal、Sa2…到SaM中滿足大于O的值的個數K,當K為偶數,則所述窗口 Wiz[piz-Az,piz+Bz]中至少部分數據滿足所述預定條件Cz。第四方面,本發明實施例提供了一種用于查找數據流分割點的服務器,所述服務器包括中央處理單元和主存儲器,所述中央處理單元與所述主存儲器通信,在所述服務器上預設有規則,所述規則為:為潛在分割點k確定M個窗口 Wx[k-Ax,k+Bj和窗口 Wx[k-Ax,k+Bj對應的預定條件Cx,其中,X為I到M連續的自然數,M彡2,Ax和Bx為整數;
[0049]所述主存儲器用于存儲可執行指令,所述中央處理單元執行所述可執行指令,以執行以下步驟:
[0050]a)依據所述規則為當前潛在分割點Iii確定對應的窗口 WiJk1-Az, k^Bj,i和z為整數,并且I彡z彡Μ;
[0051]b)判斷所述窗口 WiJk1-Az, k^Bj中至少部分數據是否滿足預定條件Cz ;
[0052]當所述窗口WiJk1-Az, h+Bj中至少部分數據不滿足所述預定條件Cz,從所述當前潛在分割點h沿所述數據流分割點查找方向跳躍N個數據流分割點最小查找單位U,N*U不大于Il Bz Il +maxx( Il Ax || ),獲得新的潛在分割點,執行步驟a);
[0053]c)當所述當前潛在分割點Iii的M個窗口中的每一個窗口 WiJk1-Ax, k^Bj中至少部分數據滿足預定條件Cx,則所述當前潛在分割點Ici為數據流分割點。
[0054]結合第四方面,第一種可能的實現方式中,所述規則還包括:至少兩個窗口Wie Lk1-Ae, VBe]與 WifLk1-Af, VBf],滿足條件:I Ae+Be | = | Af+Bf |, Ce = Cfo
[0055]結合第四方面的第一種可能的實現方式,第二種可能的實現方式中,所述規則還包括:κ和Af為正整數。
[0056]結合第四方面的第一種可能的實現方式或第二種可能的實現方式,在第三種可能的實現方式中,所述規則還包括:Ae-l = Af, Be+1 = Bf。
[0057]結合第四方面,或第一至第三任一可能的實現方式,第四種可能的實現方式中,所述中央處理單元具體用于
[0058]使用隨機函數判斷所述窗口 WJk1-Az, h+Bj中至少部分數據是否滿足所述預定條件Cz。
[0059]結合第四方面的第四種可能的實現方式,第五種可能的實現方式中,所述中央處理單元具體用于使用hash函數判斷所述窗口 Wiz[k1-Az,h+Bj中至少部分數據是否滿足所述預定條件Cz。
[0060]結合第四方面,或第一至第五任一可能的實現方式,第六種可能的實現方式中,當所述窗口 WiJk1-AzAfBz]中至少部分數據不滿足所述預定條件Cz,從所述當前潛在分割點匕沿所述數據流分割點查找方向跳躍N個數據流分割點最小查找單位U,獲得所述新的潛在分割點,根據所述規則,為所述新的潛在分割點確定的窗口 WiJk1-Ac^VBJ的左邊界與所述窗口 WiJk1-AzAfBz]的右邊界重合或者為所述新的潛在分割點確定的所述窗口WiJk1-Ac, ^+BJ的左邊界位于所述窗口 WiJk1-Az, I^+BJ范圍之內;其中,為所述新的潛在分割點確定的所述窗口 WiJk1-Ac^ k^Bj是根據所述規則,為所述新的潛在分割點確定的M個窗口按照數據流查找方向獲得的序列中排序第一的窗口。
[0061]結合第四方面的第四種可能的實現方式,第七種可能的實現方式中,所述中央處理單元使用隨機函數判斷所述窗口 WJk1-Az, h+Bj中至少部分數據是否滿足所述預定條件Cz,具體包括:
[0062]在所述窗口 WiJk1-AzJjBz]中選擇F個字節,將所述F個字節反復利用H次,共獲得F*H個字節,其中每個字節由8位組成,記為,表示所述F*H個字節中第m個
氣1 α\Λ ".flI,8
字節的第I到第8位,所述F*H個字節對應的位可以表示為:,1 α:'2 7 0V ,
aFm'2 …J
當an,n = I時,Vamjn = 1,當= O時,Vam;n = _1,其中a"表示中的任一個,所述F*H個字節對應的位按照am,n與Vam,n的轉換關系得到矩陣所述矩陣Va表示為:
r Kul Ku …匕8、
K:A7,從服務正態分布的隨機數中選擇F*H*8個隨機數組成矩
VV...ν
、1 r aF*Har aF*H^ j
^1,1 ^1.2 …,Yx
陣R,所述矩陣R表示為:U kf,將所述矩陣Va的第m行與所述矩陣
^?*Η,\ hi...^1F* Hfi j
R的第m行的隨機數相乘,然后求和得到一個值,具體表示為Sam =…
+Vamj8^hnij8,同理,獲得Sal、Sa2…到SaFW,統計Sal、Sa2…到SaM中滿足大于O的值的個數K,當K為偶數,則所述窗口 WiJk1-Az, k.+Bj中至少部分數據滿足所述預定條件Cz。
[0063]第五方面,本發明實施例提供了一種用于查找數據流分割點的服務器,在所述服務器上預設有規則,所述規則為:為潛在分割點k確定M個點px、點px對應的窗口Wx[px-Ax, px+Bx]和窗口 Wx[px-Ax,px+Bx]對應的預定條件Cx,其中,x為I到M連續的自然數,M彡2,Ax和BxS整數;
[0064]所述服務器包括:處理單元,用于執行步驟a):
[0065]a)依據所述規則為當前潛在分割點Ici確定點Piz及所述點Piz對應的窗口WiJpiz-Az, piz+Bz],i 和 z 為整數,并且 I 彡 z 彡 M ;
[0066]判斷處理單元,用于判斷所述窗口 Wiz[piz_Az,piz+Bz]中至少部分數據是否滿足預定條件Cz ;
[0067]當所述窗口Wiz[piz-Az,piz+Bz]中至少部分數據不滿足所述預定條件Cz,從所述點P i z沿所述數據流分割點查找方向跳躍N個數據流分割點最小查找單位U,N* U不大于Il Bz Il +maxx( Il Ax Il + Il (Ic1-Pix) Il ),獲得新的潛在分割點,則所述確定單元為所述新的潛在分割點執行步驟a);
[0068]當所述當前潛在分割點Iii的M個窗口中的每一個窗口 Wix[pix-Ax,pix+Bx]中至少部分數據滿足預定條件Cx,則所述當前潛在分割點Ici為數據流分割點。
[0069]結合第五方面,第一種可能的實現方式中,所述規則還包括:至少兩個點Pe和Pf,滿足條件 Ae = Af, Be = Bf, Ce = Cf。
[0070]結合第五方面的第一種可能的實現方式,第二種可能的實現方式中,所述規則還包括:所述至少兩個點Pe和Pf,相對于所述潛在分割點k,在所述數據流分割點查找反方向上。
[0071]結合第五方面的第一種可能的實現方式或第二種可能的實現方式,在第三種可能的實現方式中,所述規則還包括:所述至少兩個點Pe和Pf之間距離為I個U。
[0072]結合第五方面,或第一至第三任一可能的實現方式,第四種可能的實現方式中,所述判斷處理單元具體使用隨機函數判斷所述窗口 Wiz[piz-Az,piz+Bj中至少部分數據是否滿足所述預定條件Cz。
[0073]結合第五方面的第四種可能的實現方式,第五種可能的實現方式中,所述判決處理單元具體用于使用hash函數判斷所述窗口 Wiz[piz_Az,piz+Bz]中至少部分數據是否滿足所述預定條件Cz。
[0074]結合第五方面,或第一至第五任一可能的實現方式,第六種可能的實現方式中,所述判斷處理單元用于當所述窗口 Wiz[Piz_Az,piz+Bj中至少部分數據不滿足所述預定條件Cz,從所述點piz沿所述數據流分割點查找方向跳躍N個數據流分割點最小查找單位U,獲得所述新的潛在分割點,所述確定單元為所述新的潛在分割點執行步驟a),根據所述規則,為所述新的潛在分割點確定的點Pic;對應的窗口 Wic; [pic-Ac, pic+Bc]的左邊界與所述窗口 Wiz[piz-Az,piz+Bz]的右邊界重合或者為所述新的潛在分割點確定的所述窗口ffic[pic-Ac,pic+Bc]的左邊界位于所述窗口 Wiz[piz-Az,piz+Bz]范圍之內;其中,為所述新的潛在分割點確定的所述窗口 H-AyPk+B。]是根據所述規則,為所述新的潛在分割點確定的M個點按照數據流查找方向獲得的序列中排序第一的點。
[0075]結合第五方面的第四種可能的實現方式,第七種可能的實現方式中,所述判斷處理單元具體用于使用隨機函數判斷所述窗口 Wiz[piz-Az,piz+Bj中至少部分數據是否滿足所述預定條件Cz,具體包括:
[0076]在所述窗口 Wiz [piz_Az,piz+Bz]中選擇F個字節,將所述F個字節反復利用H次,共獲得F*H個字節,其中每個字節由8位組成,記為a。,表示所述F*H個字節中第m個
a1.\ a\,2...氣8
字節的第I到第8位,所述F*H個字節對應的位可以表示為:7,
aF'*H.2 …aF*H^ J
當an,n = I時,Vamjn = 1,當= O時,Vam;n = _1,其中a"表示中的任一個,所述F*H個字節對應的位按照am,n與Vam,n的轉換關系得到矩陣所述矩陣Va表示為:'Kul Vahl …匕8、
K:A K!a 7 ^fl.2,8 ,從服務正態分布的隨機數中選擇F*H*8個隨機數組成矩
VV...ν
、1 r aF*Har aF*H^ j
f h h b ^
iiUn\2 … nl,8
陣R,所述矩陣R表示為:? krh ,將所述矩陣Va的第m行與所述矩陣
^1FtHa...^1F* H? j
R的第m行的隨機數相乘,然后求和得到一個值,具體表示為Sam =…
+Vamj8^hnij8,同理,獲得Sal、Sa2…到SaFW,統計Sal、Sa2…到SaM中滿足大于O的值的個數K,當K為偶數,則所述窗口 Wiz [piz-Az,piz+Bz]中至少部分數據滿足所述預定條件Cz。
[0077]第六方面,本發明實施例提供了一種用于查找數據流分割點的服務器,在所述服務器上預設有規則,所述規則為:為潛在分割點k確定M個窗口 Wx[k-Ax,k+Bj和窗口Wx[k-Ax, k+Bj對應的預定條件Cx,其中,X為I到M連續的自然數,M彡2,Ax和Bx為整數;
[0078]所述服務器包括:確定單元,用于執行步驟a:
[0079]a)依據所述規則為當前潛在分割點Iii確定對應的窗口 WiJk1-Az, k^Bj,i和z為整數,并且I彡z彡Μ;
[0080]判斷處理單元,用于判斷所述窗口 WJk1-Az, h+Bj中至少部分數據是否滿足預定條件Cz ;
[0081]當所述窗口 WiJk1-Az, h+Bj中至少部分數據不滿足所述預定條件Cz,從所述當前潛在分割點h沿所述數據流分割點查找方向跳躍N個數據流分割點最小查找單位U, N*U不大于Il Bz Il +maxx( Il Ax || ),獲得新的潛在分割點,執行步驟a);
[0082]c當所述當前潛在分割點Iii的M個窗口中的每一個窗口 WiJk1-Ax, k^Bj中至少部分數據滿足預定條件Cx,則所述當前潛在分割點Ici為數據流分割點。
[0083]結合第六方面,第一種可能的實現方式中,所述規則還包括:至少兩個窗口Wie Lk1-Ae, VBe]與 WifLk1-Af, VBf],滿足條件:I Ae+Be | = | Af+Bf |, Ce = Cfo
[0084]結合第六方面的第一種可能的實現方式,第二種可能的實現方式中,所述規則還包括:κ和Af為正整數。
[0085]結合第六方面的第一種可能的實現方式或第二種可能的實現方式,在第三種可能的實現方式中,所述規則還包括:Ae-l = Af, Be+1 = Bf。
[0086]結合第六方面,或第一至第三任一可能的實現方式,第四種可能的實現方式中,所述判斷處理單元具體用于
[0087]使用隨機函數判斷所述窗口 WJk1-Az, h+Bj中至少部分數據是否滿足所述預定條件Cz。
[0088]結合第六方面的第四種可能的實現方式,第五種可能的實現方式中,所述判斷處理單元具體用于使用hash函數判斷所述窗口 Wiz[k1-Az,h+Bj中至少部分數據是否滿足所述預定條件Cz。
[0089]結合第六方面,或第一至第五任一可能的實現方式,第六種可能的實現方式中,所述判斷處理單元用于當所述窗口 WiJk1-AzAJBz]中至少部分數據不滿足所述預定條件Cz,從所述當前潛在分割點匕沿所述數據流分割點查找方向跳躍N個數據流分割點最小查找單位U,獲得所述新的潛在分割點,所述確定單元為所述新的潛在分割點執行步驟a),根據所述規則,為所述新的潛在分割點確定的窗口 WiJk1-Ac^kfBJ的左邊界與所述窗口 WiJk1-Az^fBJ的右邊界重合或者為所述新的潛在分割點確定的所述窗口WiJk1-Ac, ^+BJ的左邊界位于所述窗口 WiJk1-Az, I^+BJ范圍之內;其中,為所述新的潛在分割點確定的所述窗口 WiJk1-Ac^ k^Bj是根據所述規則,為所述新的潛在分割點確定的M個窗口按照數據流查找方向獲得的序列中排序第一的窗口。
[0090]結合第六方面的第四種可能的實現方式,第七種可能的實現方式中,所述判斷處理單元使用隨機函數判斷所述窗口 WiJk1-Az^fBz]中至少部分數據是否滿足所述預定條件Cz,具體包括:
[0091]在所述窗口 WiJk1-AzAfBz]中選擇F個字節,將所述F個字節反復利用H次,共獲得F*H個字節,其中每個字節由8位組成,記為,表示所述F*H個字節中第m個
氣 I a\,2 ".°1,8
字節的第I到第8位,所述F*H個字節對應的位可以表示為:y a:28 ,
aFma … 以 FU j
當 an,n = I 時,Vamjn = 1,當 Bni,n = O 時,Vam;n = -1,其中 a"表示中的任一個,
所述F*H個字節對應的位按照am,n與Vam,n的轉換關系得到矩陣所述矩陣Va表示為:I11 K12 …‘、
Κ.2>1 Κ:'2^:'8 ,從服務正態分布的隨機數中選擇F*H*8個隨機數組成矩
VV...V
V t H,I y aF*H,2P //,8 J
f Ii11 h'.:.//丨.x.、
陣R,所述矩陣R表示為:U ;Γ,將所述矩陣Va的第m行與所述矩陣
KhF*H>l hFtH 2...^1F* H S J
R的第m行的隨機數相乘,然后求和得到一個值,具體表示為Sam =…
+Vamj8^hnij8,同理,獲得Sal、Sa2…到SaFW,統計Sal、Sa2…到SaM中滿足大于O的值的個數K,當K為偶數,則所述窗口 WiJk1-Az, k.+Bj中至少部分數據滿足所述預定條件Cz。
[0092]第七方面,本發明實施例提供了一種計算機可讀存儲介質,所述計算機可讀存儲介質用于存儲可執行指令,服務器執行所述可執行指令以查找數據流分割點,在所述服務器上預設有規則,所述規則為:為潛在分割點k確定M個點px、點px對應的窗口Wx[px-Ax, px+Bx]和窗口 Wx[px-Ax,px+Bx]對應的預定條件Cx,其中,x為I到M連續的自然數,M彡2,Ax和BxS整數;
[0093]當所述服務器執行所述可執行指令,以執行以下步驟:
[0094]a)依據所述規則為當前潛在分割點Ici確定點Piz及所述點Piz對應的窗口WiJpiz-Az, piz+Bz],i 和 z 為整數,并且 I 彡 z 彡 M ;
[0095]b)判斷所述窗口 Wiz [piz_Az,piz+Bj中至少部分數據是否滿足預定條件Cz ;
[0096]當所述窗口Wiz[piz_Az,piz+Bz]中至少部分數據不滿足所述預定條件Cz,從所述點P i z沿所述數據流分割點查找方向跳躍N個數據流分割點最小查找單位U,N* U不大于Il Bz Il +maxx( Il Ax || + || (Ic1-Pix) || ),獲得新的潛在分割點,執行步驟a);
[0097]c)當所述當前潛在分割點Ici的皿個窗口中的每一個窗口 Wix[pix_Ax,pix+Bx]中至少部分數據滿足預定條件Cx,則所述當前潛在分割點Ici為數據流分割點。
[0098]結合第七方面,第一種可能的實現方式中,所述規則還包括:至少兩個點Pe和Pf,滿足條件 Ae = Af, Be = Bf, Ce = Cf。
[0099]結合第七方面的第一種可能的實現方式,第二種可能的實現方式中,所述規則還包括:所述至少兩個點Pe和Pf,相對于所述潛在分割點k,在所述數據流分割點查找反方向上。
[0100]結合第七方面的第一種可能的實現方式或第二種可能的實現方式,在第三種可能的實現方式中,所述規則還包括:所述至少兩個點Pe和Pf之間的距離為I個U。
[0101]結合第七方面,或第七方面第一至第三任一可能的實現方式,第四種可能的實現方式中,所述服務器判斷所述窗口 Wiz[piz-Az,piz+Bz]中至少部分數據是否滿足所述預定條件Cz,具體包括:
[0102]所述服務器使用隨機函數判斷所述窗口 Wiz[piz_Az,piz+Bj中至少部分數據是否滿足所述預定條件Cz。
[0103]結合第七方面的第四種可能的實現方式,第五種可能的實現方式中,所述服務器使用隨機函數判斷所述窗口 Wiz[Piz-Az,piz+Bz]中至少部分數據是否滿足所述預定條件Cz,具體包括:
[0104]所述服務器使用hash函數判斷所述窗口 Wiz[piz-Az,piz+Bz]中至少部分數據是否滿足所述預定條件Cz。
[0105]結合第七方面,或第七方面第一至第五任一可能的實現方式,第六種可能的實現方式中,當所述窗口 Wiz [Piz-Az,piz+Bz]中至少部分數據不滿足所述預定條件Cz,從所述點Piz沿所述數據流分割點查找方向跳躍N個數據流分割點最小查找單位U,獲得所述新的潛在分割點,根據所述規則,為所述新的潛在分割點確定的點Pic;對應的窗口 Wic;[pic;-A。,pic+Bc]的左邊界與所述窗口 Wiz[piz-Az,piz+Bj的右邊界重合或者為所述新的潛在分割點確定的所述點Pi。對應的所述窗口 Wic;[pic;-A。,pic+Bc]的左邊界位于所述窗口 Wiz[Piz-Az, piz+Bj范圍之內;其中,為所述新的潛在分割點確定的所述點Pi。是根據所述規則,為所述新的潛在分割點確定的M個點按照數據流查找方向獲得的序列中排序第一的點。
[0106]結合第七方面的第四種可能的實現方式,第七種可能的實現方式中,使用隨機函數判斷所述窗口 Wiz[Piz-Az,piz+Bz]中至少部分數據是否滿足所述預定條件Cz,具體包括:
[0107]在所述窗口 Wiz [piz_Az,piz+Bz]中選擇F個字節,將所述F個字節反復利用H次,共獲得F*H個字節,其中每個字節由8位組成,記為a。,表示所述F*H個字節中第m個
aUl 氣2 … 氣8
字節的第I到第8位,所述F*H個字節對應的位可以表示為:,α:2Ix ,當an,n = I時,Vamjn = 1,當= O時,Vam;n = _1,其中a"表示中的任一個,所述F*H個字節對應的位按照am,n與Vam,n的轉換關系得到矩陣\,所述矩陣Va表示為:
(VVV λ
ν α?αV Cih2ν al,8
K:J VT T Κ:'8 ,從服務正態分布的隨機數中選擇F*H*8個隨機數組成矩
VV...ν
Vα¥*ΗΛ v aF*H2v aF*HS J
(h h h λ
iiI5I η\,2 … "1,8
陣R,所述矩陣R表示為:1 亍 Y ;,H ,將所述矩陣Va的第m行與所述矩陣
h h h
I2 …nF*U ^ J
R的第m行的隨機數相乘,然后永和付到一個值,具體表示為Sam = Vam;^hnij!+Vanij2*hm;2+...+Vamj8^hnij8,同理,獲得Sal、Sa2…到SaFW,統計Sal、Sa2…到SaM中滿足大于O的值的個數K,當K為偶數,則所述窗口 Wiz [piz-Az,piz+Bz]中至少部分數據滿足所述預定條件Cz。
[0108]第八方面,本發明實施例提供了一種計算機可讀存儲介質,所述計算機可讀存儲介質用于存儲可執行指令,服務器執行所述可執行指令以查找數據流分割點,在所述服務器上預設有規則,所述規則為:為潛在分割點k確定M個窗口 Wx[k-Ax,k+Bj和窗口Wx[k-Ax, k+Bj對應的預定條件Cx,其中,X為I到M連續的自然數,M彡2,Ax和Bx為整數;當所述服務器執行所述可執行指令,以執行以下步驟:
[0109]a)依據所述規則為當前潛在分割點Iii確定對應的窗口 WJk1-Az, k^Bj,i和z為整數,并且KzSM;
[0110]b)判斷所述窗口 WJk1-Az, ki+Bz]中至少部分數據是否滿足預定條件Cz ;
[0111]當所述窗口WJk1-Az, VBz]中至少部分數據不滿足所述預定條件Cz,從所述當前潛在分割點h沿所述數據流分割點查找方向跳躍N個數據流分割點最小查找單位U,N*U不大于Il Bz Il +maxx( Il Ax || ),獲得新的潛在分割點,執行步驟a);
[0112]c)當所述當前潛在分割點Iii的M個窗口中的每一個窗口 WJk1-Ax, VBJ中至少部分數據滿足預定條件Cx,則所述當前潛在分割點Ici為數據流分割點。
[0113]結合第八方面,第一種可能的實現方式中,所述規則還包括:至少兩個窗口Wie Lk1-Ae, VBe]與 WifLk1-Af, VBf],滿足條件:I Ae+Be | = | Af+Bf |, Ce = Cfo
[0114]結合第八方面的第一種可能的實現方式,第二種可能的實現方式中,所述規則還包括:K和Af為正整數。
[0115]結合第八方面的第一種可能的實現方式或第二種可能的實現方式,在第三種可能的實現方式中,所述規則還包括=Ae-1 = Af, %- + 1= Β.丨?丨 /
[0116]結合第八方面,或第八方面第一到第三任一可能的實現方式,第四種可能的實現方式中,所述服務器判斷所述窗口 Wiz[k1-Az,ki+Bj中至少部分數據是否滿足所述預定條件Cz,具體包括:
[0117]使用隨機函數判斷所述窗口 Wiz[k1-Az,h+Bj中至少部分數據是否滿足所述預定條件Cz。
[0118]結合第八方面的第四種可能的實現方式,第五種可能的實現方式中,所述服務器使用隨機函數判斷所述窗口 WiJk1-AzAfBz]中至少部分數據是否滿足所述預定條件Cz,具體為所述服務器使用hash函數判斷所述窗口 WJk1-Az, h+Bj中至少部分數據是否滿足所述預定條件Cz。
[0119]結合第八方面,或第八方面第一到第五任一可能的實現方式,第六種可能的實現方式中,當所述窗口 WJk1-Az, VBz]中至少部分數據不滿足所述預定條件Cz,從所述當前潛在分割點h沿所述數據流分割點查找方向跳躍N個數據流分割點最小查找單位U,獲得所述新的潛在分割點,根據所述規則,為所述新的潛在分割點確定的窗口 Uk1-A。,h+B。]的左邊界與所述窗口 Wiz[ki_Az,h+Bj的右邊界重合或者為所述新的潛在分割點確定的所述窗口 WiJH ki+B。]的左邊界位于所述窗口 Wiz[H I^+BJ范圍之內;其中,為所述新的潛在分割點確定的所述窗口 WiJk1-Ac^ h+B。]是根據所述規則,為所述新的潛在分割點確定的M個窗口按照數據流查找方向獲得的序列中排序第一的窗口。
[0120]結合第八方面的第四種可能的實現方式,第七種可能的實現方式中,使用隨機函數判斷所述窗口 Wiz[k1-Az,ki+Bj中至少部分數據是否滿足所述預定條件Cz,具體包括:
[0121]在所述窗口 WiJk1-AzAfBz]中選擇F個字節,將所述F個字節反復利用H次,共獲得F*H個字節,其中每個字節由8位組成,記為a^,,表示所述F*H個字節中第m個
aU aU ".01,8
字節的第I到第8位,所述f*h個字節對應的位可以表示為:七丨ar,,
V*** aFieH^ j
當 an,n = I 時,Vamjn = 1,當 Bni,n = O 時,Vam;n = -1,其中 a"表示中的任一個,
所述F*H個字節對應的位按照am,n與Vam,n的轉換關系得到矩陣所述矩陣Va表示為:
^ Ku Ku …Cu、
Va:A VT 7 Va:'& ,從服務正態分布的隨機數中選擇F*H*8個隨機數組成矩
VV...V
aF*丑,I v aFmav aF*H^ J
f γ.1.1, \
Ul,l 氣2 … 氣8
陣R,所述矩陣R表示為:卜1 卜 T h?,將所述矩陣Va的第m行與所述矩陣
Λ ^F*H,2 ■.■ ^1F* H? j
R的第m行的隨機數相乘,然后求和得到一個值,具體表示為Sam =…
+Vamj8^hnij8,同理,獲得Sal、Sa2…到SaFW,統計Sal、Sa2…到SaM中滿足大于O的值的個數K,當K為偶數,則所述窗口 WiJk1-Az, k.+Bj中至少部分數據滿足所述預定條件Cz。
[0122]本發明實施例中通過判斷M個窗口中某一個窗口中至少部分數據是否滿足預定條件,來查找數據流分割點,當某一個窗口中至少部分數據不滿足預定條件,則跳過N*U個長度,獲得下一個潛在分割點,提高了數據流分割點查找效率。
【專利附圖】
【附圖說明】
[0123]圖1為本發明實施例一種應用場景示意圖;
[0124]圖2為數據流分割點示意圖;
[0125]圖3為查找數據流分割點示意圖;
[0126]圖4為本發明實施例方法示意圖;
[0127]圖5和圖6為查找數據流分割點實施方式示意圖;
[0128]圖7和圖8為查找數據流分割點實施方式示意圖;
[0129]圖9和圖10為找數據流分割點實施方式示意圖;
[0130]圖11和圖12和圖13為找數據流分割點實施方式示意圖;
[0131]圖14和圖15為找數據流分割點實施方式示意圖;
[0132]圖16和圖17為判斷窗口中至少部分數據是否滿足預定條件示意圖;
[0133]圖18為去重服務器結構圖;
[0134]圖19為去重服務器結構圖;
[0135]圖20為本發明實施例方法示意圖;
[0136]圖21和圖22為查找數據流分割點實施方式示意圖;
[0137]圖23和圖24為查找數據流分割點實施方式示意圖;
[0138]圖25和圖26為找數據流分割點實施方式示意圖;
[0139]圖27和圖28和圖29為找數據流分割點實施方式示意圖;
[0140]圖30和圖31為找數據流分割點實施方式示意圖;
[0141]圖32和圖33為判斷窗口中至少部分數據是否滿足預定條件示意圖。
具體實施例
[0142]隨著存儲技術的不斷進步,數據產生量也在不斷增加,大量的數據對存儲容量提出了最高的要求。存儲容量增加的同時,也增加了 IT設備采購成本,為了緩解數據量與存儲容量之間的需求矛盾,節約IT設備采購成本,在數據存儲領域引入了重復數據刪除技術。
[0143]本發明實施例一種使用場景為數據備份場景。數據備份是為防止各種原因導致的數據丟失,通過備份服務器將數據備份到其他存儲介質的過程。如圖1所示的數據備份系統架構。數據備份系統包括客戶端(1laUOlb…101η)、備份服務器102、重復數據刪除服務器(簡稱去重服務器或重刪服務器)103和存儲設備(104a、104b…104η)。其中客戶端(1laUOlb…1ln)可以為應用服務器、工作站等;備份服務器102用于備份客戶端生成的數據;去重服務器103用于執行備份數據的重復數據刪除任務;存儲設備(104a、104lr..104η)作為存儲重復數據刪除后的數據的存儲介質,可以為磁盤陣列、磁帶庫等存儲介質。客戶端(101a、1lb…101η)、備份服務器102、重復數據刪除服務器103和存儲設備(104a、104b…104η)可以通過交換機、局域網、互聯網、光纖等方式連接,上述設備可以位于同一地點,也可以位于不同地點。備份服務器102、重刪服務器103、存儲設備(104a、104b...104η)可以為獨立的物理設備,或者在具體實現中物理上集成為一體,或者備份服務器102與重刪服務器103集成為一體,或者重刪服務器103與存儲設備(104a、104b…104η)集成為一體等。
[0144]去重服務器103對備份數據的數據流執行重復數據刪除操作,一般包括以下步驟:
[0145]I)數據流分割點查找:根據特定算法在數據流中查找數據流分割點;
[0146]2)根據查找到的數據流分割點劃分數據塊;
[0147]3)計算數據塊的特征值:計算數據塊的特征值作為標識該數據塊的特征;將計算得到的特征值添加到該數據流對應的文件的數據塊的特征列表中;一般利用SHA-1或MD5算法計算數據塊的特征值;
[0148]4)相同數據塊檢測:將計算得到的數據塊的特征值與數據塊特征列表中已存在的特征值進行比對以確定是否存在相同數據塊;
[0149]5)刪除重復數據塊:通過相同數據塊檢測,如果發現數據塊特征列表中存在與該數據塊相同的特征值,則不需要再存儲該數據塊或者根據備份策略確定的重復數據塊存儲數量決定是否存儲該數據塊。
[0150]通過去重服務器103對備份數據的數據流執行重復數據刪除操作的步驟可知,數據流分割點查找作為重復數據刪除操作的關鍵步驟,直接決定了重復數據刪除的性能。
[0151 ] 本發明實施例中,去重服務器103接收備份服務器102發送的備份文件,對該文件執行重復數據刪除處理。通常待處理備份文件在去重服務器103中以數據流形式呈現,去重服務器103查找數據流中的分割點時,通常要確定數據流分割點最小查找單位,具體如圖2所示,如潛在分割點Ic1位于序號分別為I和2的連續兩個數據流分割點最小查找單位之間,潛在分割點是指需要進行判斷是否可以作為數據流分割點的點;當點h為一個數據流分割點,數據流分割點查找方向如圖2中箭頭所示,查找下一個潛在分割點為k7,即位于序號分別為7和8的連續兩個數據流分割點最小查找單位之間,當潛在分割點k7為數據流分割點,則相鄰的兩個數據流分割點匕木之間的數據為I個數據塊。數據流分割點最小查找單位具體可以根據實際需要確定,這里以I個字節(Byte)為例,即序號為1、2、7和8的數據流分割點最小查找單位大小均為I個字節。如圖2所示的數據流分割點查找方向通常表示由文件頭向文件尾方向查找,或者由文件尾向文件頭方向,本實施例中以從文件頭向文件尾方向查找為例。
[0152]在重復數據刪除場景,通常數據塊越小,重復數據刪除率越高,越容易查找到重復數據塊,但是由此生成的元數據數量越大,而且數據塊小到一定程度之后,重復數據刪除率就不會增加了,但是元數據數量卻會急劇增加。因此,必須控制數據塊大小,實際應用中,通常會設定數據塊的最小值,例如4KB(4096個字節),同時考慮到重復數據刪除率,也會設定數據塊的最大值,即數據塊大小不能超過最大值,例如12KB (12288個字節)。一種具體實現方式如圖3所示,去重服務器103在沿著箭頭所示方向查找數據流分割點,ka為當前查找到的數據流分割點,從ka向數據流分割點查找方向查找下一個潛在分割點,為滿足最小數據塊要求,通常會從數據流分割點開始沿著數據流分割點查找方向跳過最小數據塊大小,從最小數據塊結束位置開始查找,也就是將最小數據塊結束位置作為下一個潛在分割點k”在本發明實施例中,可以先從ka點沿數據流分割點查找方向跳躍最小數據塊4KB,即4*1024 = 4096字節。從ka點沿數據流分割點查找方向跳躍4096個字節,在第4096個字節的結束位置獲得點ki;作為潛在分割點,例如Iii位于序號分別為4096和4097的連續兩個數據流分割點最小查找單位之間。仍然以圖3為例,匕為當前查找到的數據流分割點,沿如圖3所示方向查找下一個數據流分割點,如果超過數據塊最大值仍然沒有找到下一個數據流分割點,則在從匕點開始向數據流分割點查找方向達到數據塊最大值的點匕作為下一個數據流分割點,進行強制分割。
[0153]本發明實施例提供一種基于去重服務器查找數據流分割點的方法,如圖4所示,包括:
[0154]在去重服務器103上預設有規則,所述規則為:為潛在分割點k確定M個點px、點Px對應的窗口 Wx[Px-Ax,PX+BJ和窗口 Wx[Px-Ax,PX+BJ對應的預定條件Cx,其中,x為I到M連續的自然數,M > 2,Ax和Bx為整數;其中,px與潛在分割點k之間距離dx個數據流分割點最小查找單位,數據流分割點最小查找單位以U表示,本實施例中U= I個字節,。在圖3所示的實現方式中,關于M的取值,其中一種實現方式,M*U取值不大于預設的兩個相鄰的數據流分割點之間的最大距離,即預設的數據塊最大長度。判斷點Pz對應的窗口 Wz[pz-Az,PZ+BJ中至少部分數據是否滿足預定條件Cz,其中,z為整數,I ^ z ^ M, (pz-Az)與(pz+Bz)分別表示窗口 Wz的兩個邊界。當判斷任意一個點Pz的窗口 Wz[pz-Az, pz+Bj中至少部分數據不滿足預定條件Cz,則從不滿足預定條件的窗口 Wz[pz-Az,pz+Bz]對應的點pz沿數據流分割點查找方向跳躍N個字節,N彡Il Bz Il +maxx( Il Ax Il + Il (k-px) Il )。其中,Il (k-px) Il表示M個點px中任一個點與潛在分割點k之間的距離,maxx( Il Ax Il + Il (k_px) II )表示M個點Px中任一個點與潛在分割點k之間的距離及該點對應的Ax的絕對值之和的最大值;Il Bz Il表示Wz[pz-Az,pz+Bz]中Bz的絕對值,將在下面實施例中具體介紹N取值的原理。當判斷M個窗口中的每一個窗口 Wx [px-Ax,px+Bx]中至少部分數據滿足預定條件Cx,則潛在分割點k為數據流分割點。
[0155]具體的,對當前潛在分割點ki;依據所述規則,執行以下步驟:
[0156]步驟401:依據所述規則為當前潛在分割點Iii確定點piz及所述點Piz對應的窗口WiJpiz-Az, piz+Bz],i 和 z 為整數,并且 I 彡 z 彡 M ;
[0157]步驟402:判斷所述窗口 Wiz [piz-Az,piz+Bj中至少部分數據是否滿足預定條件Cz ;
[0158]當所述窗口Wiz[piz_Az,piz+Bz]中至少部分數據不滿足所述預定條件Cz,從所述點P i z沿所述數據流分割點查找方向跳躍N個數據流分割點最小查找單位U,N* U不大于Il Bz Il +maxx( Il Ax Il + Il (Ic1-Pix) Il ),獲得新的潛在分割點,執行步驟401 ;
[0159]當所述當前潛在分割點Ici的M個窗口中的每一個窗口 Wix[pix-Ax,pix+Bx]中至少部分數據滿足預定條件Cx,則所述當前潛在分割點Ici為數據流分割點。
[0160]進一步地,所述規則還包括:至少兩個點Pe和pf,滿足條件K = Af, Be = Bf, Ce =Cf;
[0161]所述規則還包括:所述至少兩個點?6和Pf,相對于所述潛在分割點k,在所述數據流分割點查找反方向上。
[0162]所述規則還包括:所述至少兩個點Pe和Pf之間的距離為I個U。
[0163]判斷所述窗口 Wiz[piz_Az,piz+Bz]中至少部分數據是否滿足所述預定條件Cz,具體包括:
[0164]使用隨機函數判斷所述窗口 Wiz[piz_Az,piz+Bj中至少部分數據是否滿足所述預定條件Cz。
[0165]所述使用隨機函數判斷所述窗口 Wiz[piz_Az,piz+Bj中至少部分數據是否滿足所述預定條件Cz,具體為使用hash函數判斷所述窗口 Wiz [piz-Az,piz+Bz]中至少部分數據是否滿足所述預定條件Cz。
[0166]當所述窗口Wiz [Piz-Az,piz+Bz]中至少部分數據不滿足所述預定條件Cz,從所述點Piz沿所述數據流分割點查找方向跳躍N個數據流分割點最小查找單位U,獲得所述新的潛在分割點,根據所述規則,為所述新的潛在分割點確定的點Pi。對應的窗口ffic[pic-Ac,pic+Bc]的左邊界與所述窗口 Wiz[piz-Az,piz+Bz]的右邊界重合或者為所述新的潛在分割點確定的所述點Pic;對應的所述窗口 WiJpicH^piJBJ的左邊界位于所述窗口Wiz[piz-Az, piz+Bz]范圍之內;其中,為所述新的潛在分割點確定的所述點Pi。是根據所述規貝U,為所述新的潛在分割點確定的M個點按照數據流查找方向獲得的序列中排序第一的點。
[0167]本發明實施例中通過判斷M個窗口中某一個窗口中至少部分數據是否滿足預定條件,來查找數據流分割點,當某一個窗口中至少部分數據不滿足預定條件,則跳過N*U個長度,其中,N*U不大于Il Bz Il +maxx( Il Ax Il + Il (Ic1-Pix) Il ),獲得下一個潛在分割點,提高了數據流分割點查找效率。
[0168]在重復數據刪除過程中,為保證數據塊大小均勻,會考慮平均數據塊(也稱為平均分塊)大小,即在滿足最小數據塊大小和最大數據塊大小限定的同時,會確定平均數據塊大小,以保證獲得的數據塊大小均勻。點Px個數M與點px對應的窗口 Wx[px-Ax,px+Bx]中至少部分數據滿足預定條件Cx的概率,這兩個因素決定了找到數據流分割點的概率(以P (η)表示)。前者影響跳躍的長度,后者影響跳躍的概率,二者共同影響平均分塊大小。一般而言,在平均分塊大小固定時,點Px個數M增加,則單個點ρχ對應的窗口 Wx [ρχ-Αχ,ρχ+Βχ]中至少部分數據滿足預定條件Cx的概率也增加,例如在去重服務器103上預設的規則為:為潛在分割點k確定11個點px,X分別為I到11連續的自然數,11個點中任一個點Px對應的窗口 Wx[px-Ax,px+Bx]中至少部分數據滿足預定條件Cx的概率為1/2。而在去重服務器103上預設的另一組規則為:為潛在分割點k選擇的24個點px,X分別為I到24連續的自然數,24個點中任一個點px對應的窗口 Wx [px-Ax,px+Bx]中至少部分數據滿足預定條件Cx的概率3/4。具體窗口 Wx[px-Ax,px+Bx]中至少部分數據滿足預定條件Cx的概率設定可參見判斷窗口 Wx[px-Ax,px+Bx]中至少部分數據是否滿足預定條件Cx部分的描述。Apx個數M與點px對應的窗口 Wx [px-Ax,px+Bx]中至少部分數據滿足預定條件Cx的概率這兩個因素決定P(n),P(n)表示:從數據流起始位置/上一數據流分割點查找η個數據流分割點最小查找單位后沒找到數據流分割點的概率。關于這兩個因素決定Ρ(η)的計算過程,實際上是一個多步長Fibonacci數列,后面將具體描述。得到P (η)后,1_Ρ (η)即為數據流分割點的分布函數,(1-Ρ(η))-(1-Ρ(η-1)) = P(η_1)-P(η),即為在第η個點找到數據流分割點的概率,也就是數據流分割點的密度函數,根據數據流分割點的密度函數就可以
12*1024
積分Σ1)-Ρ(?)),從而求得數據流分割點的期望長度,即平均分塊大小,其中,
/3:4*1024
4*1024(字節)表示最小數據塊長度,12*1024(字節)表示最大數據塊長度。
[0169]如圖3所示的數據流分割點查找的基礎上,在圖5所示的實施方式中,在去重服務器103上預設有規則,所述規則為:為潛在分割點k確定11個點px、點px對應的窗口Wx[px-Ax, px+Bx](簡稱窗口 Wx)和窗口 Wx[px-Ax,px+Bx]對應的預定條件 Cx,其中,A1 = A2 =A3 = A4 = A5 = A6 = A7 = A8 = A9 = A10 = A11 = 169,B1 = B2 = B3 = B4 = B5 = B6 = B7 =Bs = B9 = B10 = B11 = O,并且 C1 = C2 = C3 = C4 = C5 = C6 = C7 = C8 = C9 = C10 = Cn。其中,點Px與潛在分割點k之間距離dx個字節,具體的,點P1與潛在分割點k之間距離O個字節,點P2與潛在分割點k之間距離I個字節,點p3與潛在分割點k之間距離2個字節,點P4與潛在分割點k之間距離3個字節,點p5與潛在分割點k之間距離4個字節,點p6與潛在分割點k之間距離5個字節,點p7與潛在分割點k之間距離6個字節,點p8與潛在分害I]點k之間距離7個字節,點p9與潛在分割點k之間距離8個字節,點Pltl與潛在分割點k之間距離9個字節,點P11與潛在分割點k之間距離10個字節,并且點p2、p3、P4> p5、p6、p7、p8、p9、P10和pn相對于潛在分割點k均位于數據流分割點查找反方向。ka為數據流分割點,圖5中所示數據流分割點查找方向為從左向右,從數據流分割點匕跳過最小數據塊4KB后,最小數據塊4KB結束位置作為下一個潛在分割點ki;為潛在分割點Ici確定點pix,在本實施例中,根據在去重服務器103上預設的規則,X分別為I到11連續的自然數。在圖5所示的實施方式中,為潛在分割點ki確定的點為11個,分別為Pn、Pi2、Pi3、Pm、Pi5、Pi6、
Pi7、Pi8、Pi9、PilO 和 Pill? 點 Pil > Pi2、Pi3、Pi4、Pi5、Pi6、Pi7、Pi8、Pi9、PilO 和 Pill 對應白勺 & 口分力ll
為 Wil [ρη-169, ρη]、Wi2 [pi2-169, pi2]、Wi3 [pi3_169, pi3]、Wi4 [pi4_169, pi4]、Wi5 [pi5_169, pi5]、Wi6[pi6-169, pi6]、ffi7[pi7-169, pi7]、Wi8[pig-169, pi8]、ffi9[pi9-169, pi9]、Wil0[pil0-169, pil0]和Will[pin-169, PilJ0 上述窗口分別簡稱為 Wn、Wi2、Wi3、Wi4、Wi5、Wi6、Wi7、Wi8、Wi9、WilQ 和 Wm。其中,點Pix與潛在分割點h之間距離dx個字節,具體的,Pil與Ici間距O個字節、pi2與h間距I個字節、Pi3與h間距2個字節、pi4與Ici間距3個字節、pi5與Ici間距4個字節、pi6與h間距5個字節、pi7與Ici間距6個字節、pi8與Ici間距7個字節、pi9與Ici間距8個字節、
PilO 與 kj 間距 9 個子 T1,PiH 與 kj 間距 10 個子 T1,并 J=L Pi2、Pi3、Pi4、Pi5、Pi6、Pi7、Pi8、Pi9、PilO
和Pill相對于潛在分割點ki均位于數據流分割點查找反方向。判斷wn[pn-169,Pil]中至少部分數據是否滿足預定條件C1、判斷Wi2 [pi2-169, pi2]中至少部分數據是否滿足預定條件C2、判斷Wi3[pi3-169,pi3]中至少部分數據是否滿足預定條件C3、判斷Wi4[pi4-169,pi4]中至少部分數據是否滿足預定條件C4、判斷Wi5[pi5-169,pi5]中至少部分數據是否滿足預定條件C5、判斷Wi6[pi6-169,pi6]中至少部分數據是否滿足預定條件C6、判斷Wi7[Pi「169,pi7]中至少部分數據是否滿足預定條件C7、判斷Wi8[pi8-169,pi8]中至少部分數據是否滿足預定條件C8、判斷Wi9[pi9-169,pi9]中至少部分數據是否滿足預定條件C9、判斷Wiltl[pilQ-169,pil0]中至少部分數據是否滿足預定條件Cltl和判斷Wm[pin-169,Pill]中至少部分數據是否滿足預定條件Cn。當判斷窗口 Wil中至少部分數據滿足預定條件仏、窗口 Wi2中至少部分數據滿足預定條件C2、窗口 Wi3中至少部分數據滿足預定條件C3、窗口 Wi4中至少部分數據滿足預定條件C4、窗口 Wi5中至少部分數據滿足預定條件C5、窗口 Wi6中至少部分數據滿足預定條件C6、窗口 Wi7中至少部分數據滿足預定條件C7、窗口 Wi8中至少部分數據滿足預定條件C8、窗口 Wi9中至少部分數據滿足預定條件C9、窗口 Wiltl中至少部分數據滿足預定條件Cltl和窗口Wm中至少部分數據滿足預定條件C11時,則當前潛在分割點ki為數據流分割點。當11個窗口中任一個窗口中至少部分數據不滿足對應的預定條件時,如圖6所示,Wi5[pi5-169,Pi5]中至少部分數據不滿足對應的預定條件C5,則從點pi5沿著數據流分割點查找方向跳躍N個字節,其中N個字節不大于Il B5 Il+maxx(|| Ax Il+ 11 (k-p^) Il ),在圖6所示的實施方式中,跳躍N個字節不大于179字節,在本實施例中,N= 11,得到下一個潛在分割點,為與潛在分割點h區別,這里將新的潛在分割點表示為h。根據圖5所示的實施方式中在去重服務器103上預設的規則,為潛在分割點kj確定的點為11個,分別為Pp Pj2> Pj3> Pj4> Pj5> Pj6>
Pj7、Pj8、Pj9、PjlO 和 Pjll,確定點 Pjl、Pj2、Pj3、Pj4、Pj5、Pj6、Pj7、Pj8、Pj9、PjlO 和 Pjll 對應的 1? 口分別為 ^1^-169, Pj1] >ffJ2 [pJ2-169, Pj2]、Wj3[Pj3-169,pJ3]、Wj4[Pj4-169,pJ4] >ffJ5 [pJ5-169, pJ5]、Wj6 [pJ6-169, Pj6]、ffJ7[pJ7-169, pJ7]、Wj8 [pJ8-169, pJ8]、ffJ9[pJ9-169, pJ9]、Wj10[Pj10-169,pJ10]和WjntPju-1eg, Pj11]。其中,Pjx與潛在分割點kj之間距離dx個字節,具體的,Pj1與kj間距O個字節、Pj2與kj間距I個字節、pj3與kj間距2個字節、pj4與kj間距3個字節、pj5與kj間距4個字節、pj6與kj間距5個字節、pj7與kj間距6個字節、pj8與kj間距7個字節、pj9與&間距8個字節、Pjici與kj間距9個字節,Pj11與kj間距10個字節,并且Pm、Pj2、Pj3> Pj4> Pj5>Pj6> Pj7> Pj8> Pj9> Pj1和Pjii相對于潛在分割點kj均位于數據流分割點查找反方向。如圖6所示實施方式中,當為潛在分割點kj確定的第11個窗口 Wjn[pjn-169,Pjll],在保證潛在分割點ki與潛在分割點h之間的范圍都在判斷范圍之內,則在本實施方式中,必須保證窗口Wjll [pjn-169, Pjll]的左邊界與 Wi5 [pi5-169, pi5]的右邊界 pi5 重合或者位于 Wi5 [pi5_169,pi5]范圍之內,其中,所述潛在分割點h確定的點Pm是根據所述規則,為所述潛在分割點kj確定的M個點按照數據流查找方向獲得的序列中排序第一的點。因此,在這一限定內,當Wi5[pi5-169,pi5]中至少部分數據不滿足預定條件C5,從pi5沿著數據流分割點查找方向跳躍的距離為不大于Il B5 Il+maxx(|| Ax Il+ 11 (k「pix) II),其中,M= 11,11*U不大于maxx( Il Ax Il + Il (Ic1-Pix) Il ),因此,從pi5沿著數據流分割點查找方向跳躍的距離為不大于179。判斷WjJpjl-1eg, PjJ中至少部分數據是否滿足預定條件C1、判斷Wj2[pj2-169,pJ2]中至少部分數據是否滿足預定條件C2、判斷W?[Pp-169,pJ3]中至少部分數據是否滿足預定條件C3、判斷Wj4[pj4-169,pJ4]中至少部分數據是否滿足預定條件C4、判斷Wj5[pj5-169,pJ5]中至少部分數據是否滿足預定條件C5、判斷W#[p^rl69,pJ6]中至少部分數據是否滿足預定條件C6、判斷Wj7[pj7-169,pJ7]中至少部分數據是否滿足預定條件C7、判斷Wj8[pj8-169,pJ8]中至少部分數據是否滿足預定條件C8、判斷1#[?#-169,pJ9]中至少部分數據是否滿足預定條件C9、判斷Wjltl [pjl(l-169,pJ10]中至少部分數據是否滿足預定條件Cltl和判斷Wjll [pjn-169, pjn]中至少部分數據是否滿足預定條件Cn。當然在本發明實施例中,判斷潛在分割點ka是否為數據流分割點時也遵循該規則,具體實現不再描述,可以參照判斷潛在分割點h的描述。當判斷窗口 Wm中至少部分數據滿足預定條件C1、窗口中至少部分數據滿足預定條件C2、窗口 Wp中至少部分數據滿足預定條件C3、窗口 W#中至少部分數據滿足預定條件C4、窗口 Wj5中至少部分數據滿足預定條件C5、窗口中至少部分數據滿足預定條件C6、窗口 Wp中至少部分數據滿足預定條件C7、窗口 W#中至少部分數據滿足預定條件C8、窗口 Wi3中至少部分數據滿足預定條件C9、窗口中至少部分數據滿足預定條件Cltl和窗口 Ww中至少部分數據滿足預定條件C11時,則當前潛在分割點h為數據流分割點,h與匕之間的數據構成I個數據塊,同時按照與匕相同的方式跳過最小分塊大小4KB,獲得下一個潛在分割點,并按照在去重服務器103上預設的規則,判斷下一個潛在分割點是否為數據流分割點。當判斷潛在分割點h不是數據流分割點時,按照與Ici相同的方式跳躍11個字節獲得下一個潛在分割點,并按照在去重服務器103上預設的規則及上述方法判斷下一個潛在分割點是否為數據流分割點。當超過設定的最大數據塊仍然沒有找到數據流分割點時,則從最大數據塊的結束位置作為強制分割點。
[0170]在圖5所示的實施方式中,根據在去重服務器103上預設的規則,從判斷Wn[pn-169, pn]中至少部分數據是否滿足預定條件C1開始,當判斷Wn[pn-169,ρη]中至少部分數據滿足預定條件C1、判斷Wi2[pi2-169,pi2]中至少部分數據滿足預定條件C2、判斷Wi3[pi3-169, pi3]中至少部分數據滿足預定條件C3和判斷Wi4[pi4-169,pi4]中至少部分數據滿足預定條件C4,判斷Wi5 [pi5-169, pi5]中至少部分數據不滿足預定條件C5時,從點pi5沿著數據流分割點查找方向跳躍10個字節,在第10個字節的結束位置獲得新的潛在分割點,為與其他潛在分割點區別,這里表示為kg,按照在去重服務器103上預設的規則,為潛在分割點kg確定11個點pgx, X分別為I到11連續的自然數,分別為Pgl、P-、Pu、Pm、Pg5、Pg6、Pg^Pg8> Pg9> Pg1 和 Pgii,確定點 Pgl、Pg2 > Pg3 > Pg4、Pg5 > Pg6> Pg7 > Pg8> Pg9> PglO 和 Pgii 對應的窗口分別為 Wgl [pgl-169, Pgl]、Wg2 [pg2-169, pg2]、Wg3 [pg3_169, pg3]、Wg4 [pg4_169, pg4]、Wg5 [pg5_169, pg5]、Wg6[pg6-169, pg6]、ffg7[pg7-169, pg7]、ffg8[pg8-169, pg8]、ffg9[pg9-169, pg9]、Wgl0[pgl0-169, pgl0]和Wgll[pgll-169, pgll]。其中,pgx與潛在分割點kg之間距離dx個字節,具體的,Pgl與kg間距O個字節、Pg2與kg間距I個字節、pg3與kg間距2個字節、pg4與kg間距3個字節、pg5與kg間距4個字節、pg6與kg間距5個字節、pg7與kg間距6個字節、pg8與kg間距7個字節、pg9與kg間距8個字節、Pgltl與kg間距9個字節,Pgll與kg間距10個字節,并且pg2、pg3、pg4、pg5、Pg6> Pg7> Pg8> Pg9> Pgici和Pgii相對于潛在分割點kg均位于數據流分割點查找反方向。判斷Wgl [pgl-169, pgl]中至少部分數據是否滿足預定條件C1、判斷Wg2 [pg2-169, pg2]中至少部分數據是否滿足預定條件C2、判斷Wg3[pg3-169,pg3]中至少部分數據是否滿足預定條件C3、判斷Wg4[pg4_169, pg4]中至少部分數據是否滿足預定條件C4、判斷Wg5[pg5-169, pg5]中至少部分數據是否滿足預定條件C5、判斷Wg6[pg6-169,pg6]中至少部分數據是否滿足預定條件C6、判斷Wg7 [pg7-169, pg7]中至少部分數據是否滿足預定條件C7、判斷Wg8[pg8-169, pg8]中至少部分數據是否滿足預定條件C8、判斷Wg9[pg9-169,pg9]中至少部分數據是否滿足預定條件C9、判斷ffgl0[pgl0-169, pgl0]中至少部分數據是否滿足預定條件Cltl和判斷Wgll [pgll-169,pgll]中至少部分數據是否滿足預定條件C11。因此,潛在分割點kg對應的點Pgll與潛在分割點Ici對應的點Pi5重合,并且點Pgll對應的窗口 Wgll[pgll-169,Pgll]與點pi5對應的窗口 Wi5[pi5-169,pi5]重合,并且C5 = C11,因此,對當潛在分割點ki;當判斷Wi5 [pi5-169, pi5]中至少部分數據不滿足預定條件C5時,從點pi5沿著數據流分割點查找方向跳躍10個字節,獲得的潛在分割點kg仍然不符合作為數據流分割點的條件。因此,如果從點Pi5沿著數據流分割點查找方向跳躍10個字節會存在重復計算,從點Pi5沿著數據流分割點查找方向跳躍11個字節可以減少重復計算,效率更高。因此提高了查找數據流分割點的速度。當預設規定中點Px對應的窗口 Wx[px-Ax,px+Bx]中至少部分數據滿足預定條件Cx的概率為1/2時,即是說以1/2的概率執行跳躍,每次最多可以跳躍179個字節。
[0171] 在本實施方式中,預定規則為:為潛在分割點k確定11個點px、點Px對應的窗口Wx[px-Ax, px+Bx]和窗口 Wx[px-Ax,px+Bx]對應的預定條件Cx,x分別為I到11連續的自然數,其中,點Px對應的窗口 Wx [px-Ax,px+Bx]中至少部分數據滿足預定條件的概率為1/2,通過這兩個因素可以計算 P (η)。并且 A1 = A2 = A3 = A4 = A5 = A6 = A7 = A8 = A9 = A10 = A11 =169, B1 = B2 = B3 = B4 = B5 = B6 = B7 = B8 = B9 = B10 = B11 = O,并且 C1 = C2 = C3 = C4=C5 = C6 = C7 = C8 = C9 = Cltl = C11,其中,ρχ與潛在分割點k之間距離dx個字節,具體的,P1與潛在分割點k之間距離O個字節,p2與k之間距離I個字節,P3與k之間距離2個字節,P4與k之間距離3個字節,p5與k之間距離4個字節,p6與k之間距離5個字節,p7與k之間距離6個字節,p8與k之間距離7個字節,p9與k之間距離8個字節,Pltl與k之間距離9個字節,P11與k之間距離10個字節,并且p2> p3、p4、p5、p6、p7、p8、p9、p10和pn相對于潛在分割點k均位于數據流分割點查找反方向。因此是否存在連續11個點對應窗口中的每一個窗口中至少部分數據均滿足預定條件Cx就決定潛在分割點k是否為數據流分割點。從數據流起始位置/上一數據流分割點跳躍最小分塊長度4096個字節后,向數據流分割點查找反方向回退10個字節,找到第4086個點,在該點處不存在數據流分割點,所以P (4086) = I,依次類推,P (4087) = 1,……P (4095) = I。在第4096個點處,即在最小分塊大小處,以(1/2)~11的概率這11個點對應的窗口中每一個窗口中至少部分數據滿足預定條件Cx,因此以(1/2) ~11的概率存在數據流分割點,以1-(1/2) ~11的概率不存在數據流分割點,所以 P(Il) = 1_(1/2)~11。
[0172]在第η個點處,可以分為12種情況來遞推P (η)。
[0173]
【權利要求】
1.一種基于服務器查找數據流分割點的方法,其特征在于: 在所述服務器上預設有規則,所述規則為:為潛在分割點k確定M個點Px、點Px對應的窗口 Wx [px-Ax,px+Bx]和窗口 Wx [px-Ax,px+Bx]對應的預定條件Cx,其中,x為I到M連續的自然數,M彡2,Ax和Bx為整數; 所述方法包括: a)依據所述規則為當前潛在分割點h確定點piz及所述點piz對應的窗口WiJpiz-Az, piz+Bz],i 和 z 為整數,并且 I 彡 z 彡 M ; b)判斷所述窗口Wiz[piz-Az,piz+Bz]中至少部分數據是否滿足預定條件Cz; 當所述窗口 Wiz[Piz_Az,piz+Bz]中至少部分數據不滿足所述預定條件Cz,從所述點P i z沿所述數據流分割點查找方向跳躍N個數據流分割點最小查找單位U,N* U不大于Il Bz Il +maxx( Il Ax || + || (Ic1-Pix) || ),獲得新的潛在分割點,執行步驟a); c)當所述當前潛在分割點1^的M個窗口中的每一個窗口Wix [pix-Ax,pix+Bx]中至少部分數據滿足預定條件Cx,則所述當前潛在分割點Ici為數據流分割點。
2.根據權利要求1所述的方法,其特征在于,所述規則還包括:至少兩個點Pe和pf,滿足條件 Ae = Af, Be = Bf, Ce = Cf。
3.根據權利要求2所述的方法,其特征在于,所述規則還包括:所述至少兩個點Pe和Pf,相對于所述潛在分割點k,在所述數據流分割點查找反方向上。
4.根據權利要求2或3所述的方法,其特征在于,所述規則還包括:所述至少兩個點Pe和Pf之間的距離為I個U。
5.根據權利要求1至4任一所述的方法,其特征在于,判斷所述窗口Wiz [piz_Az,piz+Bz]中至少部分數據是否滿足所述預定條件Cz,具體包括: 使用隨機函數判斷所述窗口 Wiz[piz-Az,piz+Bj中至少部分數據是否滿足所述預定條件Cz。
6.根據權利要求5所述的方法,其特征在于,所述使用隨機函數判斷所述窗口Wiz [piz_Az,piz+Bz]中至少部分數據是否滿足所述預定條件Cz,具體為使用hash函數判斷所述窗口 Wiz[piz-Az,piz+Bz]中至少部分數據是否滿足所述預定條件Cz。
7.根據權利要求1至6任一所述的方法,其特征在于,當所述窗口Wiz[Piz_Az,piz+Bz]中至少部分數據不滿足所述預定條件Cz,從所述點piz沿所述數據流分割點查找方向跳躍N個數據流分割點最小查找單位U,獲得所述新的潛在分割點,根據所述規則,為所述新的潛在分割點確定的點Pi。對應的窗口 Wic; [pic-Ac, pic+Bc]的左邊界與所述窗口Wiz[piz-Az,piz+Bz]的右邊界重合或者為所述新的潛在分割點確定的所述點Pi。對應的所述窗口 WiJpicH^piJBJ的左邊界位于所述窗口 Wiz[piz-Az,piz+Bz]范圍之內;其中,為所述新的潛在分割點確定的所述點Pi。是根據所述規則,為所述新的潛在分割點確定的M個點按照數據流查找方向獲得的序列中排序第一的點。
8.根據權利要求5所述的方法,其特征在于,使用隨機函數判斷所述窗口Wiz [piz-Az, piz+Bz]中至少部分數據是否滿足所述預定條件Cz,具體包括: 在所述窗口 Wiz[piz-Az,piz+Bz]中選擇F個字節,將所述F個字節反復利用H次,共獲得F*H個字節,其中每個字節由8位組成,記為amyam,8,表示所述F*H個字節中第m個
氣1 aU2 … 氣8 字節的第I到第8位,所述F*H個字節對應的位可以表示為:a'J yy ,KaF*H,l Ut H." aF*H,S j當an,n = I時,Vamjn = 1,當= O時,Vam;n = _1,其中a"表示中的任一個,所述F*H個字節對應的位按照am,n與Vam,n的轉換關系得到矩陣\,所述矩陣Va表示為:'Vakl 匕u …^、vT1 vT ;' vT ,從服務正態分布的隨機數中選擇F*H*8個隨機數組成矩VV...Vy α¥*Η,\ v aF*H2y aF*H^ J
'hu K2 …K,、陣R,所述矩陣R表示為:、klr ": h',,將所述矩陣Va的第m行與所述矩陣
h h h
\η?^ΗΛ flF*H.2 … nF*H,n JR的第m行的隨機數相乘,然后求和得到一個值,具體表示為Sam =…+Vamj8^hnij8,同理,獲得Sal、Sa2…到SaFW,統計Sal、Sa2…到SaM中滿足大于O的值的個數K,當K為偶數,則所述窗口 Wiz [piz-Az,piz+Bz]中至少部分數據滿足所述預定條件Cz。
9.一種基于服務器查找數據流分割點的方法,其特征在于, 在所述服務器上預設有規則,所述規則為:為潛在分割點k確定M個窗口 Wx[k-Ax,k+Bj和窗口 Wx [k-Ax, k+Bj對應的預定條件Cx,其中,X為I到M連續的自然數,M彡2,Ax和Bx為整數; 所述方法包括: a)依據所述規則為當前潛在分割點h確定對應的窗口WiJk1-Az, ki+Bj,i和z為整數,并且I彡z彡M ; b)判斷所述窗口WiJk1-Az, ki+Bj中至少部分數據是否滿足預定條件Cz ; 當所述窗口 WiJk1-AzAfBz]中至少部分數據不滿足所述預定條件Cz,從所述當前潛在分割點h沿所述數據流分割點查找方向跳躍N個數據流分割點最小查找單位U,N*U不大于Il Bz Il +maxx( Il Ax || ),獲得新的潛在分割點,執行步驟a); c)當所述當前潛在分割點h的M個窗口中的每一個窗口WiJk1-AykfBx]中至少部分數據滿足預定條件Cx,則所述當前潛在分割點Ici為數據流分割點。
10.根據權利要求9所述的方法,其特征在于,所述規則還包括:至少兩個窗口Wie Lk1-Ae, VBe]與 WifLk1-Af, VBf],滿足條件:I Ae+Be | = | Af+Bf |, Ce = Cfo
11.根據權利要求10所述的方法,其特征在于,所述規則還包括:κ和Af為正整數。
12.根據權利要求10或11所述的方法,其特征在于,所述規則還包括:Ae-l= Af, Be+1=Bf0
13.根據權利要求9至12任一所述的方法,其特征在于,判斷所述窗口Wiz Lk1-Az, k.+Bj中至少部分數據是否滿足所述預定條件Cz,具體包括: 使用隨機函數判斷所述窗口 WiJk1-AzAfBz]中至少部分數據是否滿足所述預定條件cz。
14.根據權利要求13所述的方法,其特征在于,所述使用隨機函數判斷所述Wiz Lk1-Az, k.+Bj中至少部分數據是否滿足所述預定條件Cz,具體為使用hash函數判斷所述WiJk1-Az, ki+Bz]中至少部分數據是否滿足所述預定條件Cz。
15.根據權利要求9至14任一所述的方法,其特征在于,當所述窗口WiJk1-Az, k.+Bj中至少部分數據不滿足所述預定條件Cz,從所述當前潛在分割點Ici沿所述數據流分割點查找方向跳躍N個數據流分割點最小查找單位U,獲得所述新的潛在分割點,根據所述規則,為所述新的潛在分割點確定的窗口 WiJH ki+B。]的左邊界與所述窗口 WiJHkfBz]的右邊界重合或者為所述新的潛在分割點確定的所述窗口 WiJk1-AdkdBJ的左邊界位于所述窗口 WizDi1-AukfBJ范圍之內;其中,為所述新的潛在分割點確定的所述窗口WicLk1-Ac, h+B。]是根據所述規則,為所述新的潛在分割點確定的M個窗口按照數據流查找方向獲得的序列中排序第一的窗口。
16.根據權利要求13所述的方法,其特征在于,使用隨機函數判斷所述窗口WiJk1-Az, ki+Bz]中至少部分數據是否滿足所述預定條件Cz,具體包括: 在所述窗口 WiJk1-AzAfBz]中選擇F個字節,將所述F個字節反復利用H次,共獲得F*H個字節,其中每個字節由8位組成,記為amyam,8,表示所述F*H個字節中第m個
aI,IflI,2...aIS字節的第I到第8位,所述F*H個字節對應的位可以表示為:''U ,aFlpH.! …J當 an,n = I 時,Vamjn = 1,當 Bni,n = O 時,Vam;n = -1,其中 a"表示中的任一個,所述F*H個字節對應的位按照am,n與Vam,n的轉換關系得到矩陣所述矩陣Va表示為:(VVV Λ y al,lν α\αV alSVfl VT 7 vT ,從服務正態分布的隨機數中選擇F*H*8個隨機數組成矩陣R,yKiF*H,l ^aF*H,2...^aFfHX /
(h h h \
uU rtI,2 ".η\?所述矩陣R表示為:? hT '; hT ,將所述矩陣Va的第m行與所述矩陣R的第
J1F-H 'I ^P* H,I...jm行的隨機數相乘,然后求和得到一個值,具體表示為Sani =同理,獲得Sal、Sa2…到SaFW,統計Sal、Sa2…到SaF*H中滿足大于O的值的個數K,當K為偶數,則所述窗口 WjUki+Bj中至少部分數據滿足所述預定條件Cz。
17.一種用于查找數據流分割點的服務器,其特征在于,所述服務器包括中央處理單元和主存儲器,所述中央處理單元與所述主存儲器通信,在所述服務器上預設有規則,所述規則為:為潛在分割點k確定M個點px、點px對應的窗口 Wx [px-Ax,px+Bx]和窗口Wx[px-Ax, px+Bx]對應的預定條件Cx,其中,X為I到M連續的自然數,M彡2,Ax和Bx為整數; 所述主存儲器用于存儲可執行指令,所述中央處理單元執行所述可執行指令,以執行以下步驟: a)依據所述規則為當前潛在分割點h確定點piz及所述點piz對應的窗口WiJpiz-Az, piz+Bz],i 和 z 為整數,并且 I 彡 z 彡 M ; b)判斷所述窗口Wiz[piz-Az,piz+Bz]中至少部分數據是否滿足預定條件Cz; 當所述窗口 Wiz[Piz_Az,piz+Bz]中至少部分數據不滿足所述預定條件Cz,從所述點P i z沿所述數據流分割點查找方向跳躍N個數據流分割點最小查找單位U,N* U不大于Il Bz Il +maxx( Il Ax || + || (Ic1-Pix) || ),獲得新的潛在分割點,執行步驟a); c)當所述當前潛在分割點1^的M個窗口中的每一個窗口Wix [pix-Ax,pix+Bx]中至少部分數據滿足預定條件Cx,則所述當前潛在分割點Ici為數據流分割點。
18.根據權利要求17所述服務器,其特征在于,所述規則還包括:至少兩個點Pe和Pf,滿足條件 Ae = Af, Be = Bf, Ce = Cf。
19.根據權利要求18所述服務器,其特征在于,所述規則還包括:所述至少兩個點&和Pf,相對于所述潛在分割點k,在所述數據流分割點查找反方向上。
20.根據權利要求18或19所述的服務器,其特征在于,所述規則還包括:所述至少兩個點Pe和Pf之間的距離為I個U。
21.根據權利要求17至20任一所述的服務器,其特征在于,所述中央處理單元具體用于使用隨機函數判斷所述窗口 Wiz[piz-Az,piz+Bz]中至少部分數據是否滿足所述預定條件Cz。
22.根據權利要求21所述的服務器,其特征在于,所述中央處理單元具體用于使用hash函數判斷所述窗口 Wiz [piz-Az,piz+Bj中至少部分數據是否滿足所述預定條件Cz。
23.根據權利要求17至22任一所述的服務器,其特征在于,當所述窗口WiJpiz-Az, piz+Bz]中至少部分數據不滿足所述預定條件Cz,從所述點piz沿所述數據流分割點查找方向跳躍N個數據流分割點最小查找單位U,獲得所述新的潛在分割點,根據所述規貝U,為所述新的潛在分割點確定的點Pi。對應的窗口 Wic;[pic;-A。,pic+Bc]的左邊界與所述窗口Wiz[piz-Az,piz+Bz]的右邊界重合或者為所述新的潛在分割點確定的所述點Pi。對應的所述窗口 WiJpicH^piJBJ的左邊界位于所述窗口 Wiz[piz-Az,piz+Bz]范圍之內;其中,為所述新的潛在分割點確定的所述點Pi。是根據所述規則,為所述新的潛在分割點確定的M個點按照數據流查找方向獲得的序列中排序第一的點。
24.根據權利要求21所述的服務器,其特征在于,所述中央處理單元使用隨機函數判斷所述窗口 Wiz[piz-Az,piz+Bz]中至少部分數據是否滿足所述預定條件Cz,具體包括: 在所述窗口 Wiz[piz-Az,piz+Bz]中選擇F個字節,將所述F個字節反復利用H次,共獲得F*H個字節,其中每個字節由8位組成,記為amyam,8,表示所述F*H個字節中第m個
U a\.2..氣8字節的第I到第8位,所述F*H個字節對應的位可以表示為:U.aT ": α/8 ,aFH …aFmfi j當 an,n = I 時,Vamjn = 1,當 Bni,n = O 時,Vam;n = -1,其中 a"表示中的任一個,所述F*H個字節對應的位按照am,n與Vam,n的轉換關系得到矩陣Va,所述矩陣Va表示為:(Ku Ku2 …。、Va:'{ VT: VT ,從服務正態分布的隨機數中選擇F*H*8個隨機數組成矩陣、I l.H,l ^aF*H,2...^aF*H,& y
h|..| h'.l … 力 1,8R,所述矩陣R表示為:h':' /?;'2 ";' 卜,將所述矩陣Va的第m行與所述矩陣R的第
Λ ^F*H,2...】lF*H,% Jm行的隨機數相乘,然后求和得到一個值,具體表示為Sani =同理,獲得Sal、Sa2…到SaFW,統計Sal、Sa2…到SaF*H中滿足大于O的值的個數K,當K為偶數,則所述窗口 Wiz[Piz-Az,piz+Bz]中至少部分數據滿足所述預定條件Cz。
25.一種用于查找數據流分割點的服務器,其特征在于,所述服務器包括中央處理單元和主存儲器,所述中央處理單元與所述主存儲器通信,在所述服務器上預設有規則,所述規則為:為潛在分割點k確定M個窗口 Wx[k-Ax,k+Bj和窗口 Wx[k-Ax,k+Bj對應的預定條件Cx,其中,X為I到M連續的自然數,M彡2,Ax和Bx為整數; 所述主存儲器用于存儲可執行指令,所述中央處理單元執行所述可執行指令,以執行以下步驟: a)依據所述規則為當前潛在分割點Ici確定對應的窗口WiJk1-Az, ki+Bj,i和z為整數,并且I彡z彡M ; b)判斷所述窗口WiJk1-Az, ki+Bj中至少部分數據是否滿足預定條件Cz ; 當所述窗口 WiJk1-AzAfBz]中至少部分數據不滿足所述預定條件Cz,從所述當前潛在分割點h沿所述數據流分割點查找方向跳躍N個數據流分割點最小查找單位U,N*U不大于Il Bz Il +maxx( Il Ax || ),獲得新的潛在分割點,執行步驟a); c)當所述當前潛在分割點h的M個窗口中的每一個窗口WiJk1-AykfBx]中至少部分數據滿足預定條件Cx,則所述當前潛在分割點Ici為數據流分割點。
26.根據權利要求25所述的服務器,其特征在于,所述規則還包括:至少兩個窗口Wie Lk1-Ae, VBe]與 WifLk1-Af, VBf],滿足條件:I Ae+Be | = | Af+Bf |, Ce = Cfo
27.根據權利要求26所述的服務器,其特征在于,為所述服務器預設規則,所述規則還包括:κ和Af為正整數。
28.根據權利要求26或27所述的服務器,其特征在于,所述規則還包括:Αε-1= Af,Be+1 = Bf。
29.根據權利要求25至28任一所述的服務器,其特征在于,所述中央處理單元具體用于使用隨機函數判斷所述窗口 Wiz [k1-Az,k.+Bj中至少部分數據是否滿足所述預定條件Cz。
30.根據權利要求29所述的服務器,其特征在于,所述中央處理單元具體用于使用hash函數判斷所述窗口 WiJk1-Az, k.+Bj中至少部分數據是否滿足所述預定條件Cz。
31.根據權利要求25至30任一所述的服務器,其特征在于,當所述窗口WiJk1-Az, ki+Bz]中至少部分數據不滿足所述預定條件Cz,從所述當前潛在分割點1^沿所述數據流分割點查找方向跳躍N個數據流分割點最小查找單位U,獲得所述新的潛在分割點,根據所述規則,為所述新的潛在分割點確定的窗口 WiJk1-LVBJ的左邊界與所述窗口 WiJk1-Az^fBJ的右邊界重合或者為所述新的潛在分割點確定的所述窗口WiJk1-Ac, ^+BJ的左邊界位于所述窗口 WiJk1-Az, I^+BJ范圍之內;其中,為所述新的潛在分割點確定的所述窗口 WiJk1-Ac^ k^Bj是根據所述規則,為所述新的潛在分割點確定的M個窗口按照數據流查找方向獲得的序列中排序第一的窗口。
32.根據權利要求29所述的服務器,其特征在于,所述中央處理單元使用隨機函數判斷所述窗口 Wiz[k1-Az,h+Bj中至少部分數據是否滿足所述預定條件Cz,具體包括: 在所述窗口 WiJk1-AzAfBz]中選擇F個字節,將所述F個字節反復利用H次,共獲得F*H個字節,其中每個字節由8位組成,記為amyam,8,表示所述F*H個字節中第m個
aU a\,2."氣8字節的第I到第8位,所述f*h個字節對應的位可以表示為:y iiV2y ,aF1^H2 …J當 an,n = I 時,Vamjn = 1,當 Bni,n = O 時,Vam;n = -1,其中 a"表示中的任一個,所述F*H個字節對應的位按照am,n與Vam,n的轉換關系得到矩陣所述矩陣Va表示為:"Ku Val2 …Valf1、
K:'2 7 Κ:'8 ,從服務正態分布的隨機數中選擇F*H*8個隨機數組成矩
^aF*H,I." KiFiHS y
I^1,2 …陣R,所述矩陣R表示為:丨' T'1 ,將所述矩陣Va的第m行與所述矩陣
J1FtlHΛ ^F*H,2...jR的第m行的隨機數相乘,然后求和得到一個值,具體表示為Sam =…+Vamj8^hnij8,同理,獲得Sal、Sa2…到SaFW,統計Sal、Sa2…到SaM中滿足大于O的值的個數K,當K為偶數,則所述窗口 WiJk1-Az, k.+Bj中至少部分數據滿足所述預定條件Cz。
33.一種用于查找數據流分割點的服務器,其特征在于,在所述服務器上預設有規貝U,所述規則為:為潛在分割點k確定M個點px、點Px對應的窗口 WX[PX-AX,PX+BJ和窗口Wx[px-Ax,px+Bx]對應的預定條件Cx,其中,X為I到M連續的自然數,M彡2,Ax和Bx為整數; 所述服務器包括:確定單元,用于執行步驟a):a)依據所述規則為當前潛在分割點Iii確定點Piz及所述點Piz對應的窗口 Wiz [piz-Az,piz+Bz],i和z為整數,并且I彡z彡M ; 判斷處理單元,用于判斷所述窗口 Wiz[piz-Az,piz+Bz]中至少部分數據是否滿足預定條件Cz ; 當所述窗口 Wiz[Piz_Az,piz+Bz]中至少部分數據不滿足所述預定條件Cz,從所述點P i z沿所述數據流分割點查找方向跳躍N個數據流分割點最小查找單位U,N* U不大于Il Bz Il +maxx( Il Ax Il + Il (Ic1-Pix) Il ),獲得新的潛在分割點,則所述確定單元為所述新的潛在分割點執行步驟a); 當所述當前潛在分割點K的M個窗口中的每一個窗口 Wix[pix-Ax,pix+Bx]中至少部分數據滿足預定條件cx,則所述當前潛在分割點ki為數據流分割點。
34.根據權利要求33所述的服務器,其特征在于,所述規則還包括:至少兩個點Pe和Pf,滿足條件 Ae = Af, Be = Bf, Ce = Cf。
35.根據權利要求34所述的服務器,其特征在于,所述規則還包括:所述至少兩個點ρε和Pf,相對于所述潛在分割點k,在所述數據流分割點查找反方向上。
36.根據權利要求34或35所述的服務器,其特征在于,所述規則還包括:所述至少兩個點Pe和Pf之間的距離為I個U。
37.根據權利要求33至36任一所述的服務器,其特征在于,所述判斷處理單元具體用于使用隨機函數判斷所述窗口 Wiz[piz-Az,piz+Bz]中至少部分數據是否滿足所述預定條件Cz。
38.根據權利要求37所述的服務器,其特征在于,所述判斷處理單元具體用于使用hash函數判斷所述窗口 Wiz [piz-Az,piz+Bj中至少部分數據是否滿足所述預定條件Cz。
39.根據權利要求33至38任一所述的服務器,其特征在于,所述判斷處理單元用于當所述窗口 Wiz [piz-Az,piz+Bj中至少部分數據不滿足所述預定條件Cz,從所述點piz沿所述數據流分割點查找方向跳躍N個數據流分割點最小查找單位U,獲得所述新的潛在分割點,所述確定單元為所述新的潛在分割點執行步驟a),根據所述規則,為所述新的潛在分割點確定的點Pie對應的窗口 Wic;[pic;-A。,pic+Bc]的左邊界與所述窗口 Wiz [piz-Az,piz+Bz]的右邊界重合或者為所述新的潛在分割點確定的所述窗口 UPk-AyPk+B。]的左邊界位于所述窗口 Wiz [piz-Az,piz+Bz]范圍之內;其中,為所述新的潛在分割點確定的所述窗口WiJpic-Ac, pic+Bc]是根據所述規則,為所述新的潛在分割點確定的M個點按照數據流查找方向獲得的序列中排序第一的點。
40.根據權利要求37所述的服務器,其特征在于,所述判斷處理單元具體用于使用隨機函數判斷所述窗口 Wiz[piz-Az,piz+Bz]中至少部分數據是否滿足所述預定條件Cz,具體包括: 在所述窗口 Wiz[piz-Az,piz+Bz]中選擇F個字節,將所述F個字節反復利用H次,共獲得F*H個字節,其中每個字節由8位組成,記為amyam,8,表示所述F*H個字節中第m個
Ia\,2 …8字節的第I到第8位,所述f*h個字節對應的位可以表示為:、丨y 7 y ,Ut H …aF^H^ j當an,n = I時,Vamjn = 1,當= O時,Vam;n = _1,其中a"表示中的任一個,所述F*H個字節對應的位按照am,n與Vam,n的轉換關系得到矩陣所述矩陣Va表示為:f Ku Ku …匕8 nIY γγT ?: T8 ,從服務正態分布的隨機數中選擇F*H*8個隨機數組成矩VV...V\ν α?*ΗA v aF*H2v aF*HJ
hi,I,21,2...,iI'8 陣R,所述矩陣R表示為:卜' Η]2 ":' Y ,將所述矩陣Va的第m行與所述矩陣
khf*H2...,iF*//'8 jR的第m行的隨機數相乘,然后求和得到一個值,具體表示為Sam =…+Vamj8^hnij8,同理,獲得Sal、Sa2…到SaFW,統計Sal、Sa2…到SaM中滿足大于O的值的個數K,當K為偶數,則所述窗口 Wiz [piz-Az,piz+Bz]中至少部分數據滿足所述預定條件Cz。
41.一種用于查找數據流分割點的服務器,其特征在于,在所述服務器上預設有規則,所述規則為:為潛在分割點k確定M個窗口 Wx[k-Ax,k+Bj和窗口 Wx[k-Ax,k+Bj對應的預定條件Cx,其中,X為I到M連續的自然數,M彡2,Ax和Bx為整數; 所述服務器包括:確定單元,用于執行步驟a): a)依據所述規則為當前潛在分割點h確定對應的窗口 WiJk1-Az, k^Bj,i和z為整數,并且I彡z彡M ; 判斷處理單元,用于判斷所述窗口 WJk1-Az, kjBj中至少部分數據是否滿足預定條件Cz ; 當所述窗口 WiJk1-AzAfBz]中至少部分數據不滿足所述預定條件Cz,從所述當前潛在分割點h沿所述數據流分割點查找方向跳躍N個數據流分割點最小查找單位U,N*U不大于Il Bz Il +maxx( Il Ax Il ),獲得新的潛在分割點,則所述確定單元為所述新的潛在分割點執行步驟a); 當所述當前潛在分割點K的M個窗口中的每一個窗口 WiJk1-Ax, k^Bj中至少部分數據滿足預定條件Cx,則所述當前潛在分割點Ici為數據流分割點。
42.根據權利要求41所述的服務器,其特征在于,所述規則還包括:至少兩個窗口Wie Lk1-Ae, VBe]與 WifLk1-Af, VBf],滿足條件:I Ae+Be | = | Af+Bf |, Ce = Cfo
43.根據權利要求42所述的服務器,其特征在于,所述規則還包括-Ae和Af為正整數。
44.根據權利要求42或43所述的服務器,其特征在于,所述規則還包括:Ae-1=Af,Be+1 = Bf。
45.根據權利要求41至44任一所述的服務器,其特征在于,所述判斷處理單元具體用于 使用隨機函數判斷所述窗口 WiJk1-AzAfBz]中至少部分數據是否滿足所述預定條件Cz。
46.根據權利要求45所述的服務器,其特征在于,所述判斷處理單元具體使用hash函數判斷所述窗口 WJk1-Az, h+Bj中至少部分數據是否滿足所述預定條件Cz。
47.根據權利要求41至46任一所述的服務器,其特征在于,所述判斷處理單元用于當所述窗口 WiJk1-AzAfBz]中至少部分數據不滿足所述預定條件Cz,從所述當前潛在分割點h沿所述數據流分割點查找方向跳躍N個數據流分割點最小查找單位U,獲得所述新的潛在分割點,所述確定單元為所述新的潛在分割點執行步驟a),根據所述規則,為所述新的潛在分割點確定的窗口 WiJH ki+B。]的左邊界與所述窗口 WiJk1-Az, I^+BJ的右邊界重合或者為所述新的潛在分割點確定的所述窗口 WiJk1-Ac^kfBJ的左邊界位于所述窗口WiJk1-Az, ^+BJ范圍之內;其中,為所述新的潛在分割點確定的所述窗口 WJk1-AdVBJ是根據所述規則,為所述新的潛在分割點確定的M個窗口按照數據流查找方向獲得的序列中排序第一的窗口。
48.根據權利要求46所述的服務器,其特征在于,所述判斷處理單元使用隨機函數判斷所述窗口 WiJk1-AukfBJ中至少部分數據是否滿足所述預定條件Cz,具體包括: 在所述窗口 WiJk1-AzAfBz]中選擇F個字節,將所述F個字節反復利用H次,共獲得F*H個字節,其中每個字節由8位組成,記為amyam,8,表示所述F*H個字節中第m個
f \
氣I aX^l … 氣8字節的第I到第8位,所述F*H個字節對應的位可以表示為:aV2,,Vi2F*//,! aFm'2 … aF--1iHS J當 an,n = I 時,Vamjn = 1,當 Bni,n = O 時,Vam;n = -1,其中 a"表示中的任一個,所述F*H個字節對應的位按照am,n與Vam,n的轉換關系得到矩陣所述矩陣Va表示為:
I ^/1,2..‘ 廠al,8rT1 Vu:'2: vT ,從服務正態分布的隨機數中選擇F*H*8個隨機數組成矩VV...V\ν α¥^ΗΛ v uF*H,2v aF*HS J
(h h h λ
11U "1,2 … "L8陣R,所述矩陣R表示為:? kTlhf ,將所述矩陣Va的第m行與所述矩陣
l...ht jR的第m行的隨機數相乘,然后求和得到一個值,具體表示為Sam =…+Vamj8^hnij8,同理,獲得Sal、Sa2…到SaFW,統計Sal、Sa2…到SaM中滿足大于O的值的個數K,當K為偶數,則所述窗口 WiJk1-Az, k.+Bj中至少部分數據滿足所述預定條件Cz。
49.一種計算機可讀存儲介質,其特征在于,所述計算機可讀存儲介質用于存儲可執行指令,服務器執行所述可執行指令以查找數據流分割點,在所述服務器上預設有規貝U,所述規則為:為潛在分割點k確定M個點px、點px對應的窗口 Wx[px-Ax,px+Bx]和窗口Wx[px-Ax,px+Bx]對應的預定條件Cx,其中,X為I到M連續的自然數,M彡2,Ax和Bx為整數; 當所述服務器執行所述可執行指令,以執行以下步驟: a)依據所述規則為當前潛在分割點h確定piz及piz對應的窗口Wiz[piz-Az,piz+Bj,i和z為整數,并且I彡z彡Μ; b)判斷所述窗口Wiz[piz-Az,piz+Bz]中至少部分數據是否滿足預定條件Cz; 當所述窗口 Wiz[Piz_Az,piz+Bz]中至少部分數據不滿足所述預定條件Cz,從所述點P i z沿所述數據流分割點查找方向跳躍N個數據流分割點最小查找單位U,N* U不大于Il Bz Il +maxx( Il Ax || + || (Ic1-Pix) || ),獲得新的潛在分割點,執行步驟a); c)當所述當前潛在分割點1^的M個窗口中的每一個窗口Wix [pix-Ax,pix+Bx]中至少部分數據滿足預定條件Cx,則所述當前潛在分割點Ici為數據流分割點。
50.根據權利要求49所述的計算機可讀存儲介質,其特征在于,所述規則還包括:至少兩個點Pe和Pf,滿足條件Ae = Af, Be = Bf, Ce = Cf。
51.根據權利要求50所述的計算機可讀存儲介質,其特征在于,所述規則還包括:所述至少兩個點Pe和Pf,相對于所述潛在分割點k,在所述數據流分割點查找反方向上。
52.根據權利要求50或51所述的計算機可讀存儲介質,其特征在于,所述規則還包括:所述至少兩個點Pe和Pf之間的距離為I個U。
53.根據權利要求49至52任一所述的計算機可讀存儲介質,其特征在于,所述服務器判斷所述窗口 Wiz[piz-Az,piz+Bz]中至少部分數據是否滿足所述預定條件Cz,具體包括: 所述服務器使用隨機函數判斷所述窗口 Wiz [piz-Az,piz+Bz]中至少部分數據是否滿足所述預定條件Cz。
54.根據權利要求53所述的計算機可讀存儲介質,其特征在于,所述服務器使用隨機函數判斷所述窗口 Wiz[piz-Az,piz+Bz]中至少部分數據是否滿足所述預定條件Cz,具體包括: 所述服務器使用hash函數判斷所述窗口 Wiz[piz-Az,piz+Bz]中至少部分數據是否滿足所述預定條件Cz。
55.根據權利要求49至54任一所述的計算機可讀存儲介質,其特征在于,當所述窗口WiJpiz-Az, piz+Bz]中至少部分數據不滿足所述預定條件Cz,從所述點piz沿所述數據流分割點查找方向跳躍N個數據流分割點最小查找單位U,獲得所述新的潛在分割點,根據所述規貝U,為所述新的潛在分割點確定的點Pi。對應的窗口 Wic;[pic;-A。,pic+Bc]的左邊界與所述窗口Wiz[piz-Az,piz+Bz]的右邊界重合或者為所述新的潛在分割點確定的所述點Pi。對應的所述窗口 WiJpicH^piJBJ的左邊界位于所述窗口 Wiz[piz-Az,piz+Bz]范圍之內;其中,為所述新的潛在分割點確定的所述點Pi。是根據所述規則,為所述新的潛在分割點確定的M個點按照數據流查找方向獲得的序列中排序第一的點。
56.根據權利要求53所述的計算機可讀存儲介質,其特征在于,使用隨機函數判斷所述窗口 Wiz[piz-Az,piz+Bz]中至少部分數據是否滿足所述預定條件Cz,具體包括: 在所述窗口 Wiz[piz-Az,piz+Bz]中選擇F個字節,將所述F個字節反復利用H次,共獲得F*H個字節,其中每個字節由8位組成,記為amyam,8,表示所述F*H個字節中第m個
aUaU2 …^1,8字節的第I到第8位,所述F*H個字節對應的位可以表示為:,1 αΓ,a Fm'2 …J當an,n = I時,Vamjn = 1,當= O時,Vam;n = _1,其中a"表示中的任一個,所述F*H個字節對應的位按照am,n與Vam,n的轉換關系得到矩陣所述矩陣Va表示為:f Ku Ku …Kls、vTl vT.vT ,從服務正態分布的隨機數中選擇F*H*8個隨機數組成矩
KtF*//,2...^aF*H,S j
hi,i ,2U …Ks 陣R,所述矩陣R表示為:h:;2 ": k',,將所述矩陣Va的第m行與所述矩陣
JtF-H.1 h1...jR的第m行的隨機數相乘,然后求和得到一個值,具體表示為Sam =…+Vamj8^hnij8,同理,獲得Sal、Sa2…到SaFW,統計Sal、Sa2…到SaM中滿足大于O的值的個數K,當K為偶數,則所述窗口 Wiz [piz-Az,piz+Bz]中至少部分數據滿足所述預定條件Cz。
57.一種計算機可讀存儲介質,其特征在于,所述計算機可讀存儲介質用于存儲可執行指令,服務器執行所述可執行指令以查找數據流分割點,在所述服務器上預設有規則,所述規則為:為潛在分割點k確定M個窗口 Wx[k-Ax,k+Bj和窗口 Wx[k-Ax,k+Bj對應的預定條件Cx,其中,X為I到M連續的自然數,M彡2,Ax和Bx為整數; 當所述服務器執行所述可執行指令,以執行以下步驟: a)依據所述規則為當前潛在分割點h確定對應的窗口WiJk1-Az, k^Bj,i和z為整數,并且I彡z彡M ; b)判斷所述窗口WiJk1-Az, ki+Bj中至少部分數據是否滿足預定條件Cz ; 當所述窗口 WiJk1-AzAfBz]中至少部分數據不滿足所述預定條件Cz,從所述當前潛在分割點h沿所述數據流分割點查找方向跳躍N個數據流分割點最小查找單位U,N*U不大于Il Bz Il +maxx( Il Ax || ),獲得新的潛在分割點,執行步驟a); c)當所述當前潛在分割點h的M個窗口中的每一個窗口WiJk1-AykfBx]中至少部分數據滿足預定條件Cx,則所述當前潛在分割點Ici為數據流分割點。
58.根據權利要求57所述的計算機可讀存儲介質,其特征在于,所述規則還包括:至少兩個窗口 WJk1-Ae, VBJ 與 WifLk1-Af, kjBj,滿足條件:|Ae+Be = Af+Bf |,Ce = Cf。
59.根據權利要求58所述的計算機可讀存儲介質,其特征在于,所述規則還包括:Ae和Af為正整數。
60.根據權利要求58或59所述的計算機可讀存儲介質,其特征在于,所述規則還包括:Ae-1 = Af, Be+1 = Bf。
61.根據權利要求57至60任一所述的計算機可讀存儲介質,其特征在于, 所述服務器判斷所述窗口 WiJk1-AzAfBz]中至少部分數據是否滿足所述預定條件Cz,具體包括: 使用隨機函數判斷所述窗口 WiJk1-AzAfBz]中至少部分數據是否滿足所述預定條件Cz。
62.根據權利要求61所述的計算機可讀存儲介質,其特征在于,所述服務器使用隨機函數判斷所述窗口 WiJk1-Az, h+Bj中至少部分數據是否滿足所述預定條件Cz,具體為所述服務器使用hash函數判斷所述窗口 Wiz[k1-Az,h+Bj中至少部分數據是否滿足所述預定條件Cz。
63.根據權利要求57至62任一所述的計算機可讀存儲介質,其特征在于,當所述窗口 Wiz[H h+Bj中至少部分數據不滿足所述預定條件Cz,從所述當前潛在分割點Ici沿所述數據流分割點查找方向跳躍N個數據流分割點最小查找單位U,獲得所述新的潛在分割點,根據所述規則,為所述新的潛在分割點確定的窗口 WiJk1-Ac^VBJ的左邊界與所述窗口 WiJk1-Az, ki+Bj的右邊界重合或者為所述新的潛在分割點確定的所述窗口WiJk1-Ac, ^+BJ的左邊界位于所述窗口 WiJk1-Az, I^+BJ范圍之內;其中,為所述新的潛在分割點確定的所述窗口 WiJk1-Ac^ k^Bj是根據所述規則,為所述新的潛在分割點確定的M個窗口按照數據流查找方向獲得的序列中排序第一的窗口。
64.根據權利要求61所述的計算機可讀存儲介質,其特征在于,使用隨機函數判斷所述窗口 Wiz[k1-Az,h+Bj中至少部分數據是否滿足所述預定條件Cz,具體包括: 在所述窗口 WiJk1-AzAfBz]中選擇F個字節,將所述F個字節反復利用H次,共獲得F*H個字節,其中每個字節由8位組成,記為amyam,8,表示所述F*H個字節中第m個
aI1IflI,2...fll,8字節的第I到第8位,所述F*H個字節對應的位可以表示為:aT ": α;'8 ,aFVi'2 …j當an,n = I時,Vamjn = 1,當= O時,Vam;n = _1,其中a"表示中的任一個,所述F*H個字節對應的位按照am,n與Vam,n的轉換關系得到矩陣所述矩陣Va表示為:(Ku Ku …。、Ff' Va!'2Va^ ,從服務正態分布的隨機數中選擇F*H*8個隨機數組成矩、I l.H,l ^aF*H,2...^aF*H,& y
f T1 hh Λ
11U n\y2 … 氣8
/iIi陣R,所述矩陣R表示為:卞 )2 ";' ?.*8 ,將所述矩陣Va的第m行與所述矩陣
h1...jR的第m行的隨機數相乘,然后求和得到一個值,具體表示為Sam =…+Vamj8^hnij8,同理,獲得Sal、Sa2…到SaFW,統計Sal、Sa2…到SaM中滿足大于O的值的個數K,當K為偶數,則所述窗口 WiJk1-Az, k.+Bj中至少部分數據滿足所述預定條件Cz。
【文檔編號】G06F17/30GK104169917SQ201480000347
【公開日】2014年11月26日 申請日期:2014年2月27日 優先權日:2014年2月14日
【發明者】于傳帥, 張程偉, 徐林波 申請人:華為技術有限公司