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