本發(fā)明涉及一種安全可靠的大數(shù)據(jù)存儲系統(tǒng)及方法。
背景技術(shù):
云計算是一種全新的領(lǐng)先信息技術(shù),結(jié)合IT技術(shù)和互聯(lián)網(wǎng)實現(xiàn)超級計算和存儲能力,而推動云計算興起的動力是高速互聯(lián)網(wǎng)和虛擬化技術(shù)的發(fā)展,更加廉價且功能強勁的芯片及硬盤、數(shù)據(jù)中心的發(fā)展。云計算可以看作是分布式計算、并行計算、效用計算、網(wǎng)絡(luò)存儲、虛擬化、負載均衡等傳統(tǒng)計算機和網(wǎng)絡(luò)技術(shù)發(fā)展融合的產(chǎn)物。云計算涉及的關(guān)鍵技術(shù)有很多,包括:通信、大規(guī)模分布式存儲技術(shù)、海量數(shù)據(jù)處理技術(shù)、資源管理、虛擬化技術(shù)等。
大數(shù)據(jù)(bigdata),或稱巨量資料,指的是所涉及的資料量規(guī)模巨大到無法通過目前主流軟件工具,在合理時間內(nèi)達到擷取、管理、處理、并整理成為幫助企業(yè)經(jīng)營決策更積極目的的資訊。大數(shù)據(jù)具有4V特點:Volume(大量)、Velocity(高速)、Variety(多樣)、Value(價值)。大數(shù)據(jù)需要特殊的技術(shù),以有效地處理大量的容忍經(jīng)過時間內(nèi)的數(shù)據(jù)。
內(nèi)容尋址存儲(Content Addressed Storage,CAS)是由美國EMC公司2002年4月率先提出的針對固定內(nèi)容存儲需求的先進的網(wǎng)絡(luò)存儲技術(shù)。CAS具有面向?qū)ο蟠鎯μ卣?,基于磁記錄技術(shù),它按照所存儲數(shù)據(jù)內(nèi)容的數(shù)字指紋尋址,具有良好的可搜索性、安全性、可靠性和擴展性。EMC同時推出了其CAS產(chǎn)品Centera,并成為CAS存儲技術(shù)的代表性產(chǎn)品。之后,一些存儲公司相繼推出了相關(guān)的產(chǎn)品,使CAS技術(shù)備受關(guān)注。
現(xiàn)有技術(shù)的加密操作并不進行雙層加密,只在數(shù)據(jù)傳輸或者數(shù)據(jù)存儲時進行加密。同時,現(xiàn)有技術(shù)的CAS,通常直接對對象進行固定分塊的方式進行數(shù)據(jù)分片,采用該方式雖然可以節(jié)約分塊的時間,然而如果是采用該種方法,會存在特別多固定分塊,其利用次數(shù)極少但是仍然占用大量空間,使得存儲系統(tǒng)的整體利用率不高,尤其是在大數(shù)據(jù)的基礎(chǔ)上以及對于各種常用屬性的組合的時候會產(chǎn)生上述問題。
技術(shù)實現(xiàn)要素:
本發(fā)明的目的在于克服現(xiàn)有技術(shù)的不足,提供一種安全可靠的大數(shù)據(jù)存儲系統(tǒng)及方法,采用雙層加密操作,分別在數(shù)據(jù)傳輸之前以及數(shù)據(jù)存儲之前進行加密,并且對數(shù)據(jù)存儲進行改進。
本發(fā)明的目的是通過以下技術(shù)方案來實現(xiàn)的:
一種安全可靠的大數(shù)據(jù)存儲系統(tǒng),包括依次連接的前端采集設(shè)備、有線/無線傳輸設(shè)備和后端數(shù)據(jù)處理設(shè)備;所述的前端采集設(shè)備包括數(shù)據(jù)采集模塊和加密模塊,所述的數(shù)據(jù)采集模塊用于采集數(shù)據(jù),所述的加密模塊用于對采集到的數(shù)據(jù)進行加密處理;所述的有線/無線傳輸設(shè)備用于將加密數(shù)據(jù)發(fā)送至后端數(shù)據(jù)處理設(shè)備;所述的后端數(shù)據(jù)處理設(shè)備包括解密模塊、存儲模塊和指紋值數(shù)據(jù)庫創(chuàng)建模塊,所述的解密模塊用于對接收到的數(shù)據(jù)進行解密處理,所述的存儲模塊實現(xiàn)將對象流中的對象進行加密后通過內(nèi)容比較的方式進行分段,得到多個數(shù)據(jù)片段,并建立對數(shù)據(jù)片段到對象的反相引用,或者上傳數(shù)據(jù)片段并將所述指紋值更新至所述指紋值數(shù)據(jù)庫;所述的指紋值數(shù)據(jù)庫創(chuàng)建模塊用于獲取大量與待存儲數(shù)據(jù)類型相同的數(shù)據(jù),對數(shù)據(jù)進行與存儲模塊相同的加密后再進行不同長度的分段,得到多組數(shù)據(jù)片段,計算數(shù)據(jù)片段的指紋值并上傳至指紋值數(shù)據(jù)庫;
所述的存儲模塊包括:
加密單元:用于對待存儲的文件進行加密,并將加密后得到的對象發(fā)送至比較組獲取單元;其中,加密前的文件為F=(d1,d2,......,dN),是包含N個消息的串,加密后的文件為F'=(e1,e2,......,eN+1),ei為di加密后的消息,其中加密的消息I為初始向量,EK(i)表示基于密鑰的加密算法,eN+1表示之前所有加密消息e1,e2,......,eN的密鑰K和哈希的異或函數(shù),即其中H(i)是加密算法;
比較組獲取單元:用于獲取比較組,所述的比較組為對象的第m位至m+X位;其中,m為比較組的初始位,m的初始值為0,X為固定步長;
比較組指紋值計算單元:用于計算比較組對應(yīng)的指紋值;
映射關(guān)系對應(yīng)表生成單元:用于對比較組指紋值計算單元計算得到的指紋值生成反映所述指紋值與對應(yīng)的存儲位置的映射關(guān)系對應(yīng)表;
判斷與處理單元:用于調(diào)用指紋值數(shù)據(jù)庫,判斷所述指紋值數(shù)據(jù)庫中是否存在所述指紋值:
(1)如果能夠?qū)?yīng):則將緩存中的指紋值進行更新,將比較組更新為m~m+X+p*n位,同時返回比較組獲取單元,其中p為m未更新的情況下的能夠?qū)?yīng)的總次數(shù),n為每次能夠?qū)?yīng)后增加的增加步長;
(2)如果不能夠?qū)?yīng),則進一步判斷緩存中是否存在指紋值:
如果緩存中存在指紋值,則建立所述指紋值對應(yīng)的數(shù)據(jù)片段到所述對象的反向引用,同時清空緩存,將比較組的初始位m更新為m+X+(p-1)*n+1,完成后返回比較組獲取單元;
如果緩存中不存在指紋值,則上傳所述對象的前X位的數(shù)據(jù)片段,并將對應(yīng)的指紋值更新至所述指紋值數(shù)據(jù)庫,將比較組的初始位m更新為m+X+1,完成后返回比較組獲取單元;
結(jié)束判斷單元:用于判斷是否完成整個對象的分段,如果是則結(jié)束。
所述的后端數(shù)據(jù)處理設(shè)備還包括:數(shù)據(jù)分析模塊,用于對數(shù)據(jù)存儲的數(shù)據(jù)按照模型進行分析。
所述的存儲模塊還包括一個長度判斷與數(shù)據(jù)處理單元:如果對象的最后一位大于m+X,則進入比較組獲取單元;否則:直接計算m位~對象最后一位的指紋值;按照計算得到的指紋值生成反映所述指紋值與對應(yīng)的存儲位置的映射關(guān)系對應(yīng)表;調(diào)用指紋值數(shù)據(jù)庫,判斷所述指紋值數(shù)據(jù)庫中是否存在所述指紋值:如果是,則建立所述指紋值對應(yīng)的數(shù)據(jù)片段到所述對象的反向引用;如果否,則上傳所述指紋值對應(yīng)的數(shù)據(jù)片段,并將所述指紋值更新至所述指紋值數(shù)據(jù)庫。
所述的存儲模塊還包括一個對象頭/尾判斷單元:用于判斷對象頭/尾是否與為指紋值數(shù)據(jù)庫中常用的數(shù)據(jù)頭/尾,如果是則快速獲取指紋值并建立所述指紋值對應(yīng)的數(shù)據(jù)片段到所述對象的反向引用,并去掉常用的數(shù)據(jù)頭/尾后進入比較組獲取單元。
所述的比較組限制有最大值Y,當在能夠?qū)?yīng)的同時,滿足X+p*n小于等于Y而X+(p+1)*n大于Y,則直接進入不能夠?qū)?yīng)并且緩存中存在指紋值的情況。
一種安全可靠的大數(shù)據(jù)存儲方法,包括存儲步驟和指紋值數(shù)據(jù)庫創(chuàng)建步驟,所述的存儲步驟包括以下子步驟:
S1:前端采集設(shè)備的數(shù)據(jù)采集模塊采集數(shù)據(jù),前端采集設(shè)備的加密模塊對采集到的數(shù)據(jù)進行加密處理;
S2:有線/無線傳輸設(shè)備將加密數(shù)據(jù)發(fā)送至后端數(shù)據(jù)處理設(shè)備;
S3:后端數(shù)據(jù)處理設(shè)備的解密模塊對接收到的數(shù)據(jù)進行解密處理,后端數(shù)據(jù)處理設(shè)備的存儲模塊對數(shù)據(jù)進行存儲,包括以下子步驟:
S31:接收待存儲的數(shù)據(jù),在進行加密操作得到對象后進入步驟S32;其中,加密前的文件為F=(d1,d2,......,dN),是包含N個消息的串,加密后的文件為F'=(e1,e2,......,eN+1),ei為di加密后的消息,其中加密的消息I為初始向量,EK(i)表示基于密鑰的加密算法,eN+1表示之前所有加密消息e1,e2,......,eN的密鑰K和哈希的異或函數(shù),即其中H(i)是加密算法;
S32:將對象流中的對象進行通過內(nèi)容比較的方式進行分段,得到多個數(shù)據(jù)片段,并建立對數(shù)據(jù)片段到對象的反相引用,或者上傳數(shù)據(jù)片段并將所述指紋值更新至所述指紋值數(shù)據(jù)庫,包括以下子步驟:
S321:獲取比較組,所述的比較組為對象的第m位至m+X位;其中,m為比較組的初始位,m的初始值為0,X為固定步長;
S322:計算比較組對應(yīng)的指紋值;
S323:按照步驟S322計算得到的指紋值生成反映所述指紋值與對應(yīng)的存儲位置的映射關(guān)系對應(yīng)表;
S324:調(diào)用指紋值數(shù)據(jù)庫,判斷所述指紋值數(shù)據(jù)庫中是否存在所述指紋值:
(1)如果能夠?qū)?yīng):
則將緩存中的指紋值進行更新,將比較組更新為m~m+X+p*n位,同時返回步驟S322,其中p為m未更新的情況下的能夠?qū)?yīng)的總次數(shù),n為每次能夠?qū)?yīng)后增加的增加步長;
(2)如果不能夠?qū)?yīng),則對判斷緩存中是否存在指紋值:
(2-1)如果緩存中存在指紋值,則建立所述指紋值對應(yīng)的數(shù)據(jù)片段到所述對象的反向引用,同時清空緩存,將比較組的初始位m更新為m+X+(p-1)*n+1,完成后返回步驟S321;
(2-2)如果緩存中不存在指紋值,則上傳所述對象的前X位的數(shù)據(jù)片段,并將對應(yīng)的指紋值更新至所述指紋值數(shù)據(jù)庫,將比較組的初始位m更新為m+X+1,完成后返回步驟S321;
S33:當完成整個對象的分段,則結(jié)束;
所述的指紋值數(shù)據(jù)庫創(chuàng)建步驟包括:獲取大量與待存儲數(shù)據(jù)類型相同的數(shù)據(jù),對數(shù)據(jù)進行與存儲模塊相同的加密后再進行不同長度的分段,得到多組數(shù)據(jù)片段,計算數(shù)據(jù)片段的指紋值并上傳至指紋值數(shù)據(jù)庫。
一種安全可靠的大數(shù)據(jù)存儲方法還包括步驟S4數(shù)據(jù)分析:對數(shù)據(jù)處理得到的數(shù)據(jù)按照模型進行分析。
在步驟S321所述的獲取比較組之前,還包括一個判斷步驟:如果對象的最后一位大于m+X,則進入步驟S321;否則:
S01:直接計算m位~對象最后一位的指紋值;
S02:按照計算得到的指紋值生成反映所述指紋值與對應(yīng)的存儲位置的映射關(guān)系對應(yīng)表;
S03:調(diào)用指紋值數(shù)據(jù)庫,判斷所述指紋值數(shù)據(jù)庫中是否存在所述指紋值:如果是,則建立所述指紋值對應(yīng)的數(shù)據(jù)片段到所述對象的反向引用;如果否,則上傳所述指紋值對應(yīng)的數(shù)據(jù)片段,并將所述指紋值更新至所述指紋值數(shù)據(jù)庫。
在步驟S31和步驟S32之間還包括一個對象頭/尾判斷步驟,用于判斷對象頭/尾是否與為指紋值數(shù)據(jù)庫中常用的數(shù)據(jù)頭/尾,如果是則快速獲取指紋值并建立所述指紋值對應(yīng)的數(shù)據(jù)片段到所述對象的反向引用,并去掉常用的數(shù)據(jù)頭/尾后進入步驟S32。
所述的比較組限制有最大值Y,在步驟S324中,當在能夠?qū)?yīng)的同時,滿足X+p*n小于等于Y而X+(p+1)*n大于Y,則直接進入不能夠?qū)?yīng)并且緩存中存在指紋值的情況。
本發(fā)明的有益效果是:
(1)本發(fā)明采用雙層加密操作,分別在數(shù)據(jù)傳輸之前以及數(shù)據(jù)存儲之前進行不同方式的加密,使得在傳輸過程和存儲過程中分別可以提高安全性;同時,還解決現(xiàn)有技術(shù)使用固定分塊的形式,導(dǎo)致特別多固定分塊,其利用次數(shù)極少但是仍然占用大量空間,使得存儲系統(tǒng)的整體利用率不高的問題,采用內(nèi)容對比的方式對對象進行分段,當尋找到相同的指紋值時進行長度增加與再判斷,直到下一次的指紋值不同,提高存儲系統(tǒng)的利用率。
(2)本發(fā)明還包括一個常用頭/尾判斷,當分析到對象的頭/尾屬于常用頭/尾時可快速進行獲取。
附圖說明
圖1為本發(fā)明結(jié)構(gòu)方框圖;
圖2為本發(fā)明存儲步驟流程圖;
圖3為步驟S32流程圖。
具體實施方式
下面結(jié)合附圖進一步詳細描述本發(fā)明的技術(shù)方案:
如圖1所示,一種安全可靠的大數(shù)據(jù)存儲系統(tǒng),包括依次連接的前端采集設(shè)備、有線/無線傳輸設(shè)備和后端數(shù)據(jù)處理設(shè)備;所述的前端采集設(shè)備包括數(shù)據(jù)采集模塊和加密模塊,所述的數(shù)據(jù)采集模塊用于采集數(shù)據(jù),所述的加密模塊用于對采集到的數(shù)據(jù)進行加密處理,在本實施例中,加密模塊進行的加密優(yōu)選為MD5;所述的有線/無線傳輸設(shè)備用于將加密數(shù)據(jù)發(fā)送至后端數(shù)據(jù)處理設(shè)備;所述的后端數(shù)據(jù)處理設(shè)備包括解密模塊、存儲模塊和指紋值數(shù)據(jù)庫創(chuàng)建模塊,所述的解密模塊用于對接收到的數(shù)據(jù)進行解密處理,所述的存儲模塊實現(xiàn)將對象流中的對象進行加密后通過內(nèi)容比較的方式進行分段,得到多個數(shù)據(jù)片段,并建立對數(shù)據(jù)片段到對象的反相引用,或者上傳數(shù)據(jù)片段并將所述指紋值更新至所述指紋值數(shù)據(jù)庫;所述的指紋值數(shù)據(jù)庫創(chuàng)建模塊用于獲取大量與待存儲數(shù)據(jù)類型相同的數(shù)據(jù),對數(shù)據(jù)進行與存儲模塊相同的加密后再進行不同長度的分段,得到多組數(shù)據(jù)片段,計算數(shù)據(jù)片段的指紋值并上傳至指紋值數(shù)據(jù)庫;
所述的存儲模塊包括:
加密單元:用于對待存儲的文件進行加密,并將加密后得到的對象發(fā)送至比較組獲取單元;其中,加密前的文件為F=(d1,d2,......,dN),是包含N個消息的串,加密后的文件為F'=(e1,e2,......,eN+1),ei為di加密后的消息,其中加密的消息I為初始向量,EK(i)表示基于密鑰的加密算法,eN+1表示之前所有加密消息e1,e2,......,eN的密鑰K和哈希的異或函數(shù),即其中H(i)是加密算法;
在本實施例中,EK(i)優(yōu)選為AES,H(i)優(yōu)選為SHA,K為從塊分組密碼中隨機選取的密鑰。
比較組獲取單元:用于獲取比較組,所述的比較組為對象的第m位至m+X位;其中,m為比較組的初始位,m的初始值為0,X為固定步長;
比較組指紋值計算單元:用于計算比較組對應(yīng)的指紋值;
映射關(guān)系對應(yīng)表生成單元:用于對比較組指紋值計算單元計算得到的指紋值生成反映所述指紋值與對應(yīng)的存儲位置的映射關(guān)系對應(yīng)表;
判斷與處理單元:用于調(diào)用指紋值數(shù)據(jù)庫,判斷所述指紋值數(shù)據(jù)庫中是否存在所述指紋值:
(1)如果能夠?qū)?yīng):則將緩存中的指紋值進行更新,將比較組更新為m~m+X+p*n位,同時返回比較組獲取單元,其中p為m未更新的情況下的能夠?qū)?yīng)的總次數(shù),n為每次能夠?qū)?yīng)后增加的增加步長;
其中,所述的X和n的值可調(diào)節(jié)。具體地,n的值越小計算的精度越高,X的值根據(jù)常用數(shù)據(jù)的長度的均值進行選擇。在不考慮計算量的情況下,n優(yōu)選取1。
(2)如果不能夠?qū)?yīng),則進一步判斷緩存中是否存在指紋值:
如果緩存中存在指紋值,則建立所述指紋值對應(yīng)的數(shù)據(jù)片段到所述對象的反向引用,同時清空緩存,將比較組的初始位m更新為m+X+(p-1)*n+1,完成后返回比較組獲取單元;
此條為當進行了多次后的增加,用上一次的指紋值進行反向引用。
如果緩存中不存在指紋值,則上傳所述對象的前X位的數(shù)據(jù)片段,并將對應(yīng)的指紋值更新至所述指紋值數(shù)據(jù)庫,將比較組的初始位m更新為m+X+1,完成后返回比較組獲取單元;
此條為進行第一次比較就不對應(yīng)時候的新寫入。
結(jié)束判斷單元:用于判斷是否完成整個對象的分段,如果是則結(jié)束。
優(yōu)選的,在上傳所述對象的前X位的數(shù)據(jù)片段時,根據(jù)數(shù)據(jù)片段的指紋值將數(shù)據(jù)片段存儲到不同的存儲單元中。
采用該種方式對新的數(shù)據(jù)片段進行分類存儲,以實現(xiàn)分布式存儲。比如可以選取多個范圍值,當數(shù)據(jù)片段的指紋值落在某個范圍內(nèi)就存儲于對應(yīng)的存儲單元中。這樣可以使得在數(shù)據(jù)比較階段降低一定量的工作,或者在后期的數(shù)據(jù)獲取階段降低一定量的工作。
在本實施例中,所述的后端數(shù)據(jù)處理設(shè)備還包括:數(shù)據(jù)分析模塊,用于對數(shù)據(jù)存儲的數(shù)據(jù)按照模型進行分析。
在本實施例中,所述的存儲模塊還包括一個長度判斷與數(shù)據(jù)處理單元:如果對象的最后一位大于m+X,則進入比較組獲取單元;否則:直接計算m位~對象最后一位的指紋值;按照計算得到的指紋值生成反映所述指紋值與對應(yīng)的存儲位置的映射關(guān)系對應(yīng)表;調(diào)用指紋值數(shù)據(jù)庫,判斷所述指紋值數(shù)據(jù)庫中是否存在所述指紋值:如果是,則建立所述指紋值對應(yīng)的數(shù)據(jù)片段到所述對象的反向引用;如果否,則上傳所述指紋值對應(yīng)的數(shù)據(jù)片段,并將所述指紋值更新至所述指紋值數(shù)據(jù)庫。
此處用于判斷對象的最大值,如果已經(jīng)計算到對象的最后一位則不再進行下一次的計算。
在本實施例中,所述的存儲模塊還包括一個對象頭/尾判斷單元:用于判斷對象頭/尾是否與為指紋值數(shù)據(jù)庫中常用的數(shù)據(jù)頭/尾,如果是則快速獲取指紋值并建立所述指紋值對應(yīng)的數(shù)據(jù)片段到所述對象的反向引用,并去掉常用的數(shù)據(jù)頭/尾后進入比較組獲取單元。
此處用于對常用的頭尾進行判斷,比如對于網(wǎng)站類的存儲常用的頭“http://www.”就可以進行快速與后面的內(nèi)容進行分開。
在本實施例中,所述的比較組限制有最大值Y,當在能夠?qū)?yīng)的同時,滿足X+p*n小于等于Y而X+(p+1)*n大于Y,則直接進入不能夠?qū)?yīng)并且緩存中存在指紋值的情況。
基于上述系統(tǒng)的實現(xiàn),本實施例還提供一種安全可靠的大數(shù)據(jù)存儲方法,包括存儲步驟和指紋值數(shù)據(jù)庫創(chuàng)建步驟,所述的存儲步驟如圖2所示,包括以下子步驟:
S1:前端采集設(shè)備的數(shù)據(jù)采集模塊采集數(shù)據(jù),前端采集設(shè)備的加密模塊對采集到的數(shù)據(jù)進行加密處理;
S2:有線/無線傳輸設(shè)備將加密數(shù)據(jù)發(fā)送至后端數(shù)據(jù)處理設(shè)備;
S3:后端數(shù)據(jù)處理設(shè)備的解密模塊對接收到的數(shù)據(jù)進行解密處理,后端數(shù)據(jù)處理設(shè)備的存儲模塊對數(shù)據(jù)進行存儲,包括以下子步驟:
S31:接收待存儲的數(shù)據(jù),在進行加密操作得到對象后進入步驟S32;其中,加密前的文件為F=(d1,d2,......,dN),是包含N個消息的串,加密后的文件為F'=(e1,e2,......,eN+1),ei為di加密后的消息,其中加密的消息I為初始向量,EK(i)表示基于密鑰的加密算法,eN+1表示之前所有加密消息e1,e2,......,eN的密鑰K和哈希的異或函數(shù),即其中H(i)是加密算法;
S32:將對象流中的對象進行通過內(nèi)容比較的方式進行分段,得到多個數(shù)據(jù)片段,并建立對數(shù)據(jù)片段到對象的反相引用,或者上傳數(shù)據(jù)片段并將所述指紋值更新至所述指紋值數(shù)據(jù)庫,如圖3所示,包括以下子步驟:
S321:獲取比較組,所述的比較組為對象的第m位至m+X位;其中,m為比較組的初始位,m的初始值為0,X為固定步長;
S322:計算比較組對應(yīng)的指紋值;
S323:按照步驟S322計算得到的指紋值生成反映所述指紋值與對應(yīng)的存儲位置的映射關(guān)系對應(yīng)表;
S324:調(diào)用指紋值數(shù)據(jù)庫,判斷所述指紋值數(shù)據(jù)庫中是否存在所述指紋值:
(1)如果能夠?qū)?yīng):
則將緩存中的指紋值進行更新,將比較組更新為m~m+X+p*n位,同時返回步驟S322,其中p為m未更新的情況下的能夠?qū)?yīng)的總次數(shù),n為每次能夠?qū)?yīng)后增加的增加步長;
(2)如果不能夠?qū)?yīng),則對判斷緩存中是否存在指紋值:
(2-1)如果緩存中存在指紋值,則建立所述指紋值對應(yīng)的數(shù)據(jù)片段到所述對象的反向引用,同時清空緩存,將比較組的初始位m更新為m+X+(p-1)*n+1,完成后返回步驟S321;
(2-2)如果緩存中不存在指紋值,則上傳所述對象的前X位的數(shù)據(jù)片段,并將對應(yīng)的指紋值更新至所述指紋值數(shù)據(jù)庫,將比較組的初始位m更新為m+X+1,完成后返回步驟S321;
S33:當完成整個對象的分段,則結(jié)束;
所述的指紋值數(shù)據(jù)庫創(chuàng)建步驟包括:獲取大量與待存儲數(shù)據(jù)類型相同的數(shù)據(jù),對數(shù)據(jù)進行與存儲模塊相同的加密后再進行不同長度的分段,得到多組數(shù)據(jù)片段,計算數(shù)據(jù)片段的指紋值并上傳至指紋值數(shù)據(jù)庫。
對應(yīng)地,一種安全可靠的大數(shù)據(jù)存儲方法還包括步驟S4數(shù)據(jù)分析:對數(shù)據(jù)處理得到的數(shù)據(jù)按照模型進行分析。
對應(yīng)地,在步驟S321所述的獲取比較組之前,還包括一個判斷步驟:如果對象的最后一位大于m+X,則進入步驟S321;否則:
S01:直接計算m位~對象最后一位的指紋值;
S02:按照計算得到的指紋值生成反映所述指紋值與對應(yīng)的存儲位置的映射關(guān)系對應(yīng)表;
S03:調(diào)用指紋值數(shù)據(jù)庫,判斷所述指紋值數(shù)據(jù)庫中是否存在所述指紋值:如果是,則建立所述指紋值對應(yīng)的數(shù)據(jù)片段到所述對象的反向引用;如果否,則上傳所述指紋值對應(yīng)的數(shù)據(jù)片段,并將所述指紋值更新至所述指紋值數(shù)據(jù)庫。
對應(yīng)地,在步驟S31和步驟S32之間還包括一個對象頭/尾判斷步驟,用于判斷對象頭/尾是否與為指紋值數(shù)據(jù)庫中常用的數(shù)據(jù)頭/尾,如果是則快速獲取指紋值并建立所述指紋值對應(yīng)的數(shù)據(jù)片段到所述對象的反向引用,并去掉常用的數(shù)據(jù)頭/尾后進入步驟S32。
對應(yīng)地,所述的比較組限制有最大值Y,在步驟S324中,當在能夠?qū)?yīng)的同時,滿足X+p*n小于等于Y而X+(p+1)*n大于Y,則直接進入不能夠?qū)?yīng)并且緩存中存在指紋值的情況。