一种网格数据库连接查询自适应处理方法

文档序号:6584273阅读:738来源:国知局

专利名称::一种网格数据库连接查询自适应处理方法
技术领域
:本发明涉及数据库技术中的一种网格数据库连接查询自适应处理方法,属于网格数据库连接查询
技术领域

背景技术
:网格是下一代Internet上的计算平台,它的核心任务是管理分布在Internet广域环境中各种类型的软硬件资源,为基于Internet的分布式应用提供一个统一的、虚拟的共享资源计算平台。作为网格计算模型的一个重要组成部分,网格上的数据管理一直以来是网格研究的一个热点。目前网格数据管理的研究对象主要集中在基于文件的信息资源,很少涉及数据库资源,然而,来自于科学和商业领域的大量网格应用迫切需要数据库系统的支持,因此如何将数据库资源并入现有的网格架构,满足更加广泛的网格应用数据管理需求,已经成为一项亟待解决的新课题。网格数据库是将数据库技术和网格技术相结合而形成的一个新的研究内容。目前国内外的研究主要集中在网格环境下数据库的访问和集成领域,即如何设计和实现网格应用与数据库系统的统一接口。用户能够以数据库无关的方式统一访问和管理存储在不同数据库中的数据,但对网格环境下分布式查询的支持很少。随着符合GGF(GlobalGridForum)标准的Globus工具包[RamanV,NarangI,CroneC,etal.ServicesforDataAccessanDataProcessingonGrids.In:GGFDocumentGFD.14,GlobalGridForum,2003]以及网格数据库接口标准OGSA-DAI(OpenGridServicesArchitecture-DataAccessandIntegration)[AnjomshoaaA,etal.TheDesignandImplementationofGridDatabaseServicesin0GSA-DAI.In-ProceedingsofUKe_ScienceAllHandsMeeting,Nottingham,S印tember2004]的发展,越来越多的研究关注网格数据库的查询处理。然而,与传统分布式数据库不同,在网格数据库中,分布式查询操作是进行在动态组成的虚拟数据库之上,每个节点上的数据库都只包含所需信息的一部分,查询操作还涉及到数据库异构性、通信开销等问题,这些都给网格环境下的分布式查询处理带来了新的困难。同时,在网格数据库的查询处理中还存在着局部代价参数不可得、不精确、不完全或变化的情况,使得传统的查询优化技术不能满足网格数据库的查询优化要求,需要采用适应性的查询处理AQP(adaptivequeryprocessing),即在查询执行期间,在网格环境参数发生变化的情况下,对查询计划中尚未进行的子查询进行适应性的动态优化调整,以保证最好的效率。经查询国内外文献和专利,当前有关网格数据库查询处理的研究主要有文献[AlpdemirMN,MukherjeeA,PatonNW,etal.Service-baseddistributedqueryingonthegrid.In:ICSOC2003,FirstInternationalConference,Trento,Italy,Springer,December2003.467482]中提至lj的0GSA-DQP(OpenGridServicesArchitecture-DistributedQueryProcessing)是英国MyGrid项目组在OGSA-DAI的基础上开发的分布式查询处理系统。支持异构数据源的集成,并利用并行数据库技术实现复杂查询的隐性并行化。文献[ZhouYongluan,OoiBengChin,TanKian-Lee,etal.Anadaptabledistributedqueryprocessingarchitecture.Data&KnowledgeEngineering,To即pear,2005]中提出的SwAP研究了网格环境参数的动态获取方法,通过设置Eddy进行监控,取得相关的工作负载、传输速率等信息。文献[DailH,SievertO,BermanF,etal.Schedulinginthegridapplicationdevelopmentsoftwareproject.In:Gridresourcemanagement:stateoftheartandfuturetrends.KluwerAcademicPublishersGroup,2003]中提出的GrADS以及文献[ThainD,Ta皿enbaumT,LivnyM.Condorandthegrid.In:GridComputing:MakingtheGlobalInfrastructureaReality,JohnWiley&Sonslnc,2003]中提出的Condor都采用基于DAG的模型描述子查询计划,支持子查询之间的前驱、后继的依赖关系以及子查询执行的消耗描述。文献[BlytheJJ,DeelmanS,GilE,etal.Taskschedulingstrategiesforworkflow_basedapplicationsingrids.ClusterComputingandtheGrid,2005.IEEEinternationalSymposiumonMay2005,2:759767]对子查询在网格中的节点分配优化进行了研究。采用min-min调度算法,考虑局部分配和全局执行消耗的影响,将子查询按照计算任务的处理模式进行启发式优化调度。在上述石开究中,0GSA-DQP的查询优化是基于Polar*[SmithJ,SampaioS,WatsonP.Thedesign,implementationandevaluationofanodmgCompliant,parallelobjectdatabaseserver.DistributedandParallelDatabases,2004,16(3):275319]并行数据库的静态查询处理引擎实现的,没有充分考虑网格环境的动态特性。而GrADS、Condor以及min-min调度算法将子查询按照网格中计算任务的处理模式进行建模和适应性的优化调度,具有以下不足(1)子查询和单纯的计算任务有所不同。计算任务主要使用节点的内存、CPU等资源以完成计算,只要能够满足计算需求,可以将计算任务调度到任何一个节点上执行;而子查询主要使用节点数据库中的数据资源,子查询与节点之间存在着数据关联关系,因此子查询不能像计算任务一样被任意调度,否则只会降低效率。min-min调度算法则忽略了子查询与执行节点之间的数据关联关系。(2)计算任务通常功能性较强,彼此之间相对独立,数据依赖关系简单;而子查询本身由全局查询分解而成,彼此之间的数据依赖关系紧密,存在着丰富的关联关系。GrADS和Condor中的DAG模型式,对子查询之间的相互关系描述能力不够强,不支持子查询之间的顺序、并发以及其它的关联关系描述,因此,对子查询的自适应性支持力度不足。
发明内容本发明针对
背景技术
中网格数据库查询处理技术存在的缺陷,在充分考虑网格环境动态特性的基础上,提出一种网格数据库连接查询自适应处理方法。本发明的网格数据库连接查询自适应处理方法,依次包括抽样计算方法、最优执行路径获取方法及查询流水线动态调整方法,具体内容如下(—)抽样计算方法该抽样计算方法基于如下代价模型公式5CW(尸)maxiW(附(/—l))x丄—1))><邪柳)+曹(&(,)A(,+d)7W(附(0)x丄m(O)—①,Nt(O)=0,s(O)=s(l),s(k+l)=s(k),BW(S丄,S》=,其中P为查询计划;i为连接查询涉及的网格节点编号;k为连接查询涉及的网格节点总数;Nt表示处理阶段的查询选择度;BW表示网格节点之间的网络带宽;L为单个元组的存储空间大小;PC表示网格节点对单个输入元组的连接处理代价;S表示网格节点;S(O为映射函数,表示把给定的位置映射到相应关系表所处网格节点的id;m()为映射函数,表示把给定的位置映射到连接栅格中的对应结点标识,即m(position)—T。(1)T。(2)...T。(p。siti。n);o()为映射函数,表示把给定的位置映射到相应的关系表id;①表示空值;T表示关系表,各关系表的位置为其在查询计划P中的处理次序;下同;抽样计算方法的步骤如下(1)获取抽样信息,包括当前执行路径上的各处理阶段的查询选择度Nt、各网格节点对单个输入元组的连接处理代价PC及各网格节点之间的网络带宽BW;(2)根据步骤(1)得到的抽样信息,更新各网格节点对单个输入元组的连接处理代价PC;(3)根据步骤(1)得到的抽样信息,更新各网格节点之间的网络带宽BW;(4)根据步骤(1)得到的抽样信息,更新连接栅格中各个处理阶段的查询选择度Nt:对于当前执行路径上的Nt值,则直接获得更新;对于不在当前执行路径上的Nt值,按以下步骤获得更新①设置布尔型变量flag为FALSE;②遍历连接栅格中的每个结点,当当前访问的结点及其所依赖的各结点的Nt值中有且仅有一个未被更新时,则依照元组贡献依赖表相应公式计算更新该Nt值,并将布尔型变量flag置为TRUE;③当布尔型变量flag为TRUE时,转到步骤①继续执行;当所有结点都访问完,布尔型变量flag为FALSE时,则更新结束;(5)根据步骤(2)、(3)、(4)得到的更新后的Nt值、BW值和PC值,依据代价模型公式对连接栅格中各候选查询计划中各阶段的处理代价进行重新计算;(二)最优执行路径获取方法最优执行路径,即最小最大流路径,亦即连接处理代价最小的执行路径,经过方法(一)的计算后,连接栅格构成了一个具有权值的连通图,记为D(x,y);输入连通图D(x,y)输出从x到y之间的一条最小最大流路径,X为起始结点,y为终结点步骤如下(1)将各个结点的min值初始化为①;(2)新建一个空的队列Q,将起始结点x放入队列Q,并给起始结点x增加标号(_,O),且置min(x)=0;(3)当队列Q为空,转到步骤(7);当队列Q非空,取出队列Q中的首个元素u;(4)当u二y,转到步骤(5);当u#y,依次处理u的上层结点t:当t的最后一个下层结点不为U,转到步骤(5);当t的最后一个下层结点为U,将t加入队列Q;(5)当u二x,转到步骤(3);当u#x,依次处理u的下层结点v:当w(u,v)>min(v),置m=w(u,v);当w(u,v)《min(v),置m=min(v);函数w()表示取权值;(6)给u增加标号(v,m),当m<min(u),置min(u)=m,转到步骤(3);(7)从终结点y开始依次向下寻找标号最小的结点直至起始结点x,则这条路径即为所要寻找的最优执行路径;(三)查询流水线动态调整方法若方法(二)获得的最优执行路径不是当前执行路径,则按如下步骤进行查询流水线动态调整(1)查找当前执行路径与方法(二)得到的最优执行路径在前部分是否存在公共流水管道,即从起始处理节点开始依次经过的网格节点是否都相同,并以此确定流水线阻断的位置若存在公共流水管道,则流水线阻断的位置为公共流水管道的最后一个网格节点处;若不存在公共流水管道,则流水线阻断的位置为起始处理节点处;(2)在步骤(1)得到的流水线阻断位置断开流水,直至上层流水全部完成;(3)依据方法(二)得到的最优执行路径,在流水线阻断位置依次调整流水的输入路径,逐步重新建立起处理流水线。本发明是一种基于流水线并行处理的网格数据库连接查询自适应处理方法,该方法充分考虑了网格数据库所处网格环境的动态特性,对查询处理代价的估算精度高,查询计划的动态调整及时准确,可以有效提高查询处理的效率。通过该方法在网格数据库原型系统NHGridDB中的实现及在TPC-D数据集上的相应实验(实验采用的连接查询来自于IBM用于DB2UDB优化测试的用例),结果表明本发明方法的处理效率较静态流水线处理方法提高了15%30%。图1是本发明的方法流程图。图2(0)是连接查询实例的关系表连接关系示意图;图2(1)(3)是以1\为起始表的候选查询计划示意图。图3是连接查询实例以1\为起始表的连接栅格示意图。图4是查询选择度Nt的抽样计算实例示意图。图5是最优执行路径获取方法的执行过程实例示意图。图6是查询流水线动态调整实例示意图。图7是在调整因子|3取不同值时,本发明方法较静态流水线处理方法处理效率提高情况的实验示意图。图8是在数据集SF值取不同值时,本发明方法较静态流水线处理方法处理效率提高情况的实验示意图。具体实施例方式在网格数据库中,用户提交的查询通常是连接查询,且连接查询涉及的多个关系表被存放在不同的节点上。考虑到网格环境中各个节点是独立工作的,为了减少查询处理7的时间,采用流水线方式进行并行处理,即按照某个处理顺序(查询执行计划),起始节点不断地将该节点的数据发送至其上层节点;上层节点将接收到的数据与本地数据做连接处理,并将所得处理结果再不断地向其上层节点发送。以上过程持续至最上层节点,最上层节点直接将处理结果返回给用户。对于网格数据库中的连接查询,通常存在多个候选查询计划。为了在查询处理过程中给查询计划的自适应调整提供依据,需要计算比较各候选查询计划基于流水线并行处理的代价,那么,就需要考虑节点之间传送中间处理结果的通信代价以及节点上进行连接操作的处理代价。对于节点之间传送中间处理结果的通信代价,必须对查询执行计划中各阶段的查询选择度进行估计,我们参照文献[MishraC,KoudasN.JoinReorderingbyJoinSimulation.In-Proceedingsofthe2009IEEEInternationalConferenceonDataEngineering.Washington,DC,USA:IEEEComputerSociety,2009.493504]中提出的查询选择度估计方法,引入栅格(lattice)和元组贡献依赖表(TupleContributionD印endencyTables)的概念,为每个连接查询建立相应的连接栅格,然后根据栅格推出元组贡献依赖表,即查询选择度的估计公式。连接栅格包含了给定起始表情况下的所有候选查询计划。由于网格环境下各节点是独立并行工作的,因此,各候选查询计划基于流水线并行处理的代价是查询执行路径中各流水阶段处理代价的最大值,即所谓的"瓶颈"。各流水阶段的处理代价包括对输入元组的接收代价、对输入元组的处理代价及将结果元组向上层流水发送的代价。根据图1,本发明的网格数据库连接查询自适应处理方法依次包括抽样计算方法、最优执行路径获取方法及查询流水线动态调整方法,具体内容如下(—)抽样计算方法该抽样计算方法基于如下代价模型公式max<formula>formulaseeoriginaldocumentpage8</formula>m(0)—①,Nt(O)=0,s(0)=s(l),s(k+l)=s(k),BW(S丄,S》=,其中P为查询计划;i为连接查询涉及的网格节点编号;k为连接查询涉及的网格节点总数;Nt表示处理阶段的查询选择度;BW表示网格节点之间的网络带宽,如节点Si和Sj之间的网络带宽记为BW(Si,Sj);L为单个元组的存储空间大小;PC表示网格节点对单个输入元组的连接处理代价,如节点Si处理单个输入元组的连接处理代价记为PC(S》;S表示网格节点;S(O为映射函数,表示把给定的位置映射到相应关系表所处网格节点的id;m()为映射函数,表示把给定的位置映射到连接栅格中的对应结点标识,即imposition)—T。(1)T。(2)...T。(p。siti。n),这里关系表排列不分先后;o()为映射函数,表示把给定的位置映射到相应的关系表id,查询计划P则表示为相应的查询计划执行路径,即关系表的执行序列T。(1),T。(2),...,T。(k);①表示空值;栅格即为文献[MishraC,KoudasN.JoinReorderingbyjoinSimulation.In-Proceedingsofthe2009IEEEInternationalConferenceonDataEngineering.Washington,DC,USA:IEEEComputerSociety,2009.493504]中lattice的概念;T表示关系表,各关系表的位置为其在查询计划P中的处理次序,起始表的位置为l,依次往上累加;下同;抽样计算方法的步骤如下(1)获取抽样信息,包括当前执行路径上的各处理阶段的查询选择度Nt、各网格节点对单个输入元组的连接处理代价PC及各网格节点之间的网络带宽BW;(2)根据步骤(1)得到的抽样信息,更新各网格节点对单个输入元组的连接处理代价PC;各节点PC值可以认为与当前获取的该节点的PC值相同或做微小波动,这是因为在流水线处理粒度(各网格节点在进行连接处理时一次性处理的输入元组数)一定的情况下,PC值主要与该节点上参与连接的关系表的大小有关,而该节点上参与连接的关系表没变;(3)根据步骤(1)得到的抽样信息,更新各网格节点之间的网络带宽BW;如果两网格节点之间的BW值不在获取的抽样信息中,可以通过请求获得;(4)根据步骤(1)得到的抽样信息,更新连接栅格中各个处理阶段的查询选择度Nt:对于当前执行路径上的Nt值,则直接获得更新;对于不在当前执行路径上的Nt值,按以下步骤获得更新①设置布尔型变量flag为FALSE;②遍历连接栅格中的每个结点,当当前访问的结点及其所依赖的各结点的Nt值中有且仅有一个未被更新时,则依照元组贡献依赖表相应公式计算更新该Nt值,并将布尔型变量flag置为TRUE;所述元组贡献依赖表艮卩为文献[MishraC,KoudasN.JoinReorderingbyJoinSimulation.In-Proceedingsofthe2009IEEEInternationalConferenceonDataEngineering.Washington,DC,USA:IEEEComputerSociety,2009.493504]中TupleContributionDependencyTables的概念;③当布尔型变量flag为TRUE时,转到步骤①继续执行;当所有结点都访问完,布尔型变量flag为FALSE时,则更新结束;(5)根据步骤(2)、(3)、(4)得到的更新后的Nt值、BW值和PC值,依据代价模型公式对连接栅格中各候选查询计划中各阶段的处理代价进行重新计算;[OO73](二)最优执行路径获取方法(标号算法)最优执行路径,即最小最大流路径,亦即连接处理代价最小的执行路径,经过方法(一)抽样计算过程后,我们得到了连接栅格中各候选查询计划各阶段的处理代价,下面需要寻找一条效率最优的执行路径,而此时的连接栅格构成了一个具有权值的简单连通图,将该连通图记为D(x,y);输入连通图D(x,y)输出从x到y之间的一条最小最大流路径,X为起始结点,y为终结点步骤如下(1)将各个结点的min值初始化为①;(2)新建一个空的队列Q,将起始结点x放入队列Q,并给起始结点x增加标号(_,O),且置min(x)=0;(3)当队列Q为空,转到步骤(7);当队列Q非空,取出队列Q中的首个元素u;(4)当u二y,转到步骤(5);当u^y,依次处理u的上层结点t:当t的最后一个下层结点不为U,转到步骤(5);当f的最后一个下层结点为U,将t加入队列Q;(5)当u=x,转到步骤(3);当u#x,依次处理u的下层结点v:当w(u,v)>min(v),置m=w(u,v);当w(u,v)《min(v),置m=in(v);函数w()表示取权值,w(u,v)表示相邻结点u、v之间的处理代价;(6)给u增加标号(v,m),当m<min(u),置min(u)=m,转到步骤(3);(7)从终结点y开始依次向下寻找标号最小的结点直至起始结点x,则这条路径即为所要寻找的最优执行路径;(三)查询流水线动态调整方法,在方法(二)获取到当前最优执行路径后,如果得到的最优执行路径不是当前正在执行的路径,那么就需要对查询计划进行调整,步骤如下(1)查找当前执行路径与方法(二)得到的最优执行路径在前部分是否存在公共流水管道,即从起始处理节点开始依次经过的网格节点是否都相同,并以此确定流水线阻断的位置若存在公共流水管道,则流水线阻断的位置为公共流水管道的最后一个网格节点处;若不存在公共流水管道,则流水线阻断的位置为起始处理节点处;(2)在步骤(1)得到的流水线阻断位置断开流水,直至上层流水全部完成;(3)依据方法(二)得到的最优执行路径,在流水线阻断位置依次调整流水的输入路径,逐步重新建立起处理流水线。显然,流水线的阻断和重新建立需要消耗额外的代价,因此在查询处理的过程中不能频繁地调整流水,因此,设定调整因子13,当存在其他执行路径比当前执行路径的效率更优且偏差大于等于P时,再进行查询流水线的调整。调整因子P需要通过数据集实验获得。图7所示是在调整因子|3取不同值时,本发明方法较静态流水线处理方法处理效率提高情况的实验示意图;图8所示是在数据集SF值取不同值时,本发明方法较静态流水线处理方法处理效率提高情况的实验示意图。为方便描述,我们假定有如下连接查询实例JQ:SELECT1\.a,T2.b,T3.cFROM1\,T2,T3,T4WHERE1\.a=T2.aANDT2.b=T3.bAND1\.c=T4.c,关系表连接关系如图2(0)所示,关系表VT2、T3、T4分别存储于节点S2、S3、S4上,则以1\表为起始表的候选查询计划如图2(1)(3)所示,进而可以得到如图3所示的连接栅格,相应的元组贡献依赖表如下Nt1NtOvr2)It(T/T2)e(t(T;)IX]T2)1NtOvr4)ItCTjtxiXj麵1\1^3)|1肌)[><]13|Nt(l\T2T3)St(T,T2)NtB(HT3)Nt(1\T2T4)Nt(1\T2)XNt(1\T4)Nt(1\T2T3T4)Nt(1\T2T3)XNt(1\T4)在图3所示的连接栅格中任意选择其中一条路径作为执行路径,即如图4加黑部分所示的抽样实例。对于图4(1),在执行过程中可以抽样获得NtOVr2)、Nt(1\T2T3)、Nt(1\T2T3T4),那么,依据上述的元组贡献依赖表,Nt(1\T2T3T4)除以Nt(1\T2T3)则为Nt(1\T4),进而Nt(1\T4)乘以Nt(1\T2)则可以得到Nt(1\T2T4);同理,对于图4(2),在执行过程中可以抽样获得Nt(n)、Nt(m)、Ntdm),那么Nt(m)除以Nt(n)则为Nt(1\T4),进而Nt(1\T2T3T4)除以Nt(1\T4)则可以得到Nt(1\T2T3)。整个抽样计算过程没有消耗额外的连接处理代价,因此对查询处理的效率没有影响。下面以图5来说明本发明中最优执行路径的获取方法(标号算法)如图5(1)所示连通图D(a,f),其中a为起始结点,f为结束结点,线段之间的数值为通过抽样计算所得的相应查询计划各阶段的处理代价。图5(2)给出了针对图5(1)所示情况采用标号算法获取最优执行路径的过程以及执行结果,图中加黑部分即为得到的最优执行路径a-b-d-f。下面以图6所示的例子来说明查询流水线的动态调整方法图6(1)相对图5(1)的不同在于e-f边的权值由11变为了9,而此时的最优路径也因此发生了变化(图6(2)中加黑部分a-b-e-f)。可以看出,新得到的最优路径与当前正在执行的路径在前部分存在公共的流水管道a-b段(图6(2)中加黑加粗部分)。因此,不需要完全断开整个流水线,可以从b处断开流水直至上层b-d-f流水完成,然后从b处向上依次重新调整流水的输入路径,再次逐步建立起处理流水线。像这样采用流水线的复用技术,可以节省复用部分流水线因阻断和重新建立所消耗的额外代价,当然,获取到的最优路径与当前正在执行的路径也可能不存在可复用部分,那么此时查询计划的调整就需要断开整个流水线,即从起始节点处断开流水。权利要求一种网格数据库连接查询自适应处理方法,其特征在于依次包括抽样计算方法、最优执行路径获取方法及查询流水线动态调整方法,具体内容如下(一)抽样计算方法该抽样计算方法基于如下代价模型公式<mrow><mi>Cost</mi><mrow><mo>(</mo><mi>P</mi><mo>)</mo></mrow><mo>=</mo><munder><mi>max</mi><mrow><mn>1</mn><mo>&le;</mo><mi>i</mi><mo>&le;</mo><mi>k</mi></mrow></munder><mo>[</mo><mfrac><mrow><mi>Nt</mi><mrow><mo>(</mo><mi>m</mi><mrow><mo>(</mo><mi>i</mi><mo>-</mo><mn>1</mn><mo>)</mo></mrow><mo>)</mo></mrow><mo>&times;</mo><mi>L</mi></mrow><mrow><mi>BW</mi><mrow><mo>(</mo><msub><mi>S</mi><mrow><mi>s</mi><mrow><mo>(</mo><mi>i</mi><mo>-</mo><mn>1</mn><mo>)</mo></mrow></mrow></msub><mo>,</mo><msub><mi>S</mi><mrow><mi>s</mi><mrow><mo>(</mo><mi>i</mi><mo>)</mo></mrow></mrow></msub><mo>)</mo></mrow></mrow></mfrac><mo>+</mo><mi>Nt</mi><mrow><mo>(</mo><mi>m</mi><mrow><mo>(</mo><mi>i</mi><mo>-</mo><mn>1</mn><mo>)</mo></mrow><mo>)</mo></mrow><mo>&times;</mo><mi>PC</mi><mrow><mo>(</mo><msub><mi>S</mi><mrow><mi>s</mi><mrow><mo>(</mo><mi>i</mi><mo>)</mo></mrow></mrow></msub><mo>)</mo></mrow><mo>+</mo><mfrac><mrow><mi>Nt</mi><mrow><mo>(</mo><mi>m</mi><mrow><mo>(</mo><mi>i</mi><mo>)</mo></mrow><mo>)</mo></mrow><mo>&times;</mo><mi>L</mi></mrow><mrow><mi>BW</mi><mrow><mo>(</mo><msub><mi>S</mi><mrow><mi>s</mi><mrow><mo>(</mo><mi>i</mi><mo>)</mo></mrow></mrow></msub><mo>,</mo><msub><mi>S</mi><mrow><mi>s</mi><mrow><mo>(</mo><mi>i</mi><mo>+</mo><mn>1</mn><mo>)</mo></mrow></mrow></msub><mo>)</mo></mrow></mrow></mfrac><mo>]</mo></mrow>m(0)→Φ,Nt(Φ)=0,s(0)=s(1),s(k+1)=s(k),BW(Si,Si)=∞,其中P为查询计划;i为连接查询涉及的网格节点编号;k为连接查询涉及的网格节点总数;Nt表示处理阶段的查询选择度;BW表示网格节点之间的网络带宽;L为单个元组的存储空间大小;PC表示网格节点对单个输入元组的连接处理代价;S表示网格节点;s(·)为映射函数,表示把给定的位置映射到相应关系表所处网格节点的id;m(·)为映射函数,表示把给定的位置映射到连接栅格中的对应结点标识,即m(position)→To(1)To(2)...To(position);o(·)为映射函数,表示把给定的位置映射到相应的关系表id;Φ表示空值;T表示关系表,各关系表的位置为其在查询计划P中的处理次序;下同;抽样计算方法的步骤如下(1)获取抽样信息,包括当前执行路径上的各处理阶段的查询选择度Nt、各网格节点对单个输入元组的连接处理代价PC及各网格节点之间的网络带宽BW;(2)根据步骤(1)得到的抽样信息,更新各网格节点对单个输入元组的连接处理代价PC;(3)根据步骤(1)得到的抽样信息,更新各网格节点之间的网络带宽BW;(4)根据步骤(1)得到的抽样信息,更新连接栅格中各个处理阶段的查询选择度Nt对于当前执行路径上的Nt值,则直接获得更新;对于不在当前执行路径上的Nt值,按以下步骤获得更新①设置布尔型变量flag为FALSE;②遍历连接栅格中的每个结点,当当前访问的结点及其所依赖的各结点的Nt值中有且仅有一个未被更新时,则依照元组贡献依赖表相应公式计算更新该Nt值,并将布尔型变量flag置为TRUE;③当布尔型变量flag为TRUE时,转到步骤①继续执行;当所有结点都访问完,布尔型变量flag为FALSE时,则更新结束;(5)根据步骤(2)、(3)、(4)得到的更新后的Nt值、BW值和PC值,依据代价模型公式对连接栅格中各候选查询计划中各阶段的处理代价进行重新计算;(二)最优执行路径获取方法最优执行路径,即最小最大流路径,亦即连接处理代价最小的执行路径,经过方法(一)的计算后,连接栅格构成了一个具有权值的连通图,记为D(x,y);输入连通图D(x,y)输出从x到y之间的一条最小最大流路径,x为起始结点,y为终结点步骤如下(1)将各个结点的min值初始化为∞;(2)新建一个空的队列Q,将起始结点x放入队列Q,并给起始结点x增加标号(-,0),且置min(x)=0;(3)当队列Q为空,转到步骤(7);当队列Q非空,取出队列Q中的首个元素u;(4)当u=y,转到步骤(5);当u≠y,依次处理u的上层结点t当t的最后一个下层结点不为u,转到步骤(5);当t的最后一个下层结点为u,将t加入队列Q;(5)当u=x,转到步骤(3);当u≠x,依次处理u的下层结点v当w(u,v)>min(v),置m=w(u,v);当w(u,v)≤min(v),置m=min(v);函数w(·)表示取权值;(6)给u增加标号(v,m),当m<min(u),置min(u)=m,转到步骤(3);(7)从终结点y开始依次向下寻找标号最小的结点直至起始结点x,则这条路径即为所要寻找的最优执行路径;(三)查询流水线动态调整方法若方法(二)获得的最优执行路径不是当前执行路径,则按如下步骤进行查询流水线动态调整(1)查找当前执行路径与方法(二)得到的最优执行路径在前部分是否存在公共流水管道,即从起始处理节点开始依次经过的网格节点是否都相同,并以此确定流水线阻断的位置若存在公共流水管道,则流水线阻断的位置为公共流水管道的最后一个网格节点处;若不存在公共流水管道,则流水线阻断的位置为起始处理节点处;(2)在步骤(1)得到的流水线阻断位置断开流水,直至上层流水全部完成;(3)依据方法(二)得到的最优执行路径,在流水线阻断位置依次调整流水的输入路径,逐步重新建立起处理流水线。2.根据权利要求1所述的网格数据库连接查询自适应处理方法,其特征在于所述查询计划P表示为关系表的执行序列T。(d,T。(2),...,T。(k);其中T、0(O、k的定义同权利要求l。全文摘要本发明涉及一种网格数据库连接查询自适应处理方法,属于网格数据库连接查询
技术领域
。该方法依次包括抽样计算方法、最优执行路径获取方法及查询流水线动态调整方法三部分。抽样计算方法是基于代价模型公式,实现对查询选择度、节点间的网络带宽及节点对单个元组的处理代价值的更新,并计算更新各候选计划各阶段的处理代价;在最优执行路径获取法中,根据栅格构成的连通图找出起始点到终点间的最小最大流路径(最优执行路径);若最优执行路径非当前执行路径,则通过查询流水线动态调整法对查询计划进行调整。本发明充分考虑了网格数据库所处网格环境的动态特性,对查询处理代价估算精度高,查询计划的调整及时准确,有效提高了查询处理效率。文档编号G06F17/30GK101739451SQ20091023263公开日2010年6月16日申请日期2009年12月3日优先权日2009年12月3日发明者刘亮,吴浩,秦小麟申请人:南京航空航天大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1