劉海寧,李德山
(1.天津中德應(yīng)用技術(shù)大學(xué) 經(jīng)貿(mào)管理學(xué)院,天津 300350;2.西南科技大學(xué) 經(jīng)濟(jì)管理學(xué)院,四川 綿陽 621010)
隨著物聯(lián)網(wǎng)的發(fā)展,網(wǎng)絡(luò)上產(chǎn)生的數(shù)據(jù)成指數(shù)型增長[1-2],大數(shù)據(jù)成為研究者的關(guān)注熱點(diǎn)。大數(shù)據(jù)是指從異構(gòu)設(shè)備收集的海量數(shù)據(jù)量[3],包括傳感器網(wǎng)絡(luò)、科學(xué)實(shí)驗(yàn)、網(wǎng)站和其他應(yīng)用以各種格式產(chǎn)生的數(shù)據(jù)[4]。數(shù)據(jù)結(jié)構(gòu)從結(jié)構(gòu)化數(shù)據(jù)向非結(jié)構(gòu)化數(shù)據(jù)進(jìn)行轉(zhuǎn)化,使得傳統(tǒng)的關(guān)系數(shù)據(jù)庫不再適合存儲[5]。綜上,指數(shù)增長、數(shù)據(jù)結(jié)構(gòu)和類型的多樣性給傳統(tǒng)的數(shù)據(jù)管理系統(tǒng)帶來了數(shù)據(jù)存儲和分析的挑戰(zhàn)[6]。這就促進(jìn)了高效的分布式存儲機(jī)制的發(fā)展,為動態(tài)增長的大數(shù)據(jù)提供可靠和高效的存儲,從而引發(fā)具有改進(jìn)的訪問性能和容錯性的存儲系統(tǒng)的創(chuàng)新發(fā)展。
存儲機(jī)制從傳統(tǒng)的數(shù)據(jù)存儲到NoSQL技術(shù)的結(jié)構(gòu)轉(zhuǎn)變滿足了大數(shù)據(jù)存儲要求。 NoSQL數(shù)據(jù)庫克服了關(guān)系數(shù)據(jù)庫的局限,提供了可橫向擴(kuò)展、靈活、高可用、可訪問且相對便宜的存儲解決方案, 已成為大多數(shù)存儲系統(tǒng)采用的技術(shù)[7]。與關(guān)系數(shù)據(jù)庫不同,這些技術(shù)可為大量用戶同時與大數(shù)據(jù)交互提供支持。NoSQL數(shù)據(jù)庫在實(shí)現(xiàn)一致性、容錯性、可用性和查詢支持方面表現(xiàn)出色,同時還保證了關(guān)系數(shù)據(jù)庫的一些獨(dú)特功能:可伸縮性、可用性、一致性和二級索引[8]。
文獻(xiàn)[9]提出一種面向列的NoSQL數(shù)據(jù)庫,并從中提取增量,用于不同的增量應(yīng)用程序和不同的數(shù)據(jù)目標(biāo)。文獻(xiàn)[10]提出一種基于圖和關(guān)系數(shù)據(jù)庫的混合數(shù)據(jù)庫方法,通過調(diào)節(jié)一些約束可以從兩者的混合系統(tǒng)中獲益,使得兩個模型集成在一個系統(tǒng)中以消除各個系統(tǒng)的限制。文獻(xiàn)[11]提出了一種基于Mongo DB分布式數(shù)據(jù)庫存儲結(jié)構(gòu)的蛋白質(zhì)組學(xué)數(shù)據(jù)存儲系統(tǒng)設(shè)計方案,解決了傳統(tǒng)存儲系統(tǒng)中集群架構(gòu)關(guān)系復(fù)雜、維護(hù)成本高、代碼處理復(fù)雜的問題。文獻(xiàn)[12]提出了一種可靠的分布式存儲系統(tǒng),使用結(jié)合對稱和非對稱加密方法的冗余輕量級加密算法,提高了分布式系統(tǒng)的可靠性和安全性。文獻(xiàn)[13]提出了一種新的分布式存儲系統(tǒng)Amoeba,使用自適應(yīng)多屬性數(shù)據(jù)分區(qū)以有效地支持自組織和重復(fù)查詢,使得在所有屬性上的自組織查詢具有類似的性能增益,然后自適應(yīng)地重新劃分基于觀察到的查詢序列的數(shù)據(jù),使得系統(tǒng)隨著時間的推移而改進(jìn)。文獻(xiàn)[14]提出一種基于ARM的海量大數(shù)據(jù)存儲系統(tǒng)設(shè)計方法,實(shí)現(xiàn)海量大數(shù)據(jù)的靈活高效存儲。對于存儲系統(tǒng)中數(shù)據(jù)放置機(jī)制的研究,文獻(xiàn)[15]中給出了一種多數(shù)據(jù)副本放置機(jī)制,以最小化訪問代價為優(yōu)化目標(biāo),基于遺傳算法確定優(yōu)化的數(shù)據(jù)副本放置方案。文獻(xiàn)[16]提出一種可調(diào)整副本部署策略的數(shù)據(jù)副本放置機(jī)制,該機(jī)制根據(jù)數(shù)據(jù)訪問頻率調(diào)整副本數(shù)量,并根據(jù)節(jié)點(diǎn)空閑容量設(shè)置副本。以上兩種數(shù)據(jù)放置機(jī)制在檢索時間等性能方面還有提升空間。
安全有效地存儲大數(shù)據(jù)是一個迫切的問題。本文在現(xiàn)有數(shù)據(jù)存儲系統(tǒng)的基礎(chǔ)上,設(shè)計了一種大數(shù)據(jù)存儲系統(tǒng)架構(gòu),通過文件組合策略改進(jìn)HDFS小文件的讀寫過程,使用Hive工具并行分析和提取海量日志,在HDFS文件系統(tǒng)上構(gòu)建云存儲平臺。提出一種快速啟發(fā)式數(shù)據(jù)放置機(jī)制,將數(shù)據(jù)放置問題進(jìn)行數(shù)據(jù)化表示,并通過圖著色的貪婪算法給出放置方案。該放置方法能在最小化搜索時間的同時保證數(shù)據(jù)存儲的安全性,采用該系統(tǒng)及數(shù)據(jù)放置機(jī)制能夠有效實(shí)現(xiàn)大數(shù)據(jù)安全高效地存儲。
大數(shù)據(jù)分布式存儲系統(tǒng)使用HDFS文件系統(tǒng),其主要功能包括文檔用戶管理、HDFS小文件合并處理和日志分析。HDFS文件系統(tǒng)由1個名稱節(jié)點(diǎn)和3個數(shù)據(jù)節(jié)點(diǎn)組成,而DFS服務(wù)器封裝了HDFS文件的基本操作,用戶只需通過瀏覽器即可輕松完成文件管理。分布式存儲系統(tǒng)的體系結(jié)構(gòu)如圖1所示。
圖1 大數(shù)據(jù)存儲系統(tǒng)架構(gòu)
元數(shù)據(jù)服務(wù)器主要用于存儲小文件的元數(shù)據(jù)信息,如果用戶上傳的文件被確定為小文件,則通過附加的寫入方法將其合并到用戶文件中,并將其元數(shù)據(jù)信息記錄在元數(shù)據(jù)服務(wù)器中。當(dāng)用戶讀取一個小文件時,它將根據(jù)文件直接定位和讀取元數(shù)據(jù)信息,提高了閱讀效率。在數(shù)據(jù)節(jié)點(diǎn)中顯示DFS服務(wù)器的作用是當(dāng)用戶讀取小于文件塊的文件時直接轉(zhuǎn)移到數(shù)據(jù)節(jié)點(diǎn),此時,存儲此文件的數(shù)據(jù)節(jié)點(diǎn)將直接向用戶傳輸數(shù)據(jù),從而減少DFS服務(wù)器上的壓力,改善服務(wù)器響應(yīng)時間,同時提高文件的I / O效率。Hive元數(shù)據(jù)服務(wù)器主要用于日志分析,日志分析保存Hive表的元數(shù)據(jù)信息,然后將日志分析結(jié)果存儲到關(guān)系數(shù)據(jù)庫中,方便用戶查看。
NameNode是整個存儲系統(tǒng)的中央控制器,用于管理和維護(hù)整個文件系統(tǒng)樹及其中所有的文件和目錄,同時負(fù)責(zé)接收和處理留置請求以及管理、分配特定的存儲任務(wù)。NameNode管理的元數(shù)據(jù)信息以兩個文檔的形式持久地保存在本地磁盤上:名稱空間圖像文件FsImage和編輯日志文件EditLog。每個啟動NameNode將首先加載FsImage文件,然后重做所記錄的操作EditLog,最后將Fslmage重新持久化到本地磁盤以及空的EditLog文件。NameNode定期執(zhí)行檢查點(diǎn),定期合并FsImage文件和EditLog文件。FsImage總是在最后一個檢查點(diǎn)之后記錄文件系統(tǒng)的元數(shù)據(jù),而EditLog則記錄一次檢查點(diǎn)到下一個檢查點(diǎn)之間的操作。NameNode記錄與每個文件對應(yīng)的每個塊的Datanode信息,但區(qū)別在于這些信息不會被持久存儲,而是在系統(tǒng)啟動時由Datanode節(jié)點(diǎn)報告和構(gòu)造。從NameNode對FsImage和EditLog文件進(jìn)行合并,然后將新的FsImage文件傳輸回舊的文件,并且新的EditLog在獲得FsImage和EditLog之后為空文件,因此一方面要確保EditLog文件不會太大,減少系統(tǒng)重啟時間;另一方面,Secondary NameNode對NameNode中的名稱空間映像文件進(jìn)行備份,提高其容錯性。
整個系統(tǒng)可分為認(rèn)證、數(shù)據(jù)文件塊加密、數(shù)字保護(hù)、數(shù)據(jù)文件加密和上傳、解密和下載、數(shù)據(jù)文件檢索查詢部分以及在后臺執(zhí)行的分布式數(shù)據(jù)文件系統(tǒng)過程和異常檢測軟件部分,系統(tǒng)結(jié)構(gòu)如圖2所示。
目前,性能問題和安全性要求的結(jié)合使得大數(shù)據(jù)存儲系統(tǒng)中的數(shù)據(jù)放置問題成為具有挑戰(zhàn)性的問題。本文提出一種基于圖著色的貪婪算法的安全感知數(shù)據(jù)放置機(jī)制,在系統(tǒng)上以最小化總檢索時間存儲所有數(shù)據(jù)塊,同時保證數(shù)據(jù)的安全性,使得即使成功侵入塊,攻擊者也無法猜測或推斷其他塊的位置。
圖2 大數(shù)據(jù)存儲系統(tǒng)模塊化
大數(shù)據(jù)分布式存儲系統(tǒng)由M個存儲節(jié)點(diǎn)組成,節(jié)點(diǎn)i具有Ci單元的總存儲容量。節(jié)點(diǎn)之間的連接由對稱矩陣B(M×M)表示,其中Bi, j=Bj,i表示節(jié)點(diǎn)i和j之間的雙向鏈路的帶寬。因此,Bi, j=Bj,i=0的情況意味著節(jié)點(diǎn)i和j沒有連接。系統(tǒng)的拓?fù)浣Y(jié)構(gòu)表示為圖G(V,E),其中V是頂點(diǎn)集合,即存儲節(jié)點(diǎn),E是邊緣集合頂點(diǎn),即連接存儲節(jié)點(diǎn)的鏈接。假設(shè)任何存儲節(jié)點(diǎn)都可以被視為訪問。用戶可以提交存儲請求的系統(tǒng)點(diǎn),給定需要存儲大小為D的數(shù)據(jù)量的用戶請求。假設(shè)數(shù)據(jù)可以被分割成具有任意大小的多個塊,每個塊包含整個數(shù)據(jù)的部分重要/敏感信息,因此泄露單個塊的信息對惡意用戶沒有意義。本文將安全級別定義為存儲任何數(shù)據(jù)塊對的兩個節(jié)點(diǎn)之間的最小非零距離。最小距離必須保持為變化的參數(shù),以滿足不同用戶的安全要求。
(1)
假設(shè)來自/到達(dá)存儲設(shè)備的讀/寫時間可以忽略不計,從讀取請求的節(jié)點(diǎn)i到節(jié)點(diǎn)p的數(shù)據(jù)傳輸時間與從p到i的數(shù)據(jù)傳輸時間相同。對于寫請求,因?yàn)橄到y(tǒng)中的鏈接是雙向的,因此如果可以最小化數(shù)據(jù)的檢索時間,那么它的總上傳時間也將最小化。
總傳輸時間的線性優(yōu)化編程公式在數(shù)學(xué)上表示為minimize:TD,其受限條件為:
(2)
該約束確保所有塊大小的總和等于原始數(shù)據(jù)的大小。
Si≤Smax,Si≤Ci
(3)
其中Si≤Smax確保每個塊的大小不超過用戶定義的閾值,表示為Smax,Smax≤D。本文認(rèn)為數(shù)據(jù)所有者是指定塊大小閾值的最佳候選者,以便在塊泄漏時不泄露太多敏感信息。Si≤Ci確保了候選節(jié)點(diǎn)的足夠存儲容量。
f(Si,Sj,i,j)≥K,i,j=1,…,M
(4)
式(4)確保放置解決方案保證所需的安全級別,即存儲相同數(shù)據(jù)的兩個塊的節(jié)點(diǎn)之間的最小距離,表示為K。K=0表示非安全級別,K=1表示最低安全級別,K=2表示默認(rèn)安全級別。然后定義函數(shù)f(Si,Sj,i,j)來計算該距離。該功能定義如下:
(5)
當(dāng)Si≠0且Sj≠0時,函數(shù)取值為D(i,j),根據(jù)網(wǎng)絡(luò)中的最短路徑計算兩個節(jié)點(diǎn)之間的跳數(shù)。如果Si=0或Sj=0,意味著未選擇節(jié)點(diǎn)i或節(jié)點(diǎn)j來存儲任何數(shù)據(jù)塊,則將函數(shù)的結(jié)果設(shè)置為大于K的值,設(shè)置為最大整數(shù)值MaxInt。
解決上述問題在計算上是困難的,因?yàn)榧词箤τ诤唵蔚男⌒痛鎯ο到y(tǒng)來說,確定是否存在有效的放置解決方案也是NP的。上面給出的線性規(guī)劃能更好地描述數(shù)據(jù)放置問題,并更好地理解問題的復(fù)雜性,因此必須設(shè)計出有效的啟發(fā)式算法來解決這個問題。
針對上節(jié)中存儲系統(tǒng)有效放置解決方案是NP的問題,提出一種基于圖著色的安全感知數(shù)據(jù)放置機(jī)制。該放置機(jī)制屬于一種貪婪算法,確保了數(shù)據(jù)隱私的安全級別,同時最小化了數(shù)據(jù)檢索時間。
設(shè)圖G=(V,E)表示存儲系統(tǒng)的網(wǎng)絡(luò)拓?fù)洌o定包含0的非負(fù)整數(shù)的集合T,T著色問題是從頂點(diǎn)集合V到用于給頂點(diǎn)著色的顏色值的非負(fù)整數(shù)集合的映射函數(shù)f,使得|f(i)-f(j)|?T,其中i,j∈V。即T著色問題將顏色分配給頂點(diǎn),使得相鄰頂點(diǎn)的顏色之間的距離必須不屬于T。當(dāng)T={0}時,T著色問題歸結(jié)為一個共同的頂點(diǎn)著色問題,其中兩個相鄰的頂點(diǎn)不能被賦予相同的顏色。
當(dāng)T={0}時,T著色問題適用于數(shù)據(jù)放置問題以確保數(shù)據(jù)的完全安全性。假定數(shù)據(jù)可以劃分為任意數(shù)量的塊,在默認(rèn)安全級別(即K=2),兩個不同的數(shù)據(jù)塊不能存儲在兩個相鄰節(jié)點(diǎn)中。即給定存儲節(jié)點(diǎn)圖的著色解,具有相同顏色的節(jié)點(diǎn)可以存儲數(shù)據(jù)的塊,因?yàn)樗鼈儾皇菆D中的相鄰節(jié)點(diǎn)。具有相同顏色的存儲節(jié)點(diǎn)的數(shù)量可能比特定數(shù)據(jù)的塊的數(shù)量大得多,這就使得數(shù)據(jù)的安全性得到保證,因?yàn)榧词褂泄?jié)點(diǎn)上發(fā)生成功的入侵,惡意用戶也不能猜測其他數(shù)據(jù)塊的位置。
當(dāng)所需的安全級別高于默認(rèn)級別時,問題會更復(fù)雜,要求數(shù)據(jù)的兩個不同塊之間的距離大于2。為了解決這個問題,本文提出一種算法,將K>2的問題轉(zhuǎn)換為K=2的問題。給定K值及其網(wǎng)絡(luò)拓?fù)?,算法開始連接距離小于K的所有節(jié)點(diǎn)對。圖3給出了當(dāng)K被設(shè)置為3時的轉(zhuǎn)換過程的示意圖,其中(a)給出了系統(tǒng)的原始圖,(b)給出了圖轉(zhuǎn)換算法的結(jié)果,添加的邊被標(biāo)記為虛線,(c)給出了在得到的圖上獲得的著色解決方案。
圖3 具有所需安全級別K=3的轉(zhuǎn)換示意圖
鑒于著色解決方案,可得到一組可行的存儲節(jié)點(diǎn)解決方案,如圖3(c)中所示,數(shù)據(jù)可以分成2個塊并存儲在可行的節(jié)點(diǎn)對上,節(jié)點(diǎn)1和節(jié)點(diǎn)6(紅色),節(jié)點(diǎn)2和節(jié)點(diǎn)7(藍(lán)色),節(jié)點(diǎn)3和節(jié)點(diǎn)4(綠色)或節(jié)點(diǎn)5和節(jié)點(diǎn)9(紫色)。
上述內(nèi)容解決了圖形轉(zhuǎn)換和著色問題。本文的大數(shù)據(jù)放置機(jī)制算法由兩個部分組成:第1部分即著色解決方案,第2部分是貪婪算法,用以確定存儲在所選節(jié)點(diǎn)上的數(shù)據(jù)塊的大小。算法1給出了用于數(shù)據(jù)塊分配的貪婪算法的偽代碼。
算法首先計算用于為圖形著色的顏色數(shù)量,然后在外部for循環(huán)中使用用于對圖著色的顏色集合(表示為C)以確定最佳放置解決方案。對于集合C中的每種顏色c,該算法首先按照單元數(shù)據(jù)到接入點(diǎn)的檢索時間的升序?qū)λ泄?jié)點(diǎn)進(jìn)行排序,這些節(jié)點(diǎn)由c著色。給定有序的存儲節(jié)點(diǎn)集,表示為Vc′,算法開始以最小的檢索時間分配來自第1節(jié)點(diǎn)的數(shù)據(jù)塊。
對于有序集合中的每個節(jié)點(diǎn)v,Vc′的數(shù)據(jù)塊大小由min{Smax,Cv,Dtemp}確定。這意味著,如果剩余數(shù)據(jù)的大小較大,則只能分配具有最大Smax的塊。然而,如果存儲節(jié)點(diǎn)的可用存儲空間Cv不夠,則只有較小的塊可以占用剩余的可用存儲空間。當(dāng)整個數(shù)據(jù)被容納時,即使仍然存在可行的存儲節(jié)點(diǎn),由于這些節(jié)點(diǎn)在數(shù)據(jù)傳輸中較慢,該算法也會中斷for循環(huán)。
在算法執(zhí)行中,可能會發(fā)生沒有足夠節(jié)點(diǎn)來存儲數(shù)據(jù)的情況,即for循環(huán)已經(jīng)用相同的顏色完成了所有可行的節(jié)點(diǎn),但是數(shù)據(jù)仍然保留。由于無法在系統(tǒng)中容納數(shù)據(jù),可忽略此分配解決方案。只有可以容納整個數(shù)據(jù)時,算法才計算放置解決方案的總檢索時間,如果當(dāng)前解決方案的總檢索時間小于先前的最佳解決方案,則該算法更新最佳解決方案以供將來進(jìn)行比較。
算法在迭代完所有可用解后停止,這些可行解由用于圖著色的顏色集表示。最終的解決方案是最佳的數(shù)據(jù)放置解決方案,它不僅滿足安全約束,而且最小化了數(shù)據(jù)的總檢索時間。當(dāng)數(shù)據(jù)過大而所有存儲節(jié)點(diǎn)都已經(jīng)飽和或者具有相同顏色的節(jié)點(diǎn)的數(shù)量過少時,可能不存在可行的解決方案。在這種情況下拒絕存儲請求,即算法返回空集合。實(shí)際上,如果拒絕率太高,則提供者可能需要通過增加節(jié)點(diǎn)數(shù)量及其容量來擴(kuò)展系統(tǒng)。
在具有隨機(jī)網(wǎng)絡(luò)拓?fù)涞脑拼鎯ο到y(tǒng)上對本文存儲架構(gòu)和數(shù)據(jù)放置機(jī)制進(jìn)行測試。隨機(jī)生成具有最小節(jié)點(diǎn)度的拓?fù)湓O(shè)置為2,鏈路的帶寬從[100,500]Mbps隨機(jī)選擇。安全級別被默認(rèn)設(shè)置為3,即存儲相同數(shù)據(jù)的任何一對塊的節(jié)點(diǎn)之間的距離應(yīng)該至少是3跳,圖4~6給出了不同方法在隨機(jī)網(wǎng)絡(luò)拓?fù)湎碌男阅堋?/p>
本文采用平均檢索時間、存儲請求中的拒絕次數(shù)兩個指標(biāo)性能對大數(shù)據(jù)存儲的數(shù)據(jù)放置方法進(jìn)行驗(yàn)證。為了驗(yàn)證有效性,將本文方法與其他3種方法進(jìn)行比較,這3種方法分別是:文獻(xiàn)[16]中的ARDS放置方法、隨機(jī)選擇節(jié)點(diǎn)(random selection of nodes,RSN)和最遠(yuǎn)節(jié)點(diǎn)優(yōu)先(furthest node first,FNF)。RSN在滿足安全要求的節(jié)點(diǎn)中隨機(jī)選擇一個存儲節(jié)點(diǎn)來存儲數(shù)據(jù)塊。該過程重復(fù)進(jìn)行,直到?jīng)]有更多的存儲節(jié)點(diǎn)可用時,整個數(shù)據(jù)被容納或拒絕;FNF選擇與存儲相同數(shù)據(jù)塊的節(jié)點(diǎn)最遠(yuǎn)的節(jié)點(diǎn),F(xiàn)NF是一個迭代算法,與RSN具有相同的停止條件。
圖4 不同方法的總檢索時間比較
從圖4中可以看出:與其他算法相比,本文提出的大數(shù)據(jù)存儲系統(tǒng)與數(shù)據(jù)放置機(jī)制的總檢索時間是最少的。在最好的情況下,刻度減少檢索時間高達(dá)25.1%。另外,當(dāng)請求次數(shù)增加時,本文方法的檢索時間略有增加,這是因?yàn)?,在少量請求的情況下,本文方法會利用滿足安全約束的最近節(jié)點(diǎn)進(jìn)行搜索;在請求數(shù)量較高時,所有最近的存儲節(jié)點(diǎn)都飽和,然后利用其他節(jié)點(diǎn),從而增加了檢索時間。
從圖5中數(shù)據(jù)可以看出:所有方法的存儲數(shù)據(jù)總量性能隨著請求數(shù)量的增加而變大,本文方法的存儲數(shù)據(jù)總量性能總是優(yōu)于其他3種方法,且隨著請求數(shù)量的增加,存儲總量的優(yōu)越性越大。
圖5 不同方法允許存儲的總數(shù)據(jù)量
從圖6中數(shù)據(jù)可以看出:對于拒絕次數(shù)性能,所有方法的拒絕次數(shù)隨著請求數(shù)量的增加而變大,本文方法的拒絕次數(shù)總是少于其他3種方法;隨著請求次數(shù)的增加,本文方法的拒絕次數(shù)增速較緩,ARDS方法增速也較緩,即隨著請求數(shù)量的增加,RSN和FNF方法的拒絕次數(shù)增加幅度大于本文方法和ARDS方法。
圖6 不同方法的拒絕次數(shù)
綜上,從圖5、6中可以看出:本文方法不僅在檢索時間方面具有最佳性能,而且在存儲數(shù)據(jù)總量和拒絕次數(shù)性能方面也具有最佳性能,這說明本文方法不會犧牲其他性能指標(biāo)來實(shí)現(xiàn)數(shù)據(jù)安全性。
為了驗(yàn)證本文方法的普適性和可推廣性,從不同存儲節(jié)點(diǎn)數(shù)量和安全級別來驗(yàn)證本文存儲系統(tǒng)和數(shù)據(jù)放置機(jī)制的性能。存儲節(jié)點(diǎn)數(shù)量的影響:通過將存儲節(jié)點(diǎn)數(shù)量從25個變?yōu)?0個來評估所提算法的性能。
圖7表示不同算法對于存儲節(jié)點(diǎn)數(shù)的檢索時間。每種方法中檢索時間的縮短是由于鏈路容量的異構(gòu)性導(dǎo)致,可以看出本文算法在不同存儲節(jié)點(diǎn)數(shù)量下總是優(yōu)于其他方法。
圖7 不同存儲節(jié)點(diǎn)數(shù)量下的檢索時間
安全級別的影響:將安全級別從2改為5,并評估算法的性能。圖8給出了關(guān)于安全級別的檢索時間。
圖8 不同安全級別下的檢索時間
結(jié)果表明:當(dāng)安全級別增加時,檢索時間增加, 這是因?yàn)榭拷尤朦c(diǎn)的存儲節(jié)點(diǎn)違反了安全約束。另外,當(dāng)增加安全級別時,從存儲數(shù)據(jù)塊的節(jié)點(diǎn)到接入點(diǎn)的平均跳數(shù)也增加,導(dǎo)致檢索時間增加??梢钥闯霰疚姆椒ㄔ诓煌陌踩墑e下檢索時間總是小于其他方法,同時能夠保證數(shù)據(jù)的安全性。
本文提出一種大數(shù)據(jù)存儲模型和存儲系統(tǒng)中數(shù)據(jù)放置機(jī)制,首先設(shè)計了大數(shù)據(jù)存儲的存儲模型架構(gòu),在分析HDFS架構(gòu)和運(yùn)行機(jī)制的基礎(chǔ)上,通過文件組合策略改進(jìn)HDFS小文件的讀寫過程,給出大數(shù)據(jù)存儲框架。為了減少數(shù)據(jù)存儲檢索時間和提高安全性能,提出一種用于數(shù)據(jù)存儲系統(tǒng)的數(shù)據(jù)放置機(jī)制,該放置機(jī)制是基于圖著色的貪婪算法來解決數(shù)據(jù)安全放置問題。實(shí)驗(yàn)結(jié)果表明:與其他3種方法比較,本文方法在檢索時間、存儲數(shù)據(jù)總量和拒絕次數(shù)方面都體現(xiàn)了最佳性能,說明了本文方法的有效性。