一种基于云计算环境的分布并行Skyline查询方法

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

发明内容
本发明要解决的技术问题是针对现有的Skyline查询方法无法有效处理查询处理过程中的节点失效的问题,提出一种基于云计算环境的分布并行Skyline查询方法,有效控制节点失效对分布并行Skyline查询处理过程的影响,保证Skyline查询处理的高效性和可靠性、以及查询结果的正确性。本发明技术方案包括以下步骤第一步,构建一个云计算环境,它由多个节点构成,每个节点都是一台可独立运行的计算机,各节点通过网络设备互连。云计算环境中的节点分为两类门户节点和计算节点。云计算环境包括一个门户节点,负责与用户交互,接收用户提交的查询请求并转发给计算节点,接收计算节点的查询处理结果并返回给用户。云计算环境包括N个计算节点(N为正整数),它们负责存储原始数据集并执行查询处理任务,并向门户节点返回查询处理结果。为了提高可靠性,同时降低系统成本,采用互为备份方式对计算节点进行容错处理,以避免计算节点失效对Skyline 查询处理的影响。互为备份方式是指每个计算节点是其他所有计算节点的备份节点,其他所有计算节点上的原始数据集的副本都存储在该计算节点上;每个计算节点有N-I个备份节点,计算节点上的原始数据集的副本存储在其N-I个备份节点上。门户节点和计算节点上均安装有操作系统、TCP/IP协议软件,配置了网络环境。门户节点上安装有任务管理程序和结果回收程序。任务管理程序接收用户提交的 Skyline查询请求,向各计算节点转发Skyline查询请求。结果回收程序负责接收计算节点的查询处理结果并返回给用户。计算节点上安装有查询处理程序和故障处理程序。查询处理程序负责接收来自门户节点的Skyline查询请求,并对计算节点上存储的原始数据集进行Skyline查询处理。故障处理程序负责定期对邻居节点进行故障检测,并进行故障修复。 设计算节点的编号为i(i = 1,2,…,N),当1彡i彡N-I时,计算节点i的邻居节点为计算节点i+Ι ;当i = N时,计算节点i的邻居节点为计算节点1。第二步,门户节点执行任务管理程序,向各计算节点转发Skyline查询请求;各计算节点执行查询处理程序,接收来自门户节点的Skyline查询请求,并行进行Skyline查询处理;计算节点执行故障处理程序,定期对邻居节点进行故障检测,并进行故障修复。2. 1门户节点的任务管理程序接收用户提交的Skyline查询请求;2. 2门户节点的任务管理程序向所有计算节点转发Skyline查询请求;2. 3每个计算节点的查询处理程序接收来自门户节点的Skyline查询请求,根据接收的Skyline查询请求对各自存储的原始数据集进行Skyline查询处理,具体步骤如下2. 3. 1查询处理程序接收来自门户节点的Skyline查询请求;2. 3. 2查询处理程序初始化查询处理结果集合简称Skyline集合LS=0;2. 3. 3查询处理程序对本地(即该查询处理程序所属计算节点)原始数据集Set 中的所有数据对象逐一进行数据对象之间的控制关系判断,将不被Set中任意一个其他数据对象所控制的数据对象放到Skyline集合LS中,即,判断本地原始数据集Set中的每个数据对象DO与Set中的所有其他数据对象之间的控制关系,如果DO不被Set中任意一个其他数据对象所控制,则将DO放入计算节点的Skyline集合LS中,S卩,LS = LS+{DO};2. 3. 4查询处理程序将Skyline集合LS发送给其他所有计算节点;2. 3. 5查询处理程序接收来自其他所有计算节点的Skyline集合,并将其合并为 LS,;2. 3. 6查询处理程序对Skyline集合LS中的所有数据对象逐一进行筛选,具体方法是判断LS中的每个数据对象SDO与来自其他所有计算节点的LS’中的所有数据对象之间的控制关系,如果数据对象SDO被LS’中任意一个数据对象所控制,则将数据对象SDO 从 LS 中删除,即,LS = LS-{SD0};2. 3. 7查询处理程序将LS返回给门户节点。2. 4每个计算节点的故障处理程序按故障检测的周期T(T通常取100s,T应根据系统的扩展性和维护开销进行动态调整)定期对邻居节点进行故障检测,并进行故障修复。 具体步骤如下2. 4. 1故障处理程序按周期T定期向邻居节点发送探测消息;2. 4. 2邻居节点接收探测消息,并向计算节点返回应答消息;2. 4. 3故障处理程序检查t(t通常取IOs)时间内是否收到邻居节点的应答消息;2. 4. 4故障处理程序对未接收到应答消息的邻居节点进行如下故障修复处理2. 4. 4. 1计算节点替代其邻居节点进行Skyline查询处理,并将最终的Skyline集合LS返回给门户节点;2. 4. 4. 2计算节点替代其邻居节点进行后续的定期故障检测和故障修复。第三步,门户节点的结果回收程序收集所有计算节点的Skyline集合LS,并将其汇总返回给用户。与现有技术相比,本发明具有以下技术优点1.本发明2. 3. 3步、2. 3. 4步、2. 3. 5步和2. 3. 6步通过各计算节点对各自的原始数据集进行Skyline查询处理得到Skyline集合LS,并利用接收到的来自其他所有计算节点的Skyline集合LS’对Skyline集合LS进行筛选得到最终的Skyline集合,充分利用了计算节点的数据处理能力,充分开发了 Skyline查询处理的并行性,实现了 Skyline查询的高效分布并行处理。2.本发明2. 4. 1步、2. 4. 2步和2. 4. 3步通过计算节点定期向邻居节点发送探测消息,对计算节点进行故障检测,可及时发现和准确定位故障,为进行故障恢复提供有效信肩、ο3.本发明2. 4. 4步当计算节点发现其邻居节点失效后,及时替代其邻居节点完成 Skyline查询处理,快速实现任务迁移,有效控制节点失效对分布并行Skyline查询处理过程的影响,保证查询结果的正确性;无需专门配置备份节点,减少系统冗余,低成本实现 Skyline查询处理的可靠性。


图1是本发明第一步构建的云计算环境的物理结构图。图2是本发明云计算环境的软件部署图。图3是本发明总流程图。图4是本发明第二步门户节点执行任务管理程序、各计算节点执行查询处理程序和故障处理程序的流程图。图5是本发明2. 4步计算节点执行故障处理程序定期对邻居节点进行故障检测并进行故障修复的流程图。
具体实施例方式图1是本发明第一步构建的云计算环境的物理结构图。云计算环境的节点由门户节点和计算节点组成。门户节点和计算节点均是包含处理器、存储器、磁盘和网络接口的计算机。门户节点和计算节点之间通过互连网络相连。图2是本发明云计算环境的软件部署图。门户节点上安装有操作系统、TCP/IP网络软件、任务管理程序和结果回收程序。其中前两者是通用软件,从公开发行的软件包中获得;后两者是本发明的专用软件。计算节点上安装有操作系统、TCP/IP网络软件、查询处理程序和故障处理程序。其中前两者是通用软件,从公开发行的软件包中获得;后两者是本发明的专用软件。图3是本发明总流程图。具体流程如下第一步,构建一个云计算环境,它由多个节点构成,每个节点都是一台可独立运行的计算机,各节点通过网络设备互连。第二步,门户节点执行任务管理程序,向各计算节点转发Skyline查询请求;各计算节点执行查询处理程序,接收来自门户节点的Skyline查询请求,并行进行Skyline查询处理;计算节点执行故障处理程序,定期对邻居节点进行故障检测,并进行故障修复。第三步,门户节点的结果回收程序收集所有计算节点的Skyline集合LS,并将其汇总返回给用户。图4是本发明第二步门户节点执行任务管理程序、各计算节点执行查询处理程序和故障处理程序的流程图。具体流程如下2. 1门户节点的任务管理程序接收用户提交的Skyline查询请求;2. 2门户节点的任务管理程序向所有计算节点转发Skyline查询请求;2. 3每个计算节点的查询处理程序接收来自门户节点的Skyline查询请求,根据接收的Skyline查询请求对各自存储的原始数据集进行Skyline查询处理,具体步骤如下2. 3. 1查询处理程序接收来自门户节点的Skyline查询请求;2. 3. 2查询处理程序初始化查询处理结果集合简称Skyline集合LS=0;2. 3. 3查询处理程序对本地(即该查询处理程序所属计算节点)原始数据集Set 中的所有数据对象逐一进行数据对象之间的控制关系判断,得到Skyline集合LS ;2. 3. 4查询处理程序将Skyline集合LS发送给其他所有计算节点;2. 3. 5查询处理程序接收来自其他所有计算节点的Skyline集合,并将其合并为 LS,;2. 3. 6查询处理程序对Skyline集合LS中的所有数据对象逐一进行筛选,得到最终的Skyline集合LS ;2. 3. 7查询处理程序将Skyline集合LS返回给门户节点。2. 4每个计算节点的故障处理程序按故障检测的周期T定期对邻居节点进行故障检测,并进行故障修复。图5是本发明2. 4步计算节点执行故障处理程序定期对邻居节点进行故障检测并进行故障修复的流程图。具体流程如下
2. 4. 1故障处理程序按周期T定期向邻居节点发送探测消息;2. 4. 2邻居节点接收探测消息,并向计算节点返回应答消息;2. 4. 3故障处理程序检查t时间内是否收到邻居节点的应答消息;2. 4. 4故障处理程序对未接收到应答消息的邻居节点进行如下故障修复处理2. 4. 4. 1计算节点替代其邻居节点进行Skyline查询处理,并将最终的Skyline集合LS返回给门户节点;2. 4. 4. 2计算节点替代其邻居节点进行后续的定期故障检测和故障修复。
权利要求
1.一种基于云计算环境的分布并行Skyline查询方法,其特征在于包括以下步骤第一步,构建一个云计算环境,它由多个节点构成,每个节点都是一台可独立运行的计算机,各节点通过网络设备互连;节点包括一个门户节点和N个计算节点,N为正整数;门户节点负责与用户交互,接收用户提交的查询请求并转发给计算节点,接收计算节点的查询处理结果并返回给用户;计算节点负责存储原始数据集并执行查询处理任务,并向门户节点返回查询处理结果;门户节点和计算节点上均安装有操作系统、TCP/IP协议软件,配置了网络环境;门户节点上安装有任务管理程序和结果回收程序,任务管理程序接收用户提交的Skyline查询请求,向各计算节点转发Skyline查询请求,结果回收程序负责接收计算节点的查询处理结果并返回给用户;计算节点上安装有查询处理程序和故障处理程序,查询处理程序负责接收来自门户节点的Skyline查询请求,并对计算节点上存储的原始数据集进行Skyline查询处理,故障处理程序负责定期对邻居节点进行故障检测,并进行故障修复;计算节点的编号为i,i = 1,2,…,N,当1彡i彡N-I时,计算节点i的邻居节点为计算节点i+Ι ;当i = N时,计算节点i的邻居节点为计算节点1 ;第二步,门户节点执行任务管理程序,向各计算节点转发Skyline查询请求;各计算节点执行查询处理程序,接收来自门户节点的Skyline查询请求,并行进行Skyline查询处理;计算节点执行故障处理程序,定期对邻居节点进行故障检测,并进行故障修复·2.1门户节点的任务管理程序接收用户提交的Skyline查询请求;·2. 2门户节点的任务管理程序向所有计算节点转发Skyline查询请求; 2. 3每个计算节点的查询处理程序接收来自门户节点的Skyline查询请求,根据接收的Skyline查询请求对各自存储的原始数据集进行Skyline查询处理,具体步骤如下 2. 3. 1查询处理程序接收来自门户节点的Skyline查询请求; 2. 3. 2查询处理程序初始化查询处理结果集合简称Skyline集合LS=0; 2. 3. 3查询处理程序对本地原始数据集Set中的所有数据对象逐一进行数据对象之间的控制关系判断,将不被Set中任意一个其他数据对象所控制的数据对象放到Skyline集合LS中,S卩,判断本地原始数据集Set中的每个数据对象DO与Set中的所有其他数据对象之间的控制关系,如果DO不被Set中任意一个其他数据对象所控制,则将DO放入计算节点的 Skyline 集合 LS 中,即,LS = LS+ {DO};·2. 3. 4查询处理程序将Skyline集合LS发送给其他所有计算节点; 2. 3. 5查询处理程序接收来自其他所有计算节点的Skyline集合,并将其合并为LS’ ; 2. 3. 6查询处理程序对Skyline集合LS中的所有数据对象逐一进行筛选,方法是判断 LS中的每个数据对象SDO与来自其他所有计算节点的LS ’中的所有数据对象之间的控制关系,如果数据对象SDO被LS’中任意一个数据对象所控制,则将数据对象SDO从LS中删除, 即,LS = LS-{SD0};·2. 3. 7查询处理程序将LS返回给门户节点;·2. 4每个计算节点的故障处理程序按故障检测的周期T定期对邻居节点进行故障检测,并进行故障修复,T取100s,具体步骤如下·2. 4. 1故障处理程序按周期T定期向邻居节点发送探测消息; 2. 4. 2邻居节点接收探测消息,并向计算节点返回应答消息; 2. 4. 3故障处理程序检查t时间内是否收到邻居节点的应答消息,t取IOs ;·2. 4. 4故障处理程序对未接收到应答消息的邻居节点进行如下故障修复处理 2. 4. 4. 1计算节点替代其邻居节点进行Skyline查询处理,并将最终的Skyline集合 LS返回给门户节点;·2. 4. 4. 2计算节点替代其邻居节点进行后续的定期故障检测和故障修复; 第三步,门户节点的结果回收程序收集所有计算节点的Skyline集合LS,并将其汇总返回给用户。
2.如权利要求1所述的一种基于云计算环境的分布并行Skyline查询方法,其特征在于采用互为备份方式对计算节点进行容错处理,即每个计算节点是其他所有计算节点的备份节点,其他所有计算节点上的原始数据集的副本都存储在该计算节点上,每个计算节点有N-I个备份节点,计算节点上的原始数据集的副本存储在其N-I个备份节点上。
全文摘要
本发明公开了一种基于云计算环境的分布并行Skyline查询方法,目的是有效控制节点失效对分布并行Skyline查询处理过程的影响。技术方案是先构建由一个门户节点和N个计算节点组成的云计算环境,门户节点上安装有任务管理程序和结果回收程序,计算节点上安装有查询处理程序和故障处理程序;门户节点执行任务管理程序,向各计算节点转发Skyline查询请求;各计算节点执行查询处理程序,并行进行Skyline查询处理;各计算节点执行故障处理程序,定期对邻居节点进行故障检测,进行故障修复;门户节点执行结果回收程序收集所有计算节点的Skyline集合,将其汇总返回给用户。采用本发明可有效控制节点失效对分布并行Skyline查询处理过程的影响,保证Skyline查询处理的高效性和可靠性、正确性。
文档编号G06F17/30GK102314521SQ20111032743
公开日2012年1月11日 申请日期2011年10月25日 优先权日2011年10月25日
发明者孙伟东, 李小勇, 王媛, 王意洁, 裴晓强, 邓瑞鹏, 马行空 申请人:中国人民解放军国防科学技术大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1