摘 要: 探討了在以服務(wù)為中心的網(wǎng)格環(huán)境中分布式查詢的原理及其實現(xiàn)機(jī)制,介紹了傳統(tǒng)的數(shù)據(jù)庫技術(shù)在網(wǎng)格環(huán)境中部署和使用的方法,提出了分布式查詢引擎需要處理的問題及目前的解決方案。
關(guān)鍵詞: 分布式查詢 網(wǎng)格服務(wù) OGSA
網(wǎng)格是近年來國際上興起的一種重要信息技術(shù)。它將高速互聯(lián)網(wǎng)、高性能計算機(jī)、大型數(shù)據(jù)庫、傳感器、遠(yuǎn)程設(shè)備等融為一體,實現(xiàn)計算資源、存儲資源、信息資源、知識資源等的全面共享,消除信息孤島和資源孤島。簡言之,傳統(tǒng)因特網(wǎng)實現(xiàn)了計算機(jī)硬件的連通;Web實現(xiàn)了網(wǎng)頁的連通;而網(wǎng)格試圖實現(xiàn)互聯(lián)網(wǎng)上所有資源的全面連通。網(wǎng)格在動態(tài)變化的多個虛擬機(jī)構(gòu)間共享資源和協(xié)同解決問題。
網(wǎng)格中的資源是分布式的,所以基于網(wǎng)格的查詢是分布式查詢。分布式查詢已被廣泛地用于數(shù)據(jù)密集型的應(yīng)用程序,用戶關(guān)心的數(shù)據(jù)存放于多個位置,而且是異構(gòu)的、分散的和自治的,因此需要提供一種集成數(shù)據(jù)資源的方法。網(wǎng)格資源的異構(gòu)特性及其網(wǎng)格環(huán)境動態(tài)變化的特點(diǎn)給分布式查詢處理技術(shù)帶來了新的挑戰(zhàn),傳統(tǒng)的技術(shù)已經(jīng)不能滿足網(wǎng)格環(huán)境的需要。網(wǎng)格的基本功能(如對遠(yuǎn)程數(shù)據(jù)和計算資源的訪問、動態(tài)資源發(fā)現(xiàn)、分配和監(jiān)控機(jī)制)為分布式查詢處理提供了技術(shù)基礎(chǔ)。網(wǎng)格服務(wù)的屬性(如注冊、元數(shù)據(jù)管理、通知機(jī)制、動態(tài)服務(wù)創(chuàng)建和生命周期管理等)與分布式查詢處理引擎的實現(xiàn)密切相關(guān)。
1 分布式查詢處理原理分析
圖1是一個典型的分布式查詢處理(Distributed Query Processing,DQP)機(jī)制的示意圖,在很多與分布式查詢處理相關(guān)的文獻(xiàn)中都可以看到。這個圖表示了二個階段的優(yōu)化,第一個階段是單節(jié)點(diǎn)優(yōu)化,第二個階段是多節(jié)點(diǎn)優(yōu)化。當(dāng)一個查詢被提交以后,首先經(jīng)過一個分析過程,分析器根據(jù)數(shù)據(jù)源的元數(shù)據(jù)信息進(jìn)行類型和一致性檢查,將分析結(jié)果表示為一棵樹。然后將這棵樹提交到邏輯優(yōu)化器產(chǎn)生一個邏輯計劃,邏輯計劃表示成另外一棵樹,它的葉子節(jié)點(diǎn)與執(zhí)行查詢所需要的操作符相對應(yīng)。通過物理優(yōu)化,邏輯計劃轉(zhuǎn)化成一個物理計劃(也是一棵樹)。因為一個邏輯操作符可能與很多個物理操作符相對應(yīng),需要使用代價模型選擇一個執(zhí)行時開銷可能最小的計劃。邏輯和物理優(yōu)化器組成了單節(jié)點(diǎn)優(yōu)化器并產(chǎn)生了一個連續(xù)計劃。在并行和分布式系統(tǒng)中,劃分和調(diào)度問題在優(yōu)化階段產(chǎn)生。為了最大程度地利用并行性,一個查詢計劃可能被劃分成多個子計劃,然后通過調(diào)度器分配機(jī)器資源。
以上介紹了普通的DQP結(jié)構(gòu),下面結(jié)合網(wǎng)格的特點(diǎn),給出在以服務(wù)為中心的網(wǎng)格環(huán)境中實現(xiàn)分布式查詢引擎(DQPE)必須滿足的一些條件。
(1)自適應(yīng)性。網(wǎng)格環(huán)境中數(shù)據(jù)源的統(tǒng)計信息是不準(zhǔn)確的,而且環(huán)境不可預(yù)測及易變,只根據(jù)編譯時得到的信息很難產(chǎn)生有效的查詢計劃。因此DQP引擎必須利用查詢運(yùn)行時的信息并根據(jù)運(yùn)行時環(huán)境的變化修改查詢計劃,也就是設(shè)計出具有自適應(yīng)性的分布式查詢引擎。
(2)進(jìn)度監(jiān)控。查詢進(jìn)度的監(jiān)控是實現(xiàn)自適應(yīng)性的基礎(chǔ)條件,并且必須解決基于OGSA(開放網(wǎng)格服務(wù)體系結(jié)構(gòu))統(tǒng)一的實現(xiàn)框架,否則無法在實際中應(yīng)用。
(3)對數(shù)據(jù)庫中數(shù)據(jù)和元數(shù)據(jù)的標(biāo)準(zhǔn)訪問。在以服務(wù)為中心的體系結(jié)構(gòu)中,數(shù)據(jù)源都被包裝為服務(wù),查詢引擎需要訪問數(shù)據(jù)和元數(shù)據(jù)以獲得查詢優(yōu)化時所需要的信息。其中OGSA-DAI的GDS[5]就提供了對數(shù)據(jù)庫中數(shù)據(jù)及其元數(shù)據(jù)的一致訪問。
2 與DQP設(shè)計相關(guān)的網(wǎng)格服務(wù)屬性
OGSA為網(wǎng)格中的資源共享提出了一個以服務(wù)為中心的框架。OGSA首先為網(wǎng)格服務(wù)提出了一套約定和行為,一個有狀態(tài)的服務(wù)實例支持可靠和安全調(diào)用、生命周期管理、通知、策略管理和信任狀管理。網(wǎng)格服務(wù)規(guī)范也定義了動態(tài)創(chuàng)建服務(wù)實例和發(fā)現(xiàn)這些實例的接口。網(wǎng)格服務(wù)能維護(hù)元數(shù)據(jù),而且支持對這些元數(shù)據(jù)的查詢。下面著重討論一些與分布式查詢處理引擎實現(xiàn)有關(guān)的網(wǎng)格服務(wù)屬性。
2.1 注冊和服務(wù)元數(shù)據(jù)
OGSA中的注冊機(jī)構(gòu)擁有一個服務(wù)句柄(GSH)列表,每一個句柄擁有與這個句柄表示的服務(wù)有關(guān)的靜態(tài)元數(shù)據(jù)信息的一部分。一旦選擇了一個句柄,就可以進(jìn)一步查詢與這個服務(wù)相關(guān)的更多的元數(shù)據(jù)。在分布式查詢處理中注冊的一個重要用途就是發(fā)現(xiàn)相關(guān)數(shù)據(jù)源的元數(shù)據(jù)。在查詢的分析和類型檢查階段,DQP引擎查閱這些數(shù)據(jù)源,根據(jù)實現(xiàn)的數(shù)據(jù)庫的模式、支持的查詢語言及其提交結(jié)果的格式等弄清功能。
注冊的另外一個用途就是DQP引擎需要發(fā)現(xiàn)監(jiān)控服務(wù),它監(jiān)控網(wǎng)格上的計算資源,并提供有如處理器的數(shù)目、內(nèi)存容量等的統(tǒng)計信息,還有像某一時刻某一節(jié)點(diǎn)處理器的負(fù)載、當(dāng)前可用的內(nèi)存、當(dāng)前的網(wǎng)絡(luò)通信量等動態(tài)信息。
2.2 動態(tài)服務(wù)創(chuàng)建和生命周期管理
一個分布式查詢處理引擎應(yīng)該能動態(tài)地利用網(wǎng)格上可用的機(jī)器分發(fā)和執(zhí)行一個個查詢子計劃,這就需要動態(tài)創(chuàng)建和部署能執(zhí)行這些子計劃的服務(wù),并且必須使服務(wù)實例提交完任務(wù)之后能撤銷,從而釋放它所利用的資源。網(wǎng)格服務(wù)規(guī)范為Factory創(chuàng)建服務(wù)實例定義了端口類型和相關(guān)的操作,撤銷操作通過顯式的destroy操作或者通過軟狀態(tài)方法實現(xiàn)。
2.3 通知機(jī)制
網(wǎng)格服務(wù)的狀態(tài)信息會隨著系統(tǒng)的運(yùn)行而發(fā)生變化。網(wǎng)格服務(wù)之間的許多交互要求動態(tài)地監(jiān)控狀態(tài)的變化。通知把一種傳統(tǒng)的發(fā)布(NotificationSource)和訂閱(NotificationSink)范式應(yīng)用于這種監(jiān)控。網(wǎng)格服務(wù)支持一個接口,以允許其他網(wǎng)格服務(wù)訂閱進(jìn)行變更。OGSA的通知接口為構(gòu)建一個進(jìn)度監(jiān)控系統(tǒng)提供了一個潛在的機(jī)制。
3 OGSA環(huán)境中的DQP實現(xiàn)機(jī)制
這一節(jié)主要介紹在基于OGSA的環(huán)境中執(zhí)行分布式查詢所涉及到的服務(wù)交互。
3.1 查詢分析和解釋
圖2中設(shè)計了四個主體元素:客戶(Client)、注冊機(jī)構(gòu)(Registry)、分析器(Parser)和網(wǎng)格數(shù)據(jù)服務(wù)GDS(Grid Data Service)。Registry是由許多組織共享的一個虛擬組織注冊機(jī)構(gòu)。在OGSA環(huán)境中,它包含了關(guān)于服務(wù)的大量信息。
從圖2中可以看出,客戶提交請求后,分析器為了獲得在類型檢查階段所需要的元數(shù)據(jù)信息,開始搜索與查詢相關(guān)的GDS。實際上,GDS句柄在DQP實例被創(chuàng)建時就已經(jīng)可以得到。分析器訪問GDS,以獲得執(zhí)行任務(wù)所需要的更多的元數(shù)據(jù)。
3.2 單節(jié)點(diǎn)優(yōu)化
網(wǎng)格資源監(jiān)控服務(wù)(GRMS)通過圖3所示的注冊機(jī)構(gòu)注冊,它部署在網(wǎng)格上并提供關(guān)于計算資源狀態(tài)的實時統(tǒng)計信息。分析器產(chǎn)生一個輸出并將其表示為一棵樹后,分布式查詢優(yōu)化器將查閱注冊機(jī)構(gòu)以獲得在查詢中涉及到的GDS的元數(shù)據(jù)、可用計算資源的信息以及當(dāng)前計算負(fù)載。計算資源信息對查詢計劃的產(chǎn)生也是必不可少的。
3.3 查詢計劃的調(diào)度和執(zhí)行
執(zhí)行者(Evaluator)是一個服務(wù),它負(fù)責(zé)子計劃的執(zhí)行。執(zhí)行者工廠(Evaluator Factory)是一個永久服務(wù),它實現(xiàn)了網(wǎng)格服務(wù)工廠端口類型(Grid Service Factory Port Type)。正如圖4所示:當(dāng)優(yōu)化器使用從GDSs和GRMSs獲得的元數(shù)據(jù)產(chǎn)生了優(yōu)化的子計劃后,它要把這些子計劃分布到各個節(jié)點(diǎn)上執(zhí)行,其關(guān)鍵是子計劃與具體的機(jī)器資源的映射。優(yōu)化器根據(jù)它獲得的元數(shù)據(jù)信息及其查詢特征把Evaluators部署在網(wǎng)格中的多個節(jié)點(diǎn)上,這就需要動態(tài)地創(chuàng)建和部署Evaluator實例。OGSI提供了動態(tài)創(chuàng)建服務(wù)實例的機(jī)制。
3.4 查詢進(jìn)度監(jiān)控
優(yōu)化器服務(wù)的內(nèi)部部件也值得注意。圖5中解決的主要問題是基于進(jìn)度監(jiān)控的自適應(yīng)行為的處理??梢允褂肙GSA通知機(jī)制創(chuàng)建一個進(jìn)度監(jiān)控框架。為了實現(xiàn)這個目標(biāo),優(yōu)化器應(yīng)當(dāng)實現(xiàn)OGSA 信息接收端口類型(Notification Sink Port type),并且應(yīng)當(dāng)有一個內(nèi)部元件監(jiān)聽Evaluators發(fā)來的消息。Evaluators充當(dāng)了一個信息源的角色。很顯然,進(jìn)度消息的內(nèi)容在這里很重要。對于這個通知消息需要有一個標(biāo)準(zhǔn)的模式,有利于優(yōu)化器產(chǎn)生有效的應(yīng)答。
4 結(jié)束語
本文主要分析討論了在OGSA環(huán)境中實現(xiàn)和部署分布式查詢的工作原理與實現(xiàn)機(jī)制。在此研究工作中需要注意:DQP訪問數(shù)據(jù)時遵循一種標(biāo)準(zhǔn)、統(tǒng)一的方式;服務(wù)實例的創(chuàng)建、動態(tài)部署和生命周期管理對DQP的運(yùn)行有重要的影響;查詢進(jìn)度監(jiān)控的設(shè)計影響整個系統(tǒng)的性能。下一步的工作是研究查詢引擎的自適應(yīng)性,深入優(yōu)化查詢服務(wù)。
參考文獻(xiàn)
1 Gounaris A,Paton N W,F(xiàn)ernandes A A A et al.Adaptive query processing:A survey.BNCOD,2002;(19)
2 Hellerstein J,F(xiàn)ranklin M,Chandrasekaran S et al.Adaptive query processing:Technology in evolution.IEEE Data Engineering Bulletin,2000;23(2)
3 Alpdemir N,Mukherjee A,Paton N W et al.Service-based distributed querying on the grid.In:Proc.of ICSOC,LNCS,Springer,2003
4 Foster I,Kesselman C,Nick J M et al.Grid Services for Distributed System Integration.IEEE Computer,2002;35(6)
5 Krause A,Sugden T,Borley A.Grid Data Service.Technical report,OGSA-DAI,2003.Document Identi_er:OGSA-DAI-USER-UG-GDS-v4.1,July,2003;6