張 健
(成都文理學(xué)院 信息工程學(xué)院,四川 成都 610401)
如果發(fā)生數(shù)據(jù)保存錯誤,可以通過備份恢復(fù)原始數(shù)據(jù),文獻(xiàn)[1]在此基礎(chǔ)上進(jìn)行了相關(guān)研究,其分析了備份數(shù)據(jù)庫的緩存過程,在備份過程中可以采用如下三種備份策略:去冗余備份、同時備份和冗余備份。構(gòu)建數(shù)據(jù)資源需求模型,制訂備份策略時,根據(jù)數(shù)據(jù)資源的使用量選擇最少的備份時間,這種方式備份時間短,但是備份數(shù)據(jù)庫的開銷大;文獻(xiàn)[2]采用基于資源效用最大數(shù)據(jù)庫緩存方法,建立數(shù)據(jù)庫緩存該問題評估模型,改善了數(shù)據(jù)庫備份機(jī)制,但與此同時也延長了數(shù)據(jù)庫恢復(fù)時間。
基于以上問題,本文提出基于空間數(shù)據(jù)維度劃分的層次化通信網(wǎng)絡(luò)備份數(shù)據(jù)庫緩存子系統(tǒng)設(shè)計,其創(chuàng)新之處在于,根據(jù)數(shù)據(jù)在空間維度上的分布情況,確定數(shù)據(jù)集對應(yīng)的維度投影,消除網(wǎng)絡(luò)冗余數(shù)據(jù),降低備份數(shù)據(jù)庫緩存時間和成本。
系統(tǒng)硬件結(jié)構(gòu)如圖1所示。
由圖1可知,系統(tǒng)硬件結(jié)構(gòu)包括四個層次,分別是采集層、分析層、展示層和管理模塊與公共服務(wù)層。
1)采集層
采集層包括資產(chǎn)收集器、漏洞收集器、威脅收集器以及收集器管理員。采集管理員在系統(tǒng)中統(tǒng)一管理所有采集者,該部門負(fù)責(zé)接收收集程序收集的數(shù)據(jù),向分析層提交[3?4]。收集器可部署在網(wǎng)絡(luò)中的各種設(shè)備上,通過掃描或監(jiān)視獲得數(shù)據(jù)[5]。
圖1 系統(tǒng)硬件結(jié)構(gòu)
2)分析層
分析層負(fù)責(zé)采集數(shù)據(jù),并依據(jù)該數(shù)據(jù)評價網(wǎng)絡(luò)安全狀況[6]。通過對所收集的原始主機(jī)信息和拓?fù)湫畔⑦M(jìn)行分析,實現(xiàn)了網(wǎng)絡(luò)資源的動態(tài)監(jiān)測。通過聯(lián)機(jī)分析和離線分析能夠確定網(wǎng)絡(luò)漏洞和威脅事件,并對緊急情況作出反應(yīng)[7?8]。脫機(jī)分析也稱為兩級分析,是指對漏洞、威脅、風(fēng)險和有關(guān)資料進(jìn)行分析。
3)展示層
展示層是用戶與系統(tǒng)交互界面,為用戶提供基礎(chǔ)安全環(huán)境、漏洞分析結(jié)果、風(fēng)險變化趨勢、協(xié)議安全狀態(tài)檢測結(jié)果、安全預(yù)警信息[9?10]等。
4)管理模塊與公共服務(wù)層
管理模塊與公共服務(wù)層可為其他模塊提供數(shù)據(jù)存儲服務(wù)、數(shù)據(jù)緩存服務(wù)、定時服務(wù)以及各子系統(tǒng)之間通信服務(wù)等公共基礎(chǔ)服務(wù)[11]。
在實時通信系統(tǒng)中,控制層網(wǎng)絡(luò)單元需要訪問數(shù)據(jù)中心的用戶數(shù)據(jù)、風(fēng)險數(shù)據(jù)和相關(guān)的業(yè)務(wù)控制數(shù)據(jù)來實現(xiàn)其功能,同時還需要響應(yīng)大規(guī)模、并發(fā)的實時事務(wù)請求。緩存數(shù)據(jù)庫位于數(shù)據(jù)中心和通信網(wǎng)絡(luò)單元之間,一方面,系統(tǒng)提供通信網(wǎng)絡(luò)組件所需的基本數(shù)據(jù)庫功能,使其能夠通過緩存數(shù)據(jù)庫訪問數(shù)據(jù)中心存儲的數(shù)據(jù);另一方面,根據(jù)通信業(yè)務(wù)的實時性特點,進(jìn)行實時事務(wù)處理以及大規(guī)模并發(fā)訪問控制[2]。一個通信系統(tǒng)中用戶數(shù)據(jù)分層存儲磁帶庫如圖2所示。
由圖2可知,分布式緩存數(shù)據(jù)庫為用戶屬性注冊應(yīng)用提供了數(shù)據(jù)存儲和訪問服務(wù),并與數(shù)據(jù)中心的關(guān)系數(shù)據(jù)庫綁定,實現(xiàn)數(shù)據(jù)同步緩存。
單片機(jī)冗余陣列是一種將同一數(shù)據(jù)存儲在多個硬盤不同位置的方法。輸入和輸出操作可以通過將數(shù)據(jù)放在多個硬盤驅(qū)動器上以均衡的方式重疊來提高性能。同時,由于多個硬盤驅(qū)動器增加了平均故障間隔時間,存儲冗余數(shù)據(jù)也提高了容錯能力。這是一個獨立的系統(tǒng),磁盤陣列直接連接到外部主機(jī)或通過網(wǎng)絡(luò)連接。RAID1和RAID0都存在類似的問題,即數(shù)據(jù)只能同時寫入一個磁盤,并且不能充分利用所有資源。要解決此問題,可以在磁盤映像中創(chuàng)建條帶設(shè)置,因為這種配置方法結(jié)合了條帶化和鏡像的優(yōu)點,所以稱為0+1,如圖3所示。由圖3可知,磁盤組有多個端口,可以通過不同的主機(jī)或端口連接,主機(jī)與數(shù)組不同端口連接可以提高傳輸速度。結(jié)合RAID0和RAID1技術(shù),每個磁盤都有自己的物理鏡像磁盤,允許一個或更少的磁盤故障,不影響數(shù)據(jù)可用性,并具有快速讀/寫能力[12]。
圖2 分層存儲磁帶庫
圖3 RAID0+1磁盤陣列
緩存控制模塊如圖4所示。
1.3.1 外部接口
外圍設(shè)備是應(yīng)用服務(wù)器提供統(tǒng)一的數(shù)據(jù)接口。這種設(shè)計模式可以防止后端數(shù)據(jù)緩存子系統(tǒng)的變化影響應(yīng)用服務(wù)器的業(yè)務(wù)邏輯,實現(xiàn)高集成度和低松散匹配。此外,功能實體還將數(shù)據(jù)訪問請求的格式限制為HQL[13],它還封裝了一些復(fù)雜的數(shù)據(jù)訪問請求(如分頁查詢),以方便應(yīng)用服務(wù)器。
圖4 緩存控制模塊
1.3.2 核心控制器
核心控制器為緩存模塊提供數(shù)據(jù)訪問空間,通過一致性維護(hù)模塊接收外界請求,驅(qū)動數(shù)據(jù)緩存。
1.3.3 查詢適配層
查詢適配層在核心控制器支持下實現(xiàn)以下功能:
1)篩選不合適數(shù)據(jù),如數(shù)據(jù)更新請求和經(jīng)常修改數(shù)據(jù)的查詢請求,該系統(tǒng)將提供查詢規(guī)則庫。圖書館中的每條規(guī)則都代表一種數(shù)據(jù)查詢請求類型,這種類型不適合緩存(使用正則表達(dá)式)。只有數(shù)據(jù)訪問請求與庫中的所有查詢規(guī)則不匹配,才可以進(jìn)入數(shù)據(jù)緩沖區(qū)。
2)查詢未經(jīng)處理的數(shù)據(jù),方便系統(tǒng)一致性維護(hù)。用已查詢請求模板ID和查詢參數(shù)列表的形式定義數(shù)據(jù)緩存區(qū)域的主鍵,并將所有查詢請求轉(zhuǎn)換成所需格式。
1.3.4 本地緩存控制器
本地緩存控制器應(yīng)用于本地用戶程序服務(wù)器,其主要功能是對本地數(shù)據(jù)進(jìn)行管理與監(jiān)測,保證本地緩存區(qū)域中數(shù)據(jù)的正常使用,避免數(shù)據(jù)更換過程中出現(xiàn)本地數(shù)據(jù)丟失的現(xiàn)象。
數(shù)據(jù)集的對應(yīng)維數(shù)在遞階通信網(wǎng)中進(jìn)行投影,計算其相對熵,熵值越大,說明數(shù)據(jù)在空間維度中分布越均勻,計算公式如下:
式中:X表示維度數(shù)據(jù)劃分集合;R(X)表示數(shù)據(jù)分布熵值;Havg(X)表示數(shù)據(jù)分布均勻的熵值;T表示維度數(shù)據(jù)劃分后的數(shù)據(jù)量;d(x)表示通信網(wǎng)絡(luò)數(shù)據(jù)在整個數(shù)據(jù)空間中的比例。
設(shè)置相對熵閾值區(qū)分冗余數(shù)據(jù)和非冗余數(shù)據(jù),通常情況下,相對熵值小于1的數(shù)值為非冗余數(shù)據(jù)維度閾值,而大于1的數(shù)值為冗余數(shù)據(jù)維度閾值,大于該閾值的則將被刪除。
設(shè)層次化通信網(wǎng)絡(luò)數(shù)據(jù)庫數(shù)據(jù)流為s,其組成的序列為{s1,s2,…,s n},每一項s i分為三個元組,分別是Ta,Re,Ti,分別代表層次化通信網(wǎng)絡(luò)識別碼、數(shù)據(jù)庫識別碼、檢測通信時間。在該數(shù)據(jù)流中,冗余數(shù)據(jù)集合為X,該集合中存在的數(shù)據(jù)為y,元素與該數(shù)據(jù)集合表達(dá)式為:
式中λ表示相關(guān)參數(shù)。
當(dāng)數(shù)據(jù)流中的X為局部冗余數(shù)據(jù)時,XRe=Rr(X)?y?Re;當(dāng)數(shù)據(jù)流中X為全局冗余數(shù)據(jù)時,存在數(shù)據(jù)y,YRe≠Rr(X)?y?Re。
在消除數(shù)據(jù)庫冗余數(shù)據(jù)過程中,出現(xiàn)錯誤消除的概率為:
式中:nf表示錯誤數(shù)據(jù)數(shù)量;nt表示正確數(shù)據(jù)數(shù)量。結(jié)合該公式,消除層次化通信網(wǎng)絡(luò)數(shù)據(jù)如下:
依據(jù)式(4)消除通信網(wǎng)絡(luò)冗余數(shù)據(jù)。
對緩存控制模塊進(jìn)行功能實體劃分和各功能實體責(zé)任劃分,緩存控制模塊工作流程如圖5所示。
圖5 緩存流程
圖5 顯示了緩存控制模塊初始化過程,其中主要有以下三點:
1)查詢記錄初始化:讀取數(shù)據(jù)庫相關(guān)規(guī)則,并將這些規(guī)則存放于列表之中,并導(dǎo)入數(shù)據(jù)庫等待存儲。
2)本地緩存控制器初始化:根據(jù)XML配置文件設(shè)置,文件配置主要包含本地緩存的一些相關(guān)信息,例如:緩存區(qū)域的大小、被緩存對象的最大超時時間等。
3)緩存客戶端初始化:基于XML配置文件設(shè)置,即與遠(yuǎn)程緩存通信的客戶端,主要包含關(guān)于緩存客戶端的相關(guān)信息,比如:緩存客戶端服務(wù)器的IP地址列表、請求和響應(yīng)超時時間等。
采用標(biāo)準(zhǔn)C/C++編寫,與Oracle數(shù)據(jù)庫接口的OCI編程連接,支持多種操作系統(tǒng)。在該情況下,對設(shè)計的層次化通信網(wǎng)絡(luò)備份數(shù)據(jù)庫緩存子系統(tǒng)進(jìn)行實驗驗證分析。
為了驗證系統(tǒng)性能,在實驗過程中,設(shè)計兩個不同場景,分別是不存在冗余數(shù)據(jù)場景1、存在大量冗余數(shù)據(jù)場景2。
在場景1下,分別使用文獻(xiàn)[1]方法、文獻(xiàn)[2]方法和本文方法對數(shù)據(jù)緩存效果進(jìn)行對比分析,結(jié)果如圖6所示。
圖6 場景1下三種方法緩存效果對比分析
由圖6可知,使用文獻(xiàn)[1]方法和文獻(xiàn)[2]方法緩存效果始終低于85%,而使用本文方法緩存效果始終高于85%,具有良好的緩存效果。
在場景2下,分別使用文獻(xiàn)[1]方法、文獻(xiàn)[2]方法和本文方法對數(shù)據(jù)緩存效果進(jìn)行對比分析,結(jié)果如圖7所示。
圖7 場景2下三種方法緩存效果對比分析
由圖7可知,使用文獻(xiàn)[1]方法、文獻(xiàn)[2]方法受到冗余數(shù)據(jù)影響,2路集聯(lián)方式下的數(shù)據(jù)緩存效果低于80%,而32 KB管道尺寸和64 KB管道尺寸下的數(shù)據(jù)緩存效果低于60%;使用本文方法緩存效果依然高于85%,具有良好的緩存效果。
基于空間數(shù)據(jù)維度劃分的層次化通信網(wǎng)絡(luò)備份數(shù)據(jù)庫緩存子系統(tǒng)支持大量數(shù)據(jù)存儲,存儲效果良好,并通過實驗進(jìn)行了驗證。通過消除冗余數(shù)據(jù),能夠有效地提高系統(tǒng)整體應(yīng)用性能。
為進(jìn)一步優(yōu)化系統(tǒng)結(jié)構(gòu),在大型網(wǎng)絡(luò)中采用數(shù)據(jù)緩存子系統(tǒng),某些系統(tǒng)部件可能會出現(xiàn)負(fù)載情況,影響整個子系統(tǒng)結(jié)構(gòu)。為此,在后續(xù)研究進(jìn)程中,借用分層控制理念對系統(tǒng)進(jìn)行改進(jìn),使其適應(yīng)大規(guī)模網(wǎng)絡(luò)應(yīng)用需求。