一种分布式任务处理和协作的多尺度服务单元选择方法
技术领域
本发明涉及信息技术领域,特别涉及一种分布式任务处理和协作的多尺度服务单元选择方法。
背景技术
随着信息技术的发展,无论计算还是服务,都已从单核向多核化,单机向多机集群化,单节点向多节点网络化发展。存储、计算等工作都趋向于多处理单元的协同处理,比如,多CPU协同运算,多存储器协同存储、多网络节点协同服务等等。然而,由于各个处理单元在许多应用中具有异构性,运算、存储、I/O或上下行带宽等能力并不相同,能提供服务或处理能力也有所差异,同时,在许多应用中,如互联网中基于P2P的流媒体视频业务、文件下载业务等,如何有效利用免费服务单元(如网络中的节点资源),减少额外服务支撑,降低运营成本,也是要考虑的因素。因此,当出现服务请求时,如何选择合适的处理单元集合协同提供服务是一个重要问题。目前,针对不同应用,许多服务单元选择方法被提出,例如,在流媒体直播、点播系统中,一些算法通过构建树形结构和中心服务器选择的方式,将能力较强的服务单元(节点)驻留在树的上层供应用选择,然而,这样的中心选择的方法影响了系统的扩展性和动态性;另外,许多算法通过Gossip的方式来扩充候选服务单元(节点),但是灵活性差,效率和开销仍不尽人意。同时,这些方法大多没有详细考虑针对不同应用中,服务单元自身能力和所需服务内容或者过程之间的相关性以及在应用上的表现方法,因此需要从不同角度考虑服务单元的选择问题。尺度的概念是许多物理现象的本质特征,同时,人们对各种现象的观测及测量也是在不同尺度上进行的,而在具有多服务单元的应用中,许多信息都在不同尺度上表征了该服务的特点,如应用特征相关的服务特性、服务内容,以及参与节点相关的带宽、延迟、地理位置等。
发明内容
本发明的目的在于,为克服目前中心选择的方法影响系统的扩展性和动态性;另外,许多算法通过Gossip的方式来扩充候选服务单元(节点),但是灵活性差,效率和开销仍不尽人意。同时,这些方法大多没有详细考虑针对不同应用中,服务单元自身能力和所需服务内容或者过程之间的相关性以及在应用上的表现方法,因此需要从不同角度考虑服务单元的选择问题,从而提供一种分布式任务处理和协作的多尺度服务单元选择方法。
本发明提供的一种分布式任务处理和协作的多尺度服务单元选择方法将任务的多服务单元协作的问题至顶向下根据任务的特征,在不同尺度上进行分析并最终映射到执行任务的服务单元集上进行处理,同时,针对任务目标,综合考虑同一个尺度上相关单元的特征相似性和不同尺度间的服务性和关联性,给出执行任务的服务单元集的选择方法。该方法可以将服务资源进行有效分配,显著提高服务资源的有效利用率。
为了达到上述目的,本发明的多服务单元选择的处理过程主要由以下几个阶段组成:1.根据应用特点提出服务目标并提取目标中的任务;2.将任务分解为子任务集合,其中,任务是由这个子任务集的所有子任务按照某种逻辑形成的;3.为每个子任务找到具有特定功能的一个或多个服务单元来协同完成该子任务目标。为解决上述问题,本发明由三个尺度构成:目标任务尺度、子任务尺度和服务单元尺度。其中,目标任务尺度到子任务尺度是通过对目标任务进行分析,得到一些对问题可描述的、细粒度的子任务单元。在子任务层中,任意两个子任务之间可能存在一定关联;而每个子任务都是由一些服务单元协同完成的,每个服务单元都以比较高的概率提供对应子任务所包含的全部服务。所有服务单元组成服务单元尺度,这一尺度中,服务单元的基础能力指的是服务单元的基础服务特征的度量,如外部通信带宽,与其余服务单元的平均传输延迟,存储容量,计算能力等。在这层中,每个服务单元都自己负责对自身基础服务能力的周期性测量和更新,同时每个服务单元还要根据其它服务单元对自己的特定基础服务的历史、交互纪录、或者预设规则维护本单元的可服务性邻域列表,其中,可服务性指的是对特定基础服务,其服务能力超过某个门限、或者是满足以特定基础服务为自变量的函数、或者是符合某个特定服务内容、处理过程或处理方法的要求。关于该多尺度服务单元选择方法的结构示意图见图1。
为达到上述目的,本发明提供一种分布式任务处理和协作的多尺度服务单元选择方法,该方法将任务的多服务单元协作的问题至顶向下根据任务的特征,在不同尺度上进行分析并最终映射到执行任务的服务单元集上进行处理;所述的服务单元集选择方法为,针对任务目标,综合考虑同一个尺度上相关单元的特征相似性和不同尺度间的服务性和关联性,给出执行任务的服务单元集,该方法用于将服务资源进行有效分配,提高资源有效利用率,所述的多尺度包含:目标任务尺度、子任务尺度和服务单元尺度;所述的方法具体包含如下步骤:
1)对于一个应用下的任何任务,能够由全体子任务通过某种逻辑形成,假设在子任务层中,所有子任务的全集为A={a1,a2,...,an),服务单元层中,所有服务单元的集合为P={p1,p2,...,pK},任意一个内部或者外部服务单元提出任务请求,并由该服务单元根据应用特点将整个任务分解为子任务集合,最后由该服务单元发起对这些子任务的请求;
2)计算面向分布式任务处理和协作的多尺度服务单元选择方法的相关参数,其中包括:
a)在服务单元层中,任意两个服务单元p
t,p
k之间基础服务的可服务性为
该值表示p
k可向p
t提供的基础服务能力;
c)G(pt,pk|si)表征在子任务为si,的情况下,服务单元pk在服务特征上与pt所需子任务的关联性,该参数是子任务尺度中子任务间相关性在服务单元尺度中的体现;
另外,每个服务单元p
t还根据历史记录和周边单元的交互信息,维护一个为自己提供可靠的基础服务的邻域集
该邻域可根据对历史记录中合作过的节点进行选择而生成:
3)假设某个目标任务为o,交给服务单元p
t,由其提出该请求,则根据分析可知,目标任务o是由子任务集合S={s
1,s
2,...,s
m),
通过某种逻辑而组成的,满足o=Λ(S);其中,Λ(X)是根据应用特点和先验知识预先得到的逻辑映射函数;
4)对于每个子任务s
i,根据其应用特点计算可知所需服务单元数目为d,同时这些服务单元要满足可能存在的应用条件集合,集合中包含依赖于应用的一些限制条件,因此,能够将目标转化为找到在一定条件下,对该子任务提供服务的协作单元集合Y={y
1,y
2,...,y
m},
5)每个服务单元p
t也根据它自己的历史记录和周边单元的交互信息,维护一个可以为自己提供比较可靠的基础服务的邻域集
对于每个子任务s
i,发起请求的服务单元p
t可以检测其邻域
内的任一服务单元p
k,且
则按下式计算针对子任务s
i,p
k对p
t的服务能力:
其中,
表示服务单元p
k可向p
k提供的基础服务能力的程度,且
G(p
t,p
k|s
i)表征在子任务为s
i的情况下,服务单元p
k在可提供的子任务服务特征上与p
t所需子任务的关联性,根据邻域中所有服务单元的
值,选择合适的协作单元。
所述的每个提出请求的服务单元pt,都存在一个候选协作单元集合Φ。所述的Φ中剩余dmax个候选服务单元,且dmax≥d,d个服务单元的选择方法如下:
d)根据
的值,在所有满足条件的服务单元中,随机选出d个服务单元进行服务;
e)对
排序,选出其中Top-d个服务单元进行服务;
f)通过某种优化方法,搜索
的最优解,找到d个服务单元进行服务;
其中,所述的随机选出d个服务单元进行服务的步骤如下:
i.按均匀分布选择服务单元;
ii.以
值为选择概率,随机选出d个服务单元进行服务。
所述的Φ中剩余dmax个候选服务单元,且dmax<d,随机或者按
值的大小选择dsel个服务单元,这里dsel的值可以通过预先设定的阈值或者限制条件来确定,且dsel≤dmax,则剩余所需d-dsel的资源获取方法如下:
c)通过外部服务支撑获取:
d)等待一个时间ΔT,重复步骤5);如果重复M次之后,仍无法找到足够的协作节点,则停止循环,向外部服务单元寻求服务支撑,其中,ΔT和M都为预设参数。
步骤2)所述的p
k可向p
t提供的基础服务能力包含:上行带宽,存储容量和计算能力;所述的服务单元p
k服务特征包括:提供存储内容、提供处理过程或提供处理方法。其中上述技术方案,所述的
通过下述方法得到:
e)服务单元pk可提供某种基础服务能力的总量;
f)服务单元pk当前时刻可提供某种剩余基础服务能力的余量;
g)根据历史记录得到的服务单元pk向pt提供的某种基础服务能力的最大值;
h)当存在以多种基础服务能力为自变量的函数,函数值来表示pk的综合服务能力。
其中,resourceleft为服务单元当前可用资源,resourceall为服务单元可提供的全部资源量;所述的资源包含:上行带宽、存储空间或者计算能力。
上述技术方案,步骤5)中所述的在所选出的d个点中,如果存在某个点pk,不能够提供对应子任务所要求的全部服务,则处理方法如下:
根据每个子任务预设的扩展度
和扩展度阈值pop
preset进行决策,如果
则由p
k再次发起对完整子任务的请求,如果递归请求N次之后、或者延迟达到某个阈值T之后、或者达到某个应用限制条件之后,系统仍无法返回给pk完成子任务所需的资源和能力,则直接向外部请求服务支撑;其中,N和T值也需根据应用特点进行预先设定;如果
则直接向外部请求服务支撑;
其中,所述的扩展度表示一个子任务在整个系统中的重要性或者是在部署上需要扩散的快慢程度,是一个归一化的值;所述的扩展度阈值根据应用预先设定的。在步骤2中提到的在服务特征上pt,pk单元之间的相关性G(pt,pk|si),可看作子任务尺度相关性在服务单元尺度中的体现,表示在子任务为si的情况下,服务单元pk在服务特征(可能包括存储内容、处理过程、处理方法等非基础服务能力范畴的相关信息)上和pt所要完成子任务si的关联性,可以通过计算pk对si所需存储内容的重叠程度、所需计算条件的满足程度、或者某些预设规则的相似性来得到,跟应用特征直接相关,不同应用存在不同的定义和计算方法,这里不再赘述。
本发明的优点在于,在多服务单元协作中,通过多尺度分析的方法可以将问题分层次描述,并根据服务目标和特性,帮助应用进行协作单元的选择。本发明提出了一种基于多尺度分析的服务单元协作的单元选择方法,该模型可根据应用的优化目标、将问题在不同尺度上进行分解和建模,并计算合适的服务单元协作方法。该模型的优势是,可灵活应用于存在服务单元协作的不同的应用中,同时,综合考虑多个服务单元协作的影响因素,选出合理协作方案,有效利用服务单元所提供的服务能力,减少外部服务支撑。
附图说明
图1是本发明的基于多尺度分析的多服务单元协作模型结构示意图;
图2是一个现有的基于P2P的流媒体点播系统的结构示意图;
图3是P2P流媒体点播系统利用本发明的基于多尺度分析的多服务单元协作的方法的多尺度分析示意图。
具体实施方式
为了解决上述问题,本发明的目的在于提供一种面向分布式任务处理和协作的多尺度服务单元选择方法。该方法将任务的多服务单元协作的问题至顶向下根据任务的特征,在不同尺度上进行分析并最终映射到执行任务的服务单元集上进行处理,同时,针对任务目标,综合考虑同一个尺度上相关单元的特征相似性和不同尺度间的服务性和关联性,给出执行任务的服务单元集的选择方法。该方法可以将服务资源进行有效分配,显著提高服务资源的有效利用率。
为了达到上述目的,本发明的多服务单元选择的处理过程主要由以下几个阶段组成:1.根据应用特点提出服务目标并提取目标中的任务;2.将任务分解为子任务集合,其中,任务是由这个子任务集的所有子任务按照某种逻辑形成的;3.为每个子任务找到具有特定功能的一个或多个服务单元来协同完成该子任务目标。为解决上述问题,本发明由三个尺度构成:目标任务尺度、子任务尺度和服务单元尺度。其中,目标任务尺度到子任务尺度是通过对目标任务进行分析,得到一些对问题可描述的、细粒度的子任务单元。在子任务层中,任意两个子任务之间可能存在一定关联;而每个子任务都是由一些服务单元协同完成的,每个服务单元都以比较高的概率提供对应子任务所包含的全部服务。所有服务单元组成服务单元尺度,这一尺度中,服务单元的基础能力指的是服务单元的基础服务特征的度量,如外部通信带宽,与其余服务单元的平均传输延迟,存储容量,计算能力等。在这层中,每个服务单元都自己负责对自身基础服务能力的周期性测量和更新,同时每个服务单元还要根据其它服务单元对自己的特定基础服务的历史、交互纪录、或者预设规则维护本单元的可服务性邻域列表,其中,可服务性指的是对特定基础服务,其服务能力超过某个门限、或者是满足以特定基础服务为自变量的函数、或者是符合某个特定服务内容、处理过程或处理方法的要求。关于该多尺度服务单元选择方法的结构示意图见图1。
为达到上述目的,本发明提供一种面向分布式任务处理和协作的多尺度服务单元选择方法,其过程如下:
1)对于一个应用下的任何任务,都可由全体子任务通过某种逻辑形成,假设在子任务层中,所有子任务的全集为A={a1,a2,...,an},服务单元层中,所有服务单元的集合为P={p1,p2,...,pK),任意一个内部或者外部提出的任务请求,都是由某一个服务单元提出和分解为子任务集合,并山该服务单元发起对这些子任务的请求;
2)计算面向分布式任务处理和协作的多尺度服务单元选择方法的相关参数,其中包括:
a)在服务单元层中,任意两个服务单元p
t,p
k之间基础服务的可服务性为
该值表示p
k可向p
t提供的基础服务能力,可能为上行带宽,存储容量,计算能力等表征服务单元基础服务特征的指标,是一个有向值;
c)G(pt,pk|si)表征在子任务为si的情况下,服务单元pk在服务特征(可能包括提供存储内容、提供处理过程、提供处理方法等非基础服务能力范畴的相关信息)上与pt所需子任务的关联性,是子任务尺度中子任务间相关性在服务单元尺度中的体现;
另外,每个服务单元p
t也根据它自己的历史记录和周边单元的交互信息,维护一个可以为自己提供比较可靠的基础服务的邻域集
3)假设某个目标任务为o,交给服务单元p
t,由其提出该请求,则根据分析可知,目标任务o是由子任务集合S={s
1,s
2,...,s
m},
通过某种逻辑而组成的,满足o=Λ(S)。这里,Λ(X)是根据应用特点和先验知识预先得到的逻辑映射函数。
4)对于每个子任务s
i根据其应用特点计算可知所需服务单元数目为d,同时这些单元要满足可能存在的应用条件集合,集合中包含依赖于应用的一些限制条件,因此,可以将目标转化为找到在一定条件下,对该子任务提供服务的协作单元集合Y={y
1,y
2,...,y
m},
这里,不同应用有不同的限制条件和d的计算方法,这里不在赘述。
5)对于每个子任务s
i,发起请求的服务单元p
t可以检测其邻域
内的任一服务单元p
k,且
则按下式计算针对子任务s
i,p
k对p
t的服务能力:
这里,
表示服务单元p
k可向p
k提供的基础服务能力的程度,且
每个提出请求的服务单元p
t,都存在一个候选协作单元集合Φ,初始时
对于p
t服务邻域
内的每一个服务单元p
k,都计算相应的
假设应用的条件集合为C,CP={p|C},如果p
k∈CP,则Φ=Φ∪{p
k}。
假设Φ中剩余dmax个候选服务单元,如果dmax≥d,可能的选择方法如下:
a)根据的值,在所有满足条件的服务单元中,随机选出d个服务单元进行服务;这里可以通过两种方法选择:
iii.按均匀分布选择服务单元;
iv.以值为选择概率,随机选出d个服务单元进行服务;
b)对
排序,选出其中Top-d个服务单元进行服务;
c)通过某种优化方法,搜索
的最优解,找到d个服务单元进行服务;
如果dmax<d,随机、或者按
值的大小选择dsel个服务单元,这里dsel的值可以通过预先设定的阈值或者限制条件来确定,且dsel≤dmax,则剩余所需d-dsel的资源获取方法如下:
a)通过外部服务支撑获取;
b)等待一个时间ΔT,重复步骤5);如果重复M次之后,仍无法找到足够的协作节点,则停止循环,向外部寻求服务支撑。这里,ΔT和M都为预设参数。
在所选出的d个点中,如果存在某个点pk,不能够提供对应子任务所要求的全部服务,则处理方法如下:
根据每个子任务预设的扩展度
和扩展度阈值pop
preset进行决策,这里,扩展度表示一个子任务在整个系统中的重要性或者是在部署上需要扩散的快慢程度,是一个归一化的值,而扩展度阈值则是根据应用预先设定的。如果
则由p
k再次发起对完整子任务的请求,如果递归请求N次之后、或者延迟达到某个阈值T之后、或者达到某个应用限制条件之后,系统仍无法返回给p
k完成子任务所需的资源和能力,则直接向外部请求服务支撑;其中,N和T值也需根据应用特点进行预先设定。如果
则直接向外部请求服务支撑。
在步骤2中提到的任意两个服务单元p
t,p
k之间某个基础服务能力的可服务性为
可以通过下述方法得到:
a)服务单元pk可提供某种基础服务能力的总量;
b)服务单元pk当前时刻可提供某种剩余基础服务能力的余量;
c)根据历史记录得到的服务单元pk向pt提供的某种基础服务能力的最大值;
d)当存在以多种基础服务能力(如通信带宽、存储能力或者计算能力等)为自变量的函数,函数值来表示pk的综合服务能力;
在步骤2中提到的p
t当前的负载情况
可以通过下述方法得到:
a)当前资源占用总量,如上行带宽、存储空间或者计算能力;
b)当前可用资源(如上行带宽、存储空间或者计算能力)在全部可提供资源中的比例,
这里resource
left为服务单元当前可用资源,resource
all为服务单元可提供的全部资源量;
在步骤2中提到的在服务特征上pt,pk单元之间的相关性G(pt,pk|si),可看作子任务尺度相关性在服务单元尺度中的体现,表示在子任务为si的情况下,服务单元pk在服务特征(可能包括存储内容、处理过程、处理方法等非基础服务能力范畴的相关信息)上和pt所要完成子任务si的关联性,可以通过计算pk对si所需存储内容的重叠程度、所需计算条件的满足程度、或者某些预设规则的相似性来得到,跟应用特征直接相关,不同应用存在不同的定义和计算方法,这里不再赘述。
实施例
下面结合具体实施例来说明该面向分布式任务处理和协作的多尺度服务单元选择方法的应用。
实施例
假设一个基于P2P的流媒体点播系统,其系统结构示意图见图2,在这个应用中,任务目标为为某个请求节点从某一时刻丌始请求一段数据,如果其余节点有该数据,且在当前时刻有能力提供服务,则从这些节点中选出合适的协作节点,否则,将外部服务器作为可获取数据的协作节点。因此,为了量化所需数据内容,从目标到子任务尺度层的映射方法为将所有的节目划分为等长的数据片段,获取某一数据片段作为一个子任务,而具有不同数据片段的节点则是具有不同服务特性的服务单元。为了保证每个节点以较高概率提供整个子任务的服务,则需要将节目划分成粒度小而且又易于表示的数据片段,这里定义每个数据片段长度为10秒。因此,P2P视频点播系统的多尺度分析示意图如图3所示。
在这里,假设一个节目被划分为5个数据片段A={a1,a2,a3,a4,a5),网络中共有10个节点参与其中P={p1,p2,...,p10),每个节点可对不同子任务提供不同完整程度的服务,各个节点对不同子任务提供服务的情况见下表,其中,括号中的值表示每个节点对对应子任务提供服务的完整程度,是节点拥有数据占子任务中全部数据的比例。
数据片段 |
对应服务节点 |
a1 |
p1(1.0),p2(0.8) |
a2 |
p2(1.0),p3(0.5),p5(0.9),p7(0.6) |
a3 |
p4(1.0),p6(0.9) |
a4 |
p2(1.0),p8(0.8),p9(0.8) |
a5 |
p7(0.6),p10(0.9) |
对于每个节点pi,根据其历史记录,可知为pi提供过服务的节点列表,这里,定义该列表中的所有节点为pi所对应的服务邻域。在该应用中,各个节点的服务邻域如下表:
假设节点p5请求20-30秒的数据,经分析后,可知所需数据片段为S={a2,a3},即子任务为S={a2,a3}。根据历史记录可知p5的邻域为则选择协作节点的过程如下:
1)计算邻域中任意两个节点间基础服务能力相关的互服务性;
这里当前可用带宽总量,当pt=pk时,则其中θ为一个预设的大数,这里设为10倍码率,则互服务矩阵如下,单位为倍码率:
q |
p2 |
p3 |
p4 |
p5 |
p6 |
p7 |
p2 |
10 |
5 |
5 |
5 |
5 |
5 |
p3 |
2 |
10 |
2 |
2 |
2 |
2 |
p4 |
3 |
3 |
10 |
3 |
3 |
3 |
p5 |
2 |
2 |
2 |
10 |
2 |
2 |
p6 |
2 |
2 |
2 |
2 |
10 |
2 |
p7 |
5 |
5 |
5 |
5 |
5 |
10 |
2)计算节点的负载系数;
则各节点负载系数如下所示:
p1 |
p2 |
p3 |
p4 |
p5 |
p6 |
p7 |
p8 |
p9 |
p10 |
0.50 |
0.83 |
0.67 |
0.6 |
0.5 |
0.67 |
0.63 |
0.4 |
0.5 |
0.5 |
3)计算节点间内容相关的互服务性G(pt,pk|si),这里定义
为每个服务单元p
k可为子任务s
i提供服务的完整程度;
为任意两个子任务a
i,a
j之间的相关性;条件集合Condition={节点带宽占用率≤β),这里β为预设值,且β∈[0,1],这里设β=0.9。
假设通过历史服务信息的记录,可以知道数据片段间在时序上的先后顺序出现情况,则定义
根据上式可计算任意两个子任务间的相关性,这里,设α=0.10,其相关性值见下表:
c |
a1 |
a2 |
a3 |
a4 |
a5 |
a1 |
0.10 |
0.45 |
0.09 |
0.09 |
0.27 |
a2 |
0.19 |
0.10 |
0.30 |
0.19 |
0.23 |
a3 |
0.15 |
0.10 |
0.10 |
0.60 |
0.05 |
a4 |
0.26 |
0.11 |
0.05 |
0.10 |
0.48 |
a5 |
0.34 |
0.21 |
0.13 |
0.21 |
0.10 |
经计算,可知,p4可提供a2的服务,p3和p7可能提供a3的服务。由于p3带宽占用超过预设上限,因此不属于候选节点,又因为p7无法提供a3的全部服务,则p7重新发起对a3的请求。这里,预设的递归停止条件为递归请求1次。在该次请求中,p7的邻域中不含有能为a3提供全部服务的节点,无法返回合适的协作节点,且达到递归停止条件,因此递归停止。最后,节点p5将外部服务器作为获取数据a3的协作节点。
说明文档中的其他现有技术内容针对本专业领域内的普通技术人员,均可进行技术实现,这里不再赘述。
最后所应说明的是,以上实施例仅用以说明本发明的技术方案而非限制。尽管参照实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,对本发明的技术方案进行修改或者等同替换,都不脱离本发明技术方案的精神和范围,其均应涵盖在本发明的权利要求范围当中。