明 哲,余 蕓,甘 杉
(南方電網(wǎng)數(shù)字電網(wǎng)研究院有限公司,廣東廣州 510000)
在分布式系統(tǒng)設(shè)計(jì)中,分布式數(shù)據(jù)采集和發(fā)布機(jī)制是一個(gè)非常重要的問題,在跨庫檢索過程中,需要基于服務(wù)設(shè)計(jì)和數(shù)據(jù)服務(wù)來解決分布式電力監(jiān)控系統(tǒng)開發(fā)中存在的問題[1]。分布式數(shù)據(jù)是負(fù)責(zé)計(jì)算機(jī)系統(tǒng)管理的相關(guān)資源,可為數(shù)據(jù)服務(wù)提供接口。將數(shù)據(jù)服務(wù)接口視為數(shù)據(jù)庫中間件擴(kuò)展端口,通過該端口能夠完成數(shù)據(jù)源采集與傳輸管理配置,使用戶完全脫離底層數(shù)據(jù)源,具有獨(dú)立性且存在唯一接口,能夠?qū)崿F(xiàn)負(fù)載平衡[2]。以往提出的分布式數(shù)據(jù)服務(wù)系統(tǒng)[3],當(dāng)數(shù)據(jù)量不大時(shí),報(bào)表查詢系統(tǒng)能根據(jù)用戶的需要,快速、方便地查詢到需要的數(shù)據(jù),并以特定的格式在報(bào)表中顯示數(shù)據(jù)。然而,隨著大量數(shù)據(jù)疊加,該服務(wù)系統(tǒng)無法滿足大量數(shù)據(jù)實(shí)時(shí)查詢需求,導(dǎo)致查詢和報(bào)表的顯示速度越來越低;在跨平臺(tái)分布式數(shù)據(jù)服務(wù)系統(tǒng)的基礎(chǔ)上,可以實(shí)現(xiàn)PC 和客戶端的多種終端接入。各種不同品牌所使用的屏幕大小和操作系統(tǒng)相同,會(huì)直接影響這些客戶機(jī)上顯示的分布式數(shù)據(jù)服務(wù)。為解決上述問題,提出了一種基于跨庫檢索的分布式數(shù)據(jù)服務(wù)系統(tǒng)。
基于跨庫檢索的分布式數(shù)據(jù)服務(wù)系統(tǒng)硬件結(jié)構(gòu)如圖1 所示。
圖1 分布式數(shù)據(jù)服務(wù)系統(tǒng)硬件結(jié)構(gòu)
由圖1可知,數(shù)據(jù)服務(wù)按需求劃分為三類:信號(hào)處理、數(shù)據(jù)分發(fā)和數(shù)據(jù)服務(wù)業(yè)務(wù)[4]。因?yàn)閿?shù)據(jù)發(fā)送方和接收方之間需要通過接口來實(shí)現(xiàn)信息的傳輸,因此,將客戶端對象部署到接口上[5-6]。接收方可以部署在網(wǎng)絡(luò)中的任意節(jié)點(diǎn)上,并且作為獨(dú)立的對象存在[7-8]。
分布式數(shù)據(jù)服務(wù)器結(jié)構(gòu)如圖2 所示。
圖2 分布式數(shù)據(jù)服務(wù)器結(jié)構(gòu)
由圖2 可知,分布式系統(tǒng)包括兩個(gè)層次:元數(shù)據(jù)分布層和獨(dú)立元數(shù)據(jù)存儲(chǔ)層。分布式數(shù)據(jù)分布層以一致散列的變量求出文件元數(shù)據(jù)的全局唯一值,基于這個(gè)唯一值,從元數(shù)據(jù)服務(wù)器集群中選擇合適的元數(shù)據(jù)服務(wù)器,并將其作為元數(shù)據(jù)集群[9-11]。
當(dāng)元數(shù)據(jù)被相應(yīng)的元數(shù)據(jù)服務(wù)器決定后,就會(huì)基于這個(gè)唯一值來重新確定自己所處的位置[12]。在位置確定之后,這些元數(shù)據(jù)將被存儲(chǔ)到本地存儲(chǔ)引擎中,為加速存儲(chǔ),設(shè)計(jì)了一種新型的單主機(jī)底層存儲(chǔ)引擎對單機(jī)底層存儲(chǔ)層進(jìn)行優(yōu)化,采用多路存儲(chǔ)方式,加快元數(shù)據(jù)存儲(chǔ)速度,并在存儲(chǔ)引擎上添加用戶名,為元數(shù)據(jù)提供基礎(chǔ)存儲(chǔ)服務(wù)。在整個(gè)集群環(huán)境中,所有元數(shù)據(jù)服務(wù)器通過各種分布式策略,有效地保證了整個(gè)分布系統(tǒng)的一致性和可靠性,充分發(fā)揮了可擴(kuò)展性的優(yōu)良性能[13]。
數(shù)據(jù)存儲(chǔ)服務(wù)器需要通過混合插件擴(kuò)展,提供多拷貝、強(qiáng)一致性的密鑰存儲(chǔ)方案,同時(shí)實(shí)現(xiàn)通道的網(wǎng)絡(luò)播放功能,具有較強(qiáng)的實(shí)用性[14]。在數(shù)據(jù)處理方面,存儲(chǔ)服務(wù)器可靠性高,雙控處理器可實(shí)現(xiàn)主控與分控操作,在主機(jī)運(yùn)行時(shí),子控會(huì)自動(dòng)代替主機(jī),保證數(shù)據(jù)不丟失,充分保障分布式數(shù)據(jù)存儲(chǔ)的安全[15]。
將路由服務(wù)器信息存儲(chǔ)到客戶機(jī)中,方便客戶進(jìn)行數(shù)據(jù)存取。根據(jù)數(shù)據(jù)遷移情況,連接監(jiān)測單元服務(wù)器集群,保證所有負(fù)載節(jié)點(diǎn)均在集群上。此外,該路由服務(wù)器還負(fù)責(zé)生成、修改和固化系統(tǒng)路線,具有多樣性功能。
查找客戶機(jī)上的元數(shù)據(jù)信息,如果找不到,就不能向客戶端反饋;如果找到了,則首先對客戶端的服務(wù)數(shù)據(jù)進(jìn)行分析,然后檢索傳輸?shù)臄?shù)據(jù)內(nèi)容,如果沒有檢索到,等待客戶端自動(dòng)恢復(fù)[16]。在客戶接收到全部內(nèi)容后,要加快信息的存儲(chǔ)速度,待所有信息成功傳送后,客戶獲得元數(shù)據(jù)集,其中包含文件名、數(shù)據(jù)大小等信息。
根據(jù)跨庫檢索資源對象分布異構(gòu)數(shù)據(jù)源的特點(diǎn),對異構(gòu)數(shù)據(jù)進(jìn)行融合,為不同的用戶提供獨(dú)立的檢索接口,使用戶能夠通過入口向數(shù)據(jù)處理部分提交檢索條件。該部分檢索請求可以轉(zhuǎn)換成所有接受者能夠接收的數(shù)據(jù)格式,等待檢索處理完成后,將檢索結(jié)果返回給檢索引擎,方便用戶瀏覽所有信息。該系統(tǒng)軟件部分以跨庫檢索為基礎(chǔ),根據(jù)不同用戶輸入不同的搜索條件,通過將條件轉(zhuǎn)換成適合各數(shù)據(jù)庫的搜索命令,實(shí)現(xiàn)多個(gè)數(shù)據(jù)庫的并行搜索。
使用跨庫檢索模式,檢索知識(shí)庫和第三方資源,并將檢索結(jié)果存放到本地?cái)?shù)據(jù)庫中。這種處理方式可以使用戶盡可能地從本地?cái)?shù)據(jù)庫中提取檢索到的數(shù)據(jù),從而大大提高了檢索的效率和速度。檢索調(diào)度處理流程如圖3 所示。
圖3 跨庫檢索調(diào)度處理流程
由圖3 可知,當(dāng)用戶檢索學(xué)習(xí)資源時(shí),系統(tǒng)選擇檢索模式后,向數(shù)據(jù)處理層提交檢索請求,該請求用于不同資源庫并行處理指令。
為了縮短分布式數(shù)據(jù)存儲(chǔ)時(shí)間,需分析分布式數(shù)據(jù)活躍度,其公式為:
式中,tc表示分布式數(shù)據(jù)查詢時(shí)間;t表示分布式數(shù)據(jù)當(dāng)前查詢時(shí)間;nt表示分布式數(shù)據(jù)被訪問次數(shù)。
為了區(qū)分活躍和非活躍分布式數(shù)據(jù),設(shè)分布式數(shù)據(jù)活躍度閾值為Qd,活躍和非活躍分布式數(shù)據(jù)變化范圍如下所示:
式中,當(dāng)f(Q,Qd)<-1 時(shí),分布式數(shù)據(jù)為非活躍數(shù)據(jù);當(dāng)f(Q,Qd)>1 時(shí),分布式數(shù)據(jù)為活躍數(shù)據(jù)。非活躍數(shù)據(jù)具有穩(wěn)定性,不會(huì)影響數(shù)據(jù)存儲(chǔ)服務(wù)。而活躍數(shù)據(jù)不穩(wěn)定,分布式集群管理中,其最基本的功能是服務(wù)設(shè)備的添加和刪除,或服務(wù)設(shè)備宕機(jī)后從集群退出。采用常用的哈希算法計(jì)算公式為:
式中,N代表集群中機(jī)器數(shù)量。
在原有的數(shù)據(jù)集群中加入新的機(jī)器,或者舊的機(jī)器脫離群集之后,許多原始的數(shù)據(jù)都不能正確地根據(jù)哈希函數(shù)生成MNodeKey,因?yàn)槠溥`背了單調(diào)性原理,許多數(shù)據(jù)無法從哈希函數(shù)中提取。針對這一問題,提出了一種一致性哈希算法,其結(jié)構(gòu)如圖4 所示。
圖4 一致性哈希算法結(jié)構(gòu)
如圖4 所示,在同一個(gè)哈??臻g中,按照順時(shí)針旋轉(zhuǎn)方式,將元數(shù)據(jù)1 直接存儲(chǔ)到服務(wù)器Node1 中,元數(shù)據(jù)3 直接存儲(chǔ)到服務(wù)器Node2 中。在分布式數(shù)據(jù)服務(wù)部署環(huán)境中,利用元數(shù)據(jù)的散列值,快速地將對象定位到適當(dāng)?shù)臋C(jī)器上,從而找到存儲(chǔ)對象的真實(shí)位置。
實(shí)驗(yàn)測試用例具體內(nèi)容如表1 所示。
表1 測試用例
根據(jù)表1 的內(nèi)容,系統(tǒng)底層部分借助跨庫檢索平臺(tái)檢索想要的數(shù)據(jù),進(jìn)而呈現(xiàn)在終端設(shè)備上。按照測試用例操作流程,數(shù)據(jù)檢索初始狀態(tài)界面如圖5所示。
圖5 數(shù)據(jù)檢索初始狀態(tài)界面
由圖5 可知,在檢索過程中,跨庫檢索是否完成,會(huì)在界面處給出相應(yīng)提示。如果跨庫檢索已經(jīng)完成,那么系統(tǒng)將會(huì)給出未完成信號(hào);反之,則會(huì)顯示跨庫檢索正在進(jìn)行中。
分別使用報(bào)表查詢系統(tǒng)、跨平臺(tái)系統(tǒng)和基于跨庫檢索服務(wù)系統(tǒng),對系統(tǒng)的檢索和存儲(chǔ)服務(wù)功能進(jìn)行測試。
3.2.1 系統(tǒng)檢索服務(wù)功能測試
將三種系統(tǒng)的數(shù)據(jù)檢索精準(zhǔn)度進(jìn)行對比分析,如表2 所示。
表2 三種系統(tǒng)數(shù)據(jù)檢索精準(zhǔn)度對比分析
由表2 可知,使用報(bào)表查詢系統(tǒng)最高檢索精準(zhǔn)度為0.95,最低檢索精準(zhǔn)度為0.70;使用跨平臺(tái)系統(tǒng)最高檢索精準(zhǔn)度為0.96,最低檢索精準(zhǔn)度為0.80;使用基于跨庫檢索服務(wù)系統(tǒng)最高檢索精準(zhǔn)度為1.0,最低檢索精準(zhǔn)度為0.99。由此可知,使用基于跨庫檢索服務(wù)系統(tǒng)具有精準(zhǔn)檢索服務(wù)效果。
3.2.2 系統(tǒng)存儲(chǔ)服務(wù)功能測試
啟動(dòng)4 臺(tái)、16 臺(tái)和64 臺(tái)分布式數(shù)據(jù)服務(wù)器,其存儲(chǔ)數(shù)據(jù)量存儲(chǔ)范圍分別為[200,250]、[200,1 300]、[200,5 000],基于此,測試不同系統(tǒng)下的存儲(chǔ)服務(wù)功能,如圖6 所示。
圖6 三種系統(tǒng)存儲(chǔ)數(shù)據(jù)量對比分析
由圖6 可知,使用報(bào)表查詢系統(tǒng)啟動(dòng)4 臺(tái)、16 臺(tái)和64 臺(tái)的分布式數(shù)據(jù)服務(wù)器,其存儲(chǔ)數(shù)據(jù)量存儲(chǔ)范圍分別為[200,300]、[200,2 100]、[350,4 500];使用跨平臺(tái)系統(tǒng)啟動(dòng)4 臺(tái)、16 臺(tái)和64 臺(tái)的分布式數(shù)據(jù)服務(wù)器,其存儲(chǔ)數(shù)據(jù)量存儲(chǔ)范圍分別為[800,2 000]、[800,2 800]、[1 000,4 700];使用基于跨庫檢索服務(wù)系統(tǒng)啟動(dòng)4 臺(tái)、16 臺(tái)和64 臺(tái)的分布式數(shù)據(jù)服務(wù)器,其存儲(chǔ)數(shù)據(jù)量存儲(chǔ)范圍分別為[200,250]、[200,1 300]、[200,5 000],與實(shí)際存儲(chǔ)范圍一致,說明使用該方法存儲(chǔ)服務(wù)功能效果較好。
基于分布式數(shù)據(jù)服務(wù)的跨數(shù)據(jù)庫檢索系統(tǒng),實(shí)現(xiàn)分布式數(shù)據(jù)服務(wù)的透明化。用戶無需登錄檢索系統(tǒng)就可實(shí)現(xiàn)資源高效檢索,并由實(shí)驗(yàn)驗(yàn)證了數(shù)據(jù)檢索精準(zhǔn)度較高、系統(tǒng)存儲(chǔ)服務(wù)效果好,有效提高了系統(tǒng)檢索效率。當(dāng)前跨數(shù)據(jù)庫檢索系統(tǒng)的基本研發(fā)工作較為完善,實(shí)現(xiàn)了對各種學(xué)習(xí)資源的檢索。未來研究工作需要針對以下方面進(jìn)行:目前系統(tǒng)不能根據(jù)學(xué)習(xí)者的個(gè)人偏好定制結(jié)果界面,應(yīng)設(shè)計(jì)出適合不同用戶的效果呈現(xiàn)界面,讓學(xué)習(xí)者可以選擇個(gè)性化呈現(xiàn)結(jié)果所需要的資源。