CN110190991B - 一种多应用场景下的分布式流处理系统的容错方法 - Google Patents

一种多应用场景下的分布式流处理系统的容错方法 Download PDF

Info

Publication number
CN110190991B
CN110190991B CN201910423546.0A CN201910423546A CN110190991B CN 110190991 B CN110190991 B CN 110190991B CN 201910423546 A CN201910423546 A CN 201910423546A CN 110190991 B CN110190991 B CN 110190991B
Authority
CN
China
Prior art keywords
node
task
tasks
nodes
processing system
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201910423546.0A
Other languages
English (en)
Other versions
CN110190991A (zh
Inventor
陈汉华
金海�
詹晶晶
张凡
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huazhong University of Science and Technology
Original Assignee
Huazhong University of Science and Technology
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huazhong University of Science and Technology filed Critical Huazhong University of Science and Technology
Priority to CN201910423546.0A priority Critical patent/CN110190991B/zh
Publication of CN110190991A publication Critical patent/CN110190991A/zh
Application granted granted Critical
Publication of CN110190991B publication Critical patent/CN110190991B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/06Management of faults, events, alarms or notifications
    • H04L41/0654Management of faults, events, alarms or notifications using network fault recovery
    • H04L41/0663Performing the actions predefined by failover planning, e.g. switching to standby network elements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/06Management of faults, events, alarms or notifications
    • H04L41/0654Management of faults, events, alarms or notifications using network fault recovery
    • H04L41/0668Management of faults, events, alarms or notifications using network fault recovery by dynamic selection of recovery network elements, e.g. replacement by the most appropriate element after failure
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1008Server selection for load balancing based on parameters of servers, e.g. available memory or workload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1012Server selection for load balancing based on compliance of requirements or conditions with available server resources
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1034Reaction to server failures by a load balancer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/50Network service management, e.g. ensuring proper service fulfilment according to agreements
    • H04L41/5041Network service management, e.g. ensuring proper service fulfilment according to agreements characterised by the time relationship between creation and deployment of a service
    • H04L41/5051Service on demand, e.g. definition and deployment of services in real time

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Hardware Redundancy (AREA)

Abstract

本发明公开了一种多应用场景下的分布式流处理系统的容错方法,属于分布式流处理领域。本发明通过对所有节点的历史有效数据分析以及实时负载数据的监测,有效地根据节点不同负载状态采取了主动备份机制或者检查点机制,从而有效解决了流处理系统中的计算节点故障恢复延迟高的问题,降低了容错开销,极大缩短了恢复延迟,提高系统的可靠性。通过在多应用场景下通过负载感知进行热备任务选择和备用节点选择,合理选取备用节点用于运行部分任务的副本任务,利用空闲节点上的空闲资源为忙碌节点上的任务做热备,从而显著缩短忙碌节点在发生故障时的恢复时延,同时提高分布式流处理系统容错机制的资源利用率和可靠性。

Description

一种多应用场景下的分布式流处理系统的容错方法
技术领域
本发明属于分布式流处理领域,更具体地,涉及一种多应用场景下的分布式流处理系统的容错方法。
背景技术
随着分布式计算技术在各个应用领域的不断扩展,分布式流处理系统被广泛应用在众多领域,例如,金融管理、网络监视、通讯数据管理、WEB应用、传感器网络数据处理等。分布式流处理系统是指采用分布式系统处理数据流业务的互联网软件系统。通过分布式技术,使得流数据不再集中放置于一个单一的服务器(节点)上进行处理,而是把所有应用逻辑分布在网络中的各个子节点上,通过子节点进行独立处理,然后将结果汇总到下游传输节点,形成数据流传输中的特有的有向无环图,最终将结果输出给用户。
分布式流处理系统中要处理规模巨大的流数据,系统往往需要成百上千个机器共同协作运行,机器发生故障的频率逐渐增高,范围逐渐增大。当单个节点发生故障时就会导致数据处理中断,失效节点丢失内存中处理的数据以及状态信息,该节点即将发送给其他下游节点的数据以及近期接收到的数据也将全部丢失。进而将导致流处理系统无法实时处理源源不断流入的数据,无法满足系统的实时性以及高可用性。因此需要流处理系统具备良好的容错机制从而具备较强的容错性。分布式流处理系统的容错是指系统内容出现故障的情况下,仍然能够向外部环境提供正确服务的能力。
典型的流处理系统的容错机制一般分为三种:(1)主动备份(activereplication)是指在流处理系统中每个节点都有一个节点作为备份,称原来的节点为主节点,其备份为备用节点。两节点运行相同的实例。一般来说,备用节点与主节点接收相同的数据流,执行的相同的操作,然后将处理结果发送给同一个下游节点,由下游节点去除重复的数据。一旦主节点发生失效,备用节点立刻替代已失效主节点继续进行处理,原主节点重新恢复后作为新的备用节点继续工作。主动备份机制由于需要同时运行主节点以及备用节点,二者在数据处理,通信,资源消耗方面基本同步,因此失效恢复时用时基本为零,但是需要耗费几乎两倍的计算及网络资源,因此常常用在容错实时性以及准确性较高的应用场景中。(2)检查点(checkpoints)是指通过周期性的提取主节点上实例的状态,例如,节点上实例的内部计算状态以及输入输出队列,存储到备用节点中,当主节点发生故障时,新的可用节点可以从备用节点中读取最近一次的检查点,获取其状态信息及数据,重新连接上下游节点然后重新进行计算,由于检查点机制所需要消耗的系统资源量较少,因此检查点机制适合应用在资源消耗少而可容忍较长恢复延时的应用中。(3)上游备份(upstream backup)是指将数据保存在上游节点而非备用节点中,因此可以在下游节点发生失效时由上游节点进行数据重发,下游节点重新计算。并且上游节点中保存的数据会随着处理结果产生而更新删除。对于资源消耗严苛的应用场景则适用于上游备份机制,以牺牲恢复延迟的代价保证资源消耗最低。
然而,上述容错机制都是针对系统中单个节点发生故障时采取的解决方法,并不适用于多节点同时失效的情况。在分布式流处理系统中,当路由、交换机或机架等发生故障时,会导致大量节点同时失效,称为关联失效。而分布式流处理系统中为了降低上下游节点间通信延迟以及提高资源利用率,通常将上下游的相邻节点部署在临近机器,同一机器或者同一机架上,因此在发生上述故障时,大量上下游节点往往同时发生关联失效。在这种情况下,分布式流处理系统的恢复延迟就会因为下游节点需要等待上游节点恢复正常以后重发最新的数据,然后开始自身的恢复工作而大大增加系统恢复时延。此外,上述容错机制都是针对单应用环境,即在一个流处理系统中同时只部署并运行仅一个流应用的情况。实际上,大规模流处理系统上往往运行着多个流处理应用,不同的应用在不同时间都呈现着不同的数据流入速率,因此每个计算节点的负载处于动态变化且无法准确预测的状态。已有的针对单应用的流处理系统容错机制往往难以解决大规模节点发生关联失效的问题,因此导致系统长时间宕机,系统性能降低。
发明内容
针对现有技术的缺陷,本发明的目的在于解决现有技术分布式流处理系统的容错方法在多应用场景多流应用时恢复时间很长、备用节点利用率低的技术问题。
为实现上述目的,第一方面,本发明实施例提供了一种多应用场景下的分布式流处理系统的容错方法,所述分布式流处理系统初始为检查点机制,分布式流处理系统中所有工作节点集合Ω={N1,…,Ni,…,Nn},运行在工作节点Ni上的所有任务集合
Figure BDA0002066752760000031
n为分布式流处理系统中所有工作节点的总个数,mi为工作节点Ni上的所有任务的总个数;
该方法包括以下步骤:
S1.实时监测分布式流处理系统中所有工作节点的所有任务的运行状态信息;
S2.根据各工作节点Ni的所有任务的运行状态信息,计算该工作节点的负载增长比
Figure BDA0002066752760000032
和该工作节点上任务tj的负载增长比
Figure BDA0002066752760000033
S3.集合Ω中满足
Figure BDA0002066752760000034
的所有工作节点构成热备节点候选集合Q,剩余节点构成空闲节点集合R;
S4.集合Q中满足
Figure BDA0002066752760000035
的所有任务构成热备任务候选集合P;
S5.从集合P中选取无备份的任务构成热备任务集合P*,采用主动备份机制,将集合P*的任务备份部署到集合R上。
具体地,所述任务的运行状态信息包括:该任务对应的等待队列长度
Figure BDA0002066752760000036
该任务对应的实时数据输入速率
Figure BDA0002066752760000037
该任务需要的计算资源
Figure BDA0002066752760000038
具体地,
Figure BDA0002066752760000041
Figure BDA0002066752760000042
Figure BDA0002066752760000043
Figure BDA0002066752760000044
其中,
Figure BDA0002066752760000045
为节点Ni时刻s的总负载;
Figure BDA0002066752760000046
为节点Ni上任务tj时刻s的负载,s为当前时刻,s-1表示从当前时刻开始Δs的时间间隔以前的时刻称为上一时刻。
具体地,步骤S5采用排序法,具体如下:
对P中所有任务以节点为范围,对每个节点上所有任务的负载进行排序,然后依次选择P集合中每个节点上第一个未被部署的任务备份部署到空闲节点上,直至所有任务都部署完或者找不到任何一个空闲节点来放。
具体地,步骤S5采用随机法,具体如下:
将P中所有任务备份依次随机部署到空闲节点上,直至所有任务都部署完或者找不到任何一个空闲节点来放。
具体地,步骤S5采用贪婪方法,包括以下步骤:
(1)每准备将P中一个任务tj备份部署到空闲节点上时,判断是否满足
Figure BDA0002066752760000047
若是,将该任务添加到P*中,否则,不添加,添加任务tj后更新
Figure BDA0002066752760000048
Figure BDA0002066752760000049
为P*中当前所有任务进行热备后所得到平均收益;
(2)对P*中每个节点的任务的负载增长比进行降序排序,结果为集合Y={y1,y2,…,yq},其中,yi表示节点Ni的负载增长比排序列表,
Figure BDA00020667527600000410
m′i为节点Ni上热备任务的总个数,q为P*中任务所在节点的个数;
(3)R中所有节点按照空余资源情况降序排序,得到节点列表R′={R1,R2,…R|R|},|R|为集合R中节点总个数;
(4)将P*中各节点的第一个任务备份依次部署到R′中第一个备用节点上去;
(5)判断第一个备用节点剩余空闲资源是否为0,若是,则移除已经备份过的任务以及该节点,否则,移除已经备份过的任务;更新集合Y和R′,判断Y是否为空或者R′是否为空,若是,结束,否则,进入步骤(3)。
具体地,P*中当前所有任务进行热备后所得到平均收益
Figure BDA0002066752760000055
计算公式如下:
Figure BDA0002066752760000051
Figure BDA0002066752760000052
其中,
Figure BDA0002066752760000053
为任务tj进行热备后的备份效益,
Figure BDA0002066752760000056
为节点Ni上任务tj时刻s的负载。
具体地,P*中的所有任务进行热备后对γ个节点所带来的整体收益U计算公式如下:
Figure BDA0002066752760000054
其中,γ为P*中的k个任务所在的节点的总个数。
具体地,从集合P中选取无备份的任务构成热备任务集合P*时,需要同时满足以下两个限制条件:
①每个被选取的任务在所有节点上拥有的备份个数应当等于0;
②可用节点Ri∈R上用于任务备份的资源不能大于当前节点上的所有剩余可用资源。
第二方面,本发明实施例提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述第一方面所述的多应用场景下的分布式流处理系统的容错方法。
总体而言,通过本发明所构思的以上技术方案与现有技术相比,具有以下有益效果:
1.本发明通过对所有节点的历史有效数据分析以及实时负载数据的监测,有效地根据节点不同负载状态采取了主动备份机制或者检查点机制,从而有效解决了流处理系统中的计算节点故障恢复延迟高的问题,降低了容错开销,极大缩短了恢复延迟,提高系统的可靠性。
2.本发明通过在多应用场景下通过负载感知进行热备任务选择和备用节点选择,合理选取备用节点用于运行部分任务的副本任务,利用空闲节点上的空闲资源为忙碌节点上的任务做热备,最终满足节点忙碌状态下的低恢复延时以及节点空闲状态下的资源节约性需求,从而显著缩短忙碌节点在发生故障时的恢复时延,同时提高分布式流处理系统容错机制的资源利用率和可靠性。
附图说明
图1为本发明实施例提供的一种多应用场景下的分布式流处理系统的容错方法流程图;
图2为本发明实施例提供的贪婪方法流程图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
分布式流处理系统中往往同时部署并运行着多个不同的流应用,每个流应用由于其应用独特性以及数据流的波动性,会导致同一时间各个应用之间存在工作负载差异,从而出现同一时间不同节点之间以及同一节点上的不同任务之间呈现显著不同的负载差异。针对流处理应用数据流的波动性,本发明提出在多应用场景下利用空闲节点上的空闲资源为忙碌节点上的任务做热备,从而显著缩短忙碌节点在发生故障时的恢复时延,同时提高分布式流处理系统容错机制的资源利用率和可靠性。
如图1所示,本发明提出一种多应用场景下的分布式流处理系统的容错方法,所述分布式流处理系统初始为检查点机制,分布式流处理系统中所有工作节点集合Ω={N1,…,Ni,…,Nn},运行在工作节点Ni上的所有任务集合
Figure BDA0002066752760000071
n为分布式流处理系统中所有工作节点的总个数,mi为工作节点Ni上的所有任务的总个数,该方法包括以下步骤:
S1.实时监测分布式流处理系统中所有工作节点的所有任务的运行状态信息;
S2.根据各工作节点Ni的所有任务的运行状态信息,计算该工作节点的负载增长比
Figure BDA0002066752760000072
和该工作节点上任务tj的负载增长比
Figure BDA0002066752760000073
S3.集合Ω中满足
Figure BDA0002066752760000074
的所有工作节点构成热备节点候选集合Q,剩余节点构成空闲节点集合R;
S4.集合Q中满足
Figure BDA0002066752760000075
的所有任务构成热备任务候选集合P;
S5.从集合P中选取无备份的任务构成热备任务集合P*,采用主动备份机制,将集合P*的任务备份部署到集合R上。
步骤S1.实时监测分布式流处理系统中所有工作节点的所有任务的运行状态信息。
分布式流处理系统中所有工作节点(Worker节点)集合Ω={N1,…,Ni,…,Nn},运行在工作节点Ni上的所有任务集合
Figure BDA0002066752760000076
n为分布式流处理系统中所有工作节点的总个数,mi为工作节点Ni上的所有任务的总个数。每个任务对应一个等待队列,队列元素为来不及处理的元组。分布式流处理系统初始为检查点机制。时间间隔Δs的取值范围[5s,5min]。
通过实时监测节点负载信息,结合节点历史负载信息预测节点未来的负载情况。具体地,实时监测分布式流处理系统中所有工作节点的所有任务的运行状态信息,每个任务的运行状态信息包括:该任务对应的等待队列长度
Figure BDA0002066752760000081
该任务对应的实时数据输入速率
Figure BDA0002066752760000082
该任务需要的计算资源
Figure BDA0002066752760000083
步骤S2.根据各工作节点Ni的所有任务的运行状态信息,计算该工作节点的负载增长比
Figure BDA0002066752760000084
和该工作节点上任务tj的负载增长比
Figure BDA0002066752760000085
Figure BDA0002066752760000086
Figure BDA0002066752760000087
Figure BDA0002066752760000088
Figure BDA0002066752760000089
其中,
Figure BDA00020667527600000810
为节点Ni时刻s的总负载,反映了节点负载情况;
Figure BDA00020667527600000811
为节点Ni上任务tj时刻s的负载。s为当前时刻,s-1表示从当前时刻开始Δs的时间间隔以前的时刻称为上一时刻。
步骤S3.集合Ω中满足
Figure BDA00020667527600000812
的所有工作节点构成热备节点候选集合Q,剩余节点构成空闲节点集合R。
通过实时监测节点负载信息,结合节点历史负载信息预测节点未来的负载情况,并将部署在忙碌节点上的任务加入到热备任务候选集。
Figure BDA00020667527600000813
大于等于设定阈值α时,该节点为忙碌节点,则将该节点添加到热备节点候选集合Q中;当
Figure BDA00020667527600000814
小于设定阈值α时,该节点为空闲节点,取消该节点上的已有的主动备份任务,将该节点添加到空闲节点集合R中,最终,集合Q中的元素个数应小于等于总的节点个数n。设定阈值α取值范围[0.7,∞)。R∪Q=Ω。
取消该节点上的已有的主动备份任务后,只有检查点机制。
步骤S4.集合Q中满足
Figure BDA0002066752760000091
的所有任务构成热备任务候选集合P。
热备任务是指主动备份的任务。从集合Q各节点中筛选出满足
Figure BDA0002066752760000092
大于等于设定阈值β的任务,添加到热备任务候选集P中,集合P用于集中所有负载满足备份条件的任务。但是并非集合中所有任务都能被备份,为提高热备效率,这些任务将等待进一步筛选。设定阈值β取值范围[0.7,∞)。
步骤S5.从集合P中选取无备份的任务构成热备任务集合P*,采用主动备份机制,将集合P*的任务备份部署到集合R上。
根据空闲节点的资源使用情况,从热备任务候选集中选取使得忙碌节点在发生故障时的恢复时延最小的部分关键任务,将其切换到热备状态。对处于热备状态的任务,将其副本任务部署到指定的空闲节点。
热备任务候选集合P={t1,…,tj,…,tK},且任务tj的负载增长比
Figure BDA0002066752760000093
空闲节点集合R满足
Figure BDA0002066752760000094
ri为节点Ri上所有的空余资源量,r代表每个工作节点上的计算资源。由于空闲资源有限,因此,只能在K个任务选择k个任务进行热备,满足0<k≤K。这k个任务tj组成集合P*={t1,…,tj,…,tk}。
Figure BDA0002066752760000095
表示任务tj在节点Ni上是否有备份,即
Figure BDA0002066752760000096
每个任务在整个分布式流处理系统中最多只有一个备份任务。从K个任务选择k个任务进行热备时,需要同时满足以下两个限制条件:
①每个任务tj在所有节点上拥有的备份个数应当等于0,即
Figure BDA0002066752760000097
Figure BDA0002066752760000098
即不能有备份;
②可用节点Ri∈R上用于任务备份的资源不能大于当前节点上的所有剩余可用资源,即
Figure BDA0002066752760000101
其中,
Figure BDA0002066752760000102
表示将要部署在可用节点Ri的任务tj′所需的资源。
热备任务越多,系统的恢复延迟越低,所以k需要最大化。本发明设计了三种不同的方法,从K个任务选择k个任务进行热备。
第一种方法:排序法
对P中所有任务以节点为范围,对每个节点上所有任务的负载进行排序,例如,Node A上
Figure BDA0002066752760000103
Node B上
Figure BDA0002066752760000104
然后依次选择P集合中每个节点上第一个任务t3、t2备份部署到空闲节点上,然后,依次选择集合中第二个任务t5、t1,以此类推,直至所有任务都部署完或者找不到任何一个空闲节点来放。
第二种方法:随机方法将P中所有任务备份依次随机部署到空闲节点上,直至所有任务都部署完或者找不到任何一个空闲节点来放。
第三种方法:贪婪方法
由于节点的恢复延迟与节点上的任务的负载直接相关,任务负载越重,节点恢复延迟越高,因此对负载重的任务进行热备,使得这部分任务发生节点失效时,恢复时间为零,从而使整体节点恢复延迟降低。如图2所示,贪婪方法包括以下步骤:
(1)从K个候选热备任务筛选出k个热备任务
为了保证添加的每一个任务的收益
Figure BDA0002066752760000105
都能使整体收益U增加,对热备任务候选集合P中的所有任务,每准备添加一个任务tj时,判断是否满足
Figure BDA0002066752760000106
若是,将该任务添加到P*中,否则,不添加,添加任务tj后更新平均收益
Figure BDA0002066752760000107
P*中当前所有任务进行热备后所得到平均收益
Figure BDA0002066752760000108
计算公式如下:
Figure BDA0002066752760000109
Figure BDA00020667527600001010
其中,
Figure BDA0002066752760000111
为任务tj进行热备后的备份效益。
P*中的所有任务进行热备后对γ个节点所带来的整体收益U计算公式如下:
Figure BDA0002066752760000112
其中,γ为P*中的k个任务所在的节点的总个数,满足γ≤k。
(2)排序
P*中任务所在节点的个数为q,对P*中每个节点的任务的负载增长比进行降序排序,结果为集合Y={y1,y2,…,yq},其中,yi表示节点Ni的负载增长比排序列表,
Figure BDA0002066752760000113
其中,m′i为节点Ni上热备任务的总个数,满足m′i≤mi
(3)R中所有节点按照空余资源情况降序排序,得到节点列表R′={R1,R2,…R|R′|};
(4)将P*中各节点的第一个任务备份依次部署到R′中第一个备用节点上去;
(5)判断第一个备用节点剩余空闲资源是否为0,若是,则移除已经备份过的任务以及该节点,否则,移除已经备份过的任务;更新集合Y和R’,判断Y是否为空或者R’是否为空,若是,结束,否则,进入步骤(3)。
通过执行上述方法,能够保障在充分利用空闲节点资源的情况下,最小化系统恢复时延。
以上,仅为本申请较佳的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应该以权利要求的保护范围为准。

Claims (10)

1.一种多应用场景下的分布式流处理系统的容错方法,其特征在于,
所述分布式流处理系统初始为检查点机制,分布式流处理系统中所有工作节点集合Ω={N1,…,Ni,…,Nn},运行在工作节点Ni上的所有任务集合
Figure FDA0002403461000000011
i=1,2,…,n,j=1,2,…,mi,n为分布式流处理系统中所有工作节点的总个数,mi为工作节点Ni上的所有任务的总个数;
该方法包括以下步骤:
S1.实时监测分布式流处理系统中所有工作节点的所有任务的运行状态信息;
S2.根据各工作节点Ni的所有任务的运行状态信息,计算该工作节点的负载增长比
Figure FDA0002403461000000012
和该工作节点上任务tj的负载增长比
Figure FDA0002403461000000013
S3.集合Ω中满足
Figure FDA0002403461000000014
≥阈值α的所有工作节点构成热备节点候选集合Q,剩余节点构成空闲节点集合R;
S4.集合Q中满足
Figure FDA0002403461000000015
≥阈值β的所有任务构成热备任务候选集合P;
S5.从集合P中选取无备份的任务构成热备任务集合P*,采用主动备份机制,将集合P*的任务备份部署到集合R上。
2.如权利要求1所述的分布式流处理系统的容错方法,其特征在于,所述任务的运行状态信息包括:该任务对应的等待队列长度
Figure FDA0002403461000000016
该任务对应的实时数据输入速率
Figure FDA0002403461000000017
该任务需要的计算资源
Figure FDA0002403461000000018
3.如权利要求2所述的分布式流处理系统的容错方法,其特征在于,
Figure FDA0002403461000000021
Figure FDA0002403461000000022
Figure FDA0002403461000000023
Figure FDA0002403461000000024
其中,
Figure FDA0002403461000000025
为节点Ni时刻s的总负载;
Figure FDA0002403461000000026
为节点Ni上任务tj时刻s的负载,s为当前时刻,s-1为上一时刻,表示从当前时刻开始Δs的时间间隔以前的时刻。
4.如权利要求1所述的分布式流处理系统的容错方法,其特征在于,步骤S5采用排序法,具体如下:
对P中所有任务以节点为范围,对每个节点上所有任务的负载进行排序,然后依次选择P集合中每个节点上第一个未被部署的任务备份部署到空闲节点上,直至所有任务都部署完或者找不到任何一个空闲节点来放。
5.如权利要求1所述的分布式流处理系统的容错方法,其特征在于,步骤S5采用随机法,具体如下:
将P中所有任务备份依次随机部署到空闲节点上,直至所有任务都部署完或者找不到任何一个空闲节点来放。
6.如权利要求1所述的分布式流处理系统的容错方法,其特征在于,步骤S5采用贪婪方法,包括以下步骤:
(1)每准备将P中一个任务tj备份部署到空闲节点上时,判断是否满足
Figure FDA0002403461000000031
若是,将该任务添加到P*中,否则,不添加,添加任务tj后更新
Figure FDA0002403461000000032
Figure FDA0002403461000000033
为P*中当前所有任务进行热备后所得到平均收益,
Figure FDA0002403461000000034
为任务tj进行热备后的备份效益;
(2)对P*中每个节点的任务的负载增长比进行降序排序,结果为集合Y={y1,…,yi,…,yq},其中,yi表示节点Ni的负载增长比排序列表,
Figure FDA0002403461000000035
m'i为节点Ni上热备任务的总个数,q为P*中任务所在节点的个数;
(3)R中所有节点按照空余资源情况降序排序,得到节点列表R'={R1,R2,…R|R|},|R|为集合R中节点总个数;
(4)将P*中各节点的第一个任务备份依次部署到R'中第一个备用节点上去;
(5)判断第一个备用节点剩余空闲资源是否为0,若是,则移除已经备份过的任务以及该节点,否则,移除已经备份过的任务;更新集合Y和R' ,判断Y是否为空或者R' 是否为空,若是,结束,否则,进入步骤(3)。
7.如权利要求6所述的分布式流处理系统的容错方法,其特征在于,P*中当前所有任务进行热备后所得到平均收益
Figure FDA0002403461000000036
计算公式如下:
Figure FDA0002403461000000037
Figure FDA0002403461000000038
其中,
Figure FDA0002403461000000039
为节点Ni上任务tj时刻s的负载,k为P*中任务数量。
8.如权利要求6所述的分布式流处理系统的容错方法,其特征在于,P*中的所有任务进行热备后对γ个节点所带来的整体收益U计算公式如下:
Figure FDA0002403461000000041
其中,γ为P*中的k个任务所在的节点的总个数。
9.如权利要求4至8任一项所述的分布式流处理系统的容错方法,其特征在于,从集合P中选取无备份的任务构成热备任务集合P*时,需要同时满足以下两个限制条件:
①每个被选取的任务在所有节点上拥有的备份个数应当等于0;
②可用节点Ri∈R上用于任务备份的资源不能大于当前节点上的所有剩余可用资源。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至9任一项所述的多应用场景下的分布式流处理系统的容错方法。
CN201910423546.0A 2019-05-21 2019-05-21 一种多应用场景下的分布式流处理系统的容错方法 Active CN110190991B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910423546.0A CN110190991B (zh) 2019-05-21 2019-05-21 一种多应用场景下的分布式流处理系统的容错方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910423546.0A CN110190991B (zh) 2019-05-21 2019-05-21 一种多应用场景下的分布式流处理系统的容错方法

Publications (2)

Publication Number Publication Date
CN110190991A CN110190991A (zh) 2019-08-30
CN110190991B true CN110190991B (zh) 2020-06-02

Family

ID=67717141

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910423546.0A Active CN110190991B (zh) 2019-05-21 2019-05-21 一种多应用场景下的分布式流处理系统的容错方法

Country Status (1)

Country Link
CN (1) CN110190991B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110780974B (zh) * 2019-09-10 2022-03-01 杭州电子科技大学 一种移动边缘计算环境下面向工作流的容错调度方法
CN111400026B (zh) * 2019-11-15 2023-02-28 河海大学 一种基于主从备份技术的分布式负载均衡方法
CN110888761B (zh) * 2019-11-29 2023-04-28 北京仿真中心 一种基于关键任务部分主动备份的容错方法和流处理平台
CN113312210B (zh) * 2021-05-28 2022-07-29 北京航空航天大学 一种流式处理系统的轻量级容错方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103763373A (zh) * 2014-01-23 2014-04-30 浪潮(北京)电子信息产业有限公司 一种基于云计算的调度方法和调度器
CN108540559A (zh) * 2018-04-16 2018-09-14 北京航空航天大学 一种支持IPSec VPN负载均衡的SDN控制器

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090192981A1 (en) * 2008-01-29 2009-07-30 Olga Papaemmanouil Query Deployment Plan For A Distributed Shared Stream Processing System
CN102833095A (zh) * 2012-08-10 2012-12-19 南京南瑞继保电气有限公司 一种多专业、大容量实时数据采集方法
US20160269247A1 (en) * 2015-03-13 2016-09-15 Nec Laboratories America, Inc. Accelerating stream processing by dynamic network aware topology re-optimization

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103763373A (zh) * 2014-01-23 2014-04-30 浪潮(北京)电子信息产业有限公司 一种基于云计算的调度方法和调度器
CN108540559A (zh) * 2018-04-16 2018-09-14 北京航空航天大学 一种支持IPSec VPN负载均衡的SDN控制器

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Ares:a High Performance and Fault-tolerant Distributed Stream Proccessing System;Changfu Lin等;《2018 IEEE 26th International Coference on Network Protocols》;20181108;全文 *

Also Published As

Publication number Publication date
CN110190991A (zh) 2019-08-30

Similar Documents

Publication Publication Date Title
CN110190991B (zh) 一种多应用场景下的分布式流处理系统的容错方法
CN110190987B (zh) 基于备份收益与重映射的虚拟网络功能可靠性部署方法
CN107315760B (zh) 用于连续图更新和计算的平台
CN114218012A (zh) 用于在集群系统中备份和恢复数据的方法和系统
CN105335251A (zh) 一种故障恢复方法及系统
CN103139302A (zh) 考虑负载均衡的实时副本调度方法
Talwar et al. An energy efficient agent aware proactive fault tolerance for preventing deterioration of virtual machines within cloud environment
Garg et al. Fault tolerant task scheduling on computational grid using checkpointing under transient faults
CN114281508A (zh) 一种数据批流融合离线计算方法
Altameem Fault tolerance techniques in grid computing systems
Huda et al. An agent oriented proactive fault-tolerant framework for grid computing
Ali et al. Probabilistic normed load monitoring in large scale distributed systems using mobile agents
Ibrahim et al. Improving mapreduce performance with progress and feedback based speculative execution
CN111352930A (zh) 一种模板数据处理方法、装置、服务器和存储介质
CN111274111A (zh) 一种用于微服务老化的预测与抗衰方法
CN108763312B (zh) 一种基于负载的从数据节点筛选方法
Singh et al. Using host criticalities for fault tolerance in mobile agent systems
CN114598591A (zh) 嵌入式平台节点故障恢复系统及方法
Amoon A Fault Tolerant Scheduling System Based on Check pointing for Computational Grids
Ooi et al. Dynamic service placement and redundancy to ensure service availability during resource failures
Zhu et al. Supporting fault-tolerance in streaming grid applications
CN103970854A (zh) Sap ecc端与sap bw端之间增量凭证信息同步方法
CN114595000B (zh) 一种面向边缘智能的高弹性多节点协同模型卸载方法
Bhagyashree et al. A hierarchical fault detection and recovery in a computational grid using watchdog timers
Kim et al. The adaptable distributed recovery block scheme and a modular implementation model

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant