一种面向云计算环境的容错并行Skyline查询方法转让专利

申请号 : CN201110205925.6

文献号 : CN102254016B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 王意洁王媛邓瑞鹏裴晓强李小勇杨永滔孙伟东

申请人 : 中国人民解放军国防科学技术大学

摘要 :

本发明公开了一种面向云计算环境的容错并行Skyline查询方法,目的是提出一种可控制故障对分布并行Skyline查询处理过程的影响、保证Skyline查询处理效率和结果正确性的方法。技术方案是先构建由协调节点、计算节点和备份节点组成的云计算环境,协调节点执行任务调度程序,向计算节点分发Skyline查询处理任务;协调节点执行故障处理程序,定期对计算节点进行故障检测并进行故障修复;各计算节点执行查询处理程序,接收来自协调节点的Skyline查询处理任务,并行进行Skyline查询处理;协调节点的结果分析处理程序收集计算节点的Skyline查询处理结果,并对其进行Skyline查询处理,得到最终的Skyline查询结果。采用本发明可及时发现和准确定位故障,有效保证Skyline查询处理效率和查询正确性。

权利要求 :

1.一种面向云计算环境的容错并行Skyline查询方法,其特征在于包括以下步骤:

第一步,构建一个云计算环境,它由多个节点构成,每个节点都是一台可独立运行的计算机,各节点通过网络设备互连;云计算环境包括一个协调节点,负责与用户交互,接收用户提交的查询请求,向各计算节点分发查询处理任务和收集查询处理结果,并向用户返回查询结果;云计算环境包括N个计算节点,N为正整数,它们负责存储原始数据集并执行查询处理任务,并向协调节点返回查询处理结果;每个计算节点配置一个备份节点,计算节点上的原始数据集的副本存储在其备份节点上;协调节点、计算节点和备份节点上均安装有操作系统、TCP/IP协议软件,配置了网络环境;协调节点上安装有任务调度程序、结果分析处理程序和故障处理程序,任务调度程序接收用户提交的Skyline查询请求,向各计算节点分发Skyline查询处理任务,结果分析处理程序负责收集计算节点的Skyline查询处理结果,并对收集到的所有计算节点的Skyline查询处理结果再进行Skyline查询处理以得到最终的Skyline查询结果,故障处理程序负责定期对计算节点进行故障检测,并进行故障修复;计算节点和备份节点上均安装有查询处理程序,查询处理程序负责接收来自协调节点的Skyline查询请求,并对计算节点或者备份节点上存储的原始数据集进行Skyline查询处理;

第二步,协调节点执行任务调度程序,向各计算节点分发Skyline查询处理任务;协调节点执行故障处理程序,定期对计算节点进行故障检测,并进行故障修复;各计算节点执行查询处理程序,接收来自协调节点的Skyline查询处理任务,并行进行Skyline查询处理;

2.1协调节点的任务调度程序接收用户提交的Skyline查询请求;

2.2协调节点的任务调度程序向所有计算节点转发Skyline查询请求;

2.3协调节点的故障处理程序按故障检测的周期T定期对计算节点进行故障检测,并进行故障修复,T取100s,具体步骤如下:

2.3.1故障处理程序按周期T定期向所有计算节点发送探测消息;

2.3.2计算节点接收故障处理程序的探测消息,并向故障处理程序返回应答消息;

2.3.3故障处理程序检查t时间内收到的计算节点的应答消息,t取10s;

2.3.4故障处理程序对未接收到应答消息的计算节点进行如下故障修复处理:

2.3.4.1如果协调节点保存的该计算节点的状态标记Status为“Complete”,则协调节点保存的Skyline集合即为该计算节点最终的Skyline集合;

2.3.4.2如果协调节点保存的该计算节点的状态标记Status为“Continue”,则协调节点将Skyline查询请求、保存的“数据对象DO在本地原始数据集Set中的当前位置”和“Skyline集合LS”一起发送给该计算节点的备份节点,由备份节点替代该计算节点继续完成后续的Skyline查询处理,并将最终的Skyline集合LS返回给协调节点;

2.4每个计算节点的查询处理程序接收来自协调节点的Skyline查询请求,根据接收的Skyline查询请求对各自存储的原始数据集进行Skyline查询处理,具体步骤如下:

2.4.1查询处理程序接收来自协调节点的Skyline查询请求;

2.4.2查询处理程序初始化Skyline集合 计数器ε=0;

2.4.3查询处理程序对本地原始数据集Set中的所有数据对象逐一进行数据对象之间的控制关系判断,并定期将Skyline查询处理的中间状态信息保存到协调节点,具体步骤如下:

2.4.3.1判断本地原始数据集Set中的数据对象DO与本地原始数据集Set中的所有其他数据对象之间的控制关系,如果数据对象DO不被本地原始数据集Set中任意一个其他数据对象所控制,则将数据对象DO放入计算节点的Skyline集合LS中,即,LS=LS+{DO},同时更新计数器ε,ε=ε+1;

2.4.3.2如果计数器ε=θ,θ的取值范围是[100,1000]中的正整数,则将该计算节点的状态标记Status设置为“Continue”,然后将状态标记Status、数据对象DO在本地原始数据集Set中的当前位置和Skyline集合LS保存到协调节点;

2.4.3.3如果计数器ε<θ,且本地原始数据集Set中的所有数据对象都已进行

2.4.3.1中的处理,则将该计算节点的状态标记Status设置为“Complete”,然后将状态标记Status和Skyline集合LS保存到协调节点;

2.4.4查询处理程序将Skyline集合LS返回给协调节点;

第三步,协调节点的结果分析处理程序收集计算节点的Skyline查询处理结果,并对其进行Skyline查询处理,得到最终的Skyline查询结果:

3.1结果分析处理程序收集所有计算节点的Skyline集合LS;

3.2结果分析处理程序合并所有计算节点的Skyline集合LS,得到新数据集NS;

3.3初始化协调节点的Skyline集合

3.4结果分析处理程序对新数据集NS进行Skyline查询处理,即,判断新数据集NS中的每个数据对象N_DO与新数据集NS中所有其他数据对象之间的控制关系,如果数据对象N_DO不被新数据集NS中任意一个其他数据对象所控制,那么将数据对象N_DO放入协调节点的Skyline集合GS中;

3.5结果分析处理程序将Skyline集合GS返回给用户。

2.如权利要求1所述的面向云计算环境的容错并行Skyline查询方法,其特征在于所述云计算环境配置两个相同的协调节点,两个协调节点采用双机热备份的工作模式。

说明书 :

一种面向云计算环境的容错并行Skyline查询方法

技术领域

[0001] 本发明涉及Skyline查询的分布并行处理方法,尤其是面向云计算环境的容错并行Skyline查询方法。

背景技术

[0002] Skyline查询是海量数据管理领域亟待解决的核心问题之一。Skyline查询是指从给定的一个D维的数据对象集合S中选择一个子集,该子集中的任意一个数据对象都不能被S中的任意一个其他数据对象所控制。所谓控制关系是指在D维的数据对象集合S中,如果数据对象p至少在某一维度上优于另一个数据对象q,而且数据对象p在其他维度上都不比数据对象q差(p优于或等于q),那么数据对象p能够控制数据对象q。Skyline查询是目前解决多目标优化问题的典型方法之一,Skyline查询已经成为数据分析和信息提取的重要技术手段,在城市导航、市场分析、环境监控等诸多领域都有着重要应用。
[0003] 近年来,随着计算机技术、网络技术和通信技术的快速发展,人们获取、存储和传递数据的能力日益增强,数据的规模急剧膨胀,“大数据”作为信息爆炸的产物应运而生。随着数据集规模的不断增大,Skyline查询的数据处理变得更加复杂,对存储资源和计算资源的需求也急剧增长,Skyline查询的处理效率逐渐成为影响数据分析和信息提取效果的关键因素。
[0004] 随着集群计算、网格计算、P2P计算等网络计算模式的不断发展,分布式并行计算技术已经日趋成熟,并逐渐成为提高海量数据处理效率的有效技术途径之一。云计算是分布计算、并行计算和网格计算的发展,是一种新的分布式并行计算模式。它将计算任务分布在大量计算机构成的资源池上,使各种应用系统能够根据需要获取计算力、存储空间和各种软件服务。将云计算技术与海量数据的Skyline查询相结合,可以通过开发查询计算的并行性来提高查询处理效率。
[0005] 尽管随着技术的进步,各种软硬件资源的可靠性得到了显著提高,但是,随着云计算的资源规模的不断扩大,资源的失效概率明显上升。此外,为了有效降低维护成本,失效资源不是及时更新,而是成批维护的。在云计算环境下,资源失效是一种常态行为。
[0006] 现有的Skyline查询方法主要关注查询处理过程及其查询结果的正确性,无法及时处理节点失效情况。因此,如何针对海量数据及其Skyline查询的本质特点,结合云计算环境的资源特点,设计高效率低成本的容错并行Skyline查询方法,保证Skyline查询处理的效率和查询结果的正确性,已经成为并行与分布处理领域的热点研究问题。

发明内容

[0007] 本发明要解决的技术问题是:针对现有的Skyline查询方法无法有效处理查询处理过程中的节点失效的问题,提出一种面向云计算环境的容错并行Skyline查询方法,有效控制故障对分布并行Skyline查询处理过程的影响,有效保证Skyline查询处理的效率和查询结果的正确性。
[0008] 本发明技术方案包括以下步骤:
[0009] 第一步,构建一个云计算环境,它由多个节点构成,每个节点都是一台可独立运行的计算机,各节点通过网络设备互连。
[0010] 云计算环境中的节点分为三类:协调节点、计算节点和备份节点。云计算环境包括一个协调节点,负责与用户交互,接收用户提交的查询请求,向各计算节点分发查询处理任务和收集查询处理结果,并向用户返回查询结果。云计算环境包括N个计算节点(N为正整数),它们负责存储原始数据集并执行查询处理任务,并向协调节点返回查询处理结果。为了降低容错成本,采用冷备份方式对计算节点进行容错处理,以避免计算节点故障对Skyline查询处理的影响。每个计算节点配置一个备份节点,计算节点上的原始数据集的副本存储在其备份节点上。协调节点、计算节点和备份节点上均安装有操作系统、TCP/IP协议软件,配置了网络环境。
[0011] 协调节点上安装有任务调度程序、结果分析处理程序和故障处理程序。任务调度程序接收用户提交的Skyline查询请求,向各计算节点分发Skyline查询处理任务。结果分析处理程序负责收集计算节点的Skyline查询处理结果,并对收集到的所有计算节点的Skyline查询处理结果再进行Skyline查询处理以得到最终的Skyline查询结果。故障处理程序负责定期对计算节点进行故障检测,并进行故障修复。计算节点和备份节点上均安装有查询处理程序。查询处理程序负责接收来自协调节点的Skyline查询请求,并对计算节点或者备份节点上存储的原始数据集进行Skyline查询处理。
[0012] 第二步,协调节点执行任务调度程序,向各计算节点分发Skyline查询处理任务;协调节点执行故障处理程序,定期对计算节点进行故障检测,并进行故障修复;各计算节点执行查询处理程序,接收来自协调节点的Skyline查询处理任务,并行进行Skyline查询处理。
[0013] 2.1协调节点的任务调度程序接收用户提交的Skyline查询请求;
[0014] 2.2协调节点的任务调度程序向所有计算节点转发Skyline查询请求;
[0015] 2.3协调节点的故障处理程序按故障检测的周期T(T通常取100s,T应根据系统的扩展性和维护开销进行动态调整)定期对计算节点进行故障检测,并进行故障修复。具体步骤如下:
[0016] 2.3.1故障处理程序按周期T定期向所有计算节点发送探测消息;
[0017] 2.3.2计算节点接收故障处理程序的探测消息,并向故障处理程序返回应答消息;
[0018] 2.3.3故障处理程序检查t(t通常取10s)时间内收到的计算节点的应答消息;
[0019] 2.3.4故障处理程序对未接收到应答消息的计算节点进行如下故障修复处理:
[0020] 2.3.4.1如果协调节点保存的该计算节点的状态标记Status为“Complete”,则协调节点保存的Skyline集合即为该计算节点最终的Skyline集合;
[0021] 2.3.4.2如果协调节点保存的该计算节点的状态标记Status为“Continue”,则协调节点将Skyline查询请求、保存的“数据对象DO在本地原始数据集Set中的当前位置”和“Skyline集合LS”一起发送给该计算节点的备份节点,由备份节点替代该计算节点继续完成后续的Skyline查询处理,并将最终的Skyline集合LS返回给协调节点。
[0022] 2.4每个计算节点的查询处理程序接收来自协调节点的Skyline查询请求,根据接收的Skyline查询请求对各自存储的原始数据集进行Skyline查询处理,具体步骤如下:
[0023] 2.4.1查询处理程序接收来自协调节点的Skyline查询请求;
[0024] 2.4.2查询处理程序初始化Skyline集合 计数器ε=0;
[0025] 2.4.3查询处理程序对本地原始数据集Set中的所有数据对象逐一进行数据对象之间的控制关系判断,并定期将Skyline查询处理的中间状态信息保存到协调节点,具体步骤如下:
[0026] 2.4.3.1判断本地原始数据集Set中的数据对象DO与本地原始数据集Set中的所有其他数据对象之间的控制关系,如果数据对象DO不被本地原始数据集Set中任意一个其他数据对象所控制,则将数据对象DO放入计算节点的Skyline集合LS中,即,LS=LS+{DO},同时更新计数器ε,ε=ε+1;
[0027] 2.4.3.2如果计数器ε=θ(θ由系统设置,根据系统的扩展性和原始数据集规模进行动态调整,通常取值范围是[100,1000]中的正整数),则将该计算节点的状态标记Status设置为“Continue”,然后将状态标记Status、数据对象DO在本地原始数据集Set中的当前位置和Skyline集合LS保存到协调节点;
[0028] 2.4.3.3如果计数器ε<θ,且本地原始数据集Set中的所有数据对象都已进行2.4.3.1中的处理,则将该计算节点的状态标记Status设置为“Complete”,然后将状态标记Status和Skyline集合LS保存到协调节点;
[0029] 2.4.4查询处理程序将Skyline集合LS返回给协调节点。
[0030] 第三步,协调节点的结果分析处理程序收集计算节点的Skyline查询处理结果,并对其进行Skyline查询处理,得到最终的Skyline查询结果。
[0031] 3.1结果分析处理程序收集所有计算节点的Skyline集合LS;
[0032] 3.2结果分析处理程序合并所有计算节点的Skyline集合LS,得到新数据集NS;
[0033] 3.3初始化协调节点的Skyline集合
[0034] 3.4结果分析处理程序对新数据集NS进行Skyline查询处理,即,判断新数据集NS中的每个数据对象N_DO与新数据集NS中所有其他数据对象之间的控制关系,如果数据对象N_DO不被新数据集NS中任意一个其他数据对象所控制,那么将数据对象N_DO放入协调节点的Skyline集合GS中;
[0035] 3.5结果分析处理程序将Skyline集合GS返回给用户。
[0036] 为了更加有效提高容错并行Skyline查询处理的可靠性,可以配置两个相同的协调节点,这两个协调节点采用双机热备份的工作模式,以避免协调节点故障对Skyline查询处理的影响。
[0037] 与现有技术相比,本发明具有以下技术优点:
[0038] 1.本发明2.3.1步、2.3.2步和2.3.3步通过协调节点定期向计算节点发送探测消息,对计算节点进行故障检测,可及时发现和准确定位故障,为进行故障恢复提供有效信息。
[0039] 2.本发明2.3.4步当协调节点发现计算节点故障后,及时将Skyline查询请求、保存的“数据对象DO在本地原始数据集Set中的当前位置”和“Skyline集合LS”一起发送给该计算节点的备份节点,由备份节点替代该计算节点继续完成后续的Skyline查询处理,快速实现任务迁移,从而有效控制故障对分布并行Skyline查询处理过程的影响,有效保证Skyline查询处理的效率和查询结果的正确性。
[0040] 3.本发明2.4.3.2步和2.4.3.3步通过定期将各计算节点的状态标记Status、当前处理的数据对象DO在本地原始数据集Set中的当前位置和Skyline集合LS保存到协调节点,及时保存各计算节点的当前工作状态,从而有效提高故障恢复的效率。

附图说明

[0041] 图1是本发明第一步构建的云计算环境的物理结构图。
[0042] 图2是本发明云计算环境的软件部署图。
[0043] 图3是本发明总流程图。
[0044] 图4是本发明第二步协调节点执行任务调度程序和故障处理程序、各计算节点执行查询处理程序的流程图。
[0045] 图5是本发明2.3步协调节点执行故障处理程序定期对计算节点进行故障检测并进行故障修复的流程图。
[0046] 图6是本发明第三步协调节点执行结果分析处理程序收集计算节点的Skyline查询处理结果、进行Skyline查询处理以得到最终的Skyline查询结果的流程图。

具体实施方式

[0047] 图1是本发明第一步构建的云计算环境的物理结构图。云计算环境的节点由协调节点、计算节点和备份节点组成。协调节点、计算节点和备份节点均是包含处理器、存储器、磁盘和网络接口的计算机。协调节点、计算节点和备份节点之间通过互连网络相连。备份节点与计算节点一一对应。
[0048] 图2是本发明云计算环境的软件部署图。协调节点上安装有操作系统软件、网络TCP/IP软件、任务调度程序、结果分析处理程序和故障处理程序。其中前两者是通用软件,可从一些公开发行的软件包中获得;后三者是本发明的专用软件。计算节点和备份节点上均安装有操作系统软件、TCP/IP网络软件、查询处理程序。其中前两者是通用软件,可从一些公开发行的软件包中获得;查询处理程序是本发明的专用软件。
[0049] 图3是本发明总流程图。具体流程如下:
[0050] 第一步,构建一个云计算环境,它由多个节点构成,每个节点都是一台可独立运行的计算机,各节点通过网络设备互连。
[0051] 第二步,协调节点执行任务调度程序,向各计算节点分发Skyline查询处理任务;协调节点执行故障处理程序,定期对计算节点进行故障检测,并进行故障修复;各计算节点执行查询处理程序接收来自协调节点的Skyline查询处理任务,并行进行Skyline查询处理。
[0052] 第三步,协调节点的结果分析处理程序收集计算节点的Skyline查询处理结果,并对其进行Skyline查询处理,得到最终的Skyline查询结果。
[0053] 图4是本发明第二步协调节点执行任务调度程序和故障处理程序、各计算节点执行查询处理程序的流程图。具体流程如下:
[0054] 2.1协调节点的任务调度程序接收用户提交的Skyline查询请求;
[0055] 2.2协调节点的任务调度程序向所有计算节点转发Skyline查询请求;
[0056] 2.3协调节点的故障处理程序按故障检测的周期T定期对计算节点进行故障检测,并进行故障修复。
[0057] 2.4每个计算节点的查询处理程序接收来自协调节点的Skyline查询请求,根据接收的Skyline查询请求对各自存储的原始数据集进行Skyline查询处理,具体步骤如下:
[0058] 2.4.1计算节点的查询处理程序接收来自协调节点的Skyline查询请求;
[0059] 2.4.2计算节点的查询处理程序初始化Skyline集合 计数器ε=0;
[0060] 2.4.3计算节点的查询处理程序对本地原始数据集Set中的所有数据对象逐一进行数据对象之间的控制关系判断,并定期将Skyline查询处理的中间状态信息保存到协调节点;
[0061] 2.4.4计算节点的查询处理程序将Skyline集合LS返回给协调节点。
[0062] 图5是本发明2.3步协调节点执行故障处理程序定期对计算节点进行故障检测并进行故障修复的流程图。具体流程如下:
[0063] 2.3.1故障处理程序按周期T定期向所有计算节点发送探测消息;
[0064] 2.3.2计算节点接收故障处理程序的探测消息,并向故障处理程序返回应答消息;
[0065] 2.3.3故障处理程序检查t(t通常取10s)时间内收到的计算节点的应答消息;
[0066] 2.3.4故障处理程序对未接收到应答消息的计算节点进行如下故障修复处理:
[0067] 2.3.4.1如果协调节点保存的该计算节点的状态标记Status为“Complete”,则协调节点保存的Skyline集合即为该计算节点最终的Skyline集合;
[0068] 2.3.4.2如果协调节点保存的该计算节点的状态标记Status为“Continue”,则协调节点将Skyline查询请求、保存的“数据对象DO在本地原始数据集Set中的当前位置”和“Skyline集合LS”一起发送给该计算节点的备份节点,由备份节点替代该计算节点继续完成后续的Skyline查询处理,并将最终的Skyline集合LS返回给协调节点。
[0069] 图6是本发明第三步协调节点执行结果分析处理程序收集计算节点的Skyline查询处理结果、进行Skyline查询处理以得到最终的Skyline查询结果的流程图。具体流程如下:
[0070] 3.1结果分析处理程序收集所有计算节点的Skyline集合LS;
[0071] 3.2结果分析处理程序合并所有计算节点的Skyline集合LS,得到新数据集NS;
[0072] 3.3初始化协调节点的Skyline集合
[0073] 3.4结果分析处理程序对新数据集NS进行Skyline查询处理,即,判断新数据集NS中的每个数据对象N_DO与新数据集NS中所有其他数据对象之间的控制关系,如果数据对象N_DO不被新数据集NS中任意一个其他数据对象所控制,那么将数据对象N_DO放入协调节点的Skyline集合GS中;
[0074] 3.5结果分析处理程序将Skyline集合GS返回给用户。