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