环状数据处理架构的检测方法和装置制造方法及图纸

技术编号:15616056 阅读:141 留言:0更新日期:2017-06-14 03:22
本申请公开了一种环状数据处理架构的检测方法和装置。其中,该方法包括:检测多个数据处理节点是否均处于空闲状态,其中,多个数据处理节点为构成环状数据处理架构的节点;在检测到多个数据处理节点均处于空闲状态的情况下,控制心跳节点停止计数,其中,心跳节点为环状数据处理架构中用于记录多个数据处理节点处理数据的条数的节点;在停止计数时心跳节点关闭,并通过心跳节点依次控制多个数据处理节点关闭。本申请解决了现有技术中环状数据处理架构容易陷入死锁状态的技术问题。

【技术实现步骤摘要】
环状数据处理架构的检测方法和装置
本申请涉及计算机领域,具体而言,涉及一种环状数据处理架构的检测方法和装置。
技术介绍
数据处理架构(TPLDataflow)是微软提供的进行流式处理的框架,适合需要高并发、高性能的应用程序。TPLDataflow中最基础的组件是处理块(Block),其中,每个处理块(Block)又可以成为节点,Block相当于一个处理单元,每个Block定义了如何进行数据处理的逻辑。将多个Block链接起来,就组成了系统处理管道,只需要在管道开始处输入数据,接下来整个管道自动开始运行,从一个Block开始执行自己的处理逻辑,处理完成后将得到的数据投递到下一个或多个Block,最终完成整个管道的处理。参见图1,分词程序的处理管道的输入可以是多个文件,首先通过文件读取Block读取文件,并将文件传递至下一层Block(即,图1中分行Block);分行Block再将文件传递至下一层Block(即,分词Block);分词Block再将文件传递至单词计数Block。其中,文件读取Block,分行Block,分词Block和单词计数Block构成一个完整的数据处理管道。通过处理块构建的数据处理架构可以为环状,如图2所示,请求标记Block和链接分析Block构成一个环状的数据处理架构。在该环状数据处理架构中,请求标记Block对链接分析Block发起请求,将请求内容投递给链接分析Block。链接分析Block分析请求内容中存在的链接,将链接投递给请求标记Block,其中,当请求标记Block和链接分析Block之间没有任何待传递消息时,由于两个Block都在等待对方完成对消息的处理,因此,整个环状数据处理架构陷入死锁状态。针对上述的问题,目前尚未提出有效的解决方案。
技术实现思路
本申请实施例提供了一种环状数据处理架构的检测方法和装置,以至少解决现有技术中环状数据处理架构容易陷入死锁状态的技术问题。根据本申请实施例的一个方面,提供了一种环状数据处理架构的检测方法,该方法包括:检测多个数据处理节点是否均处于空闲状态,其中,所述多个数据处理节点为构成环状数据处理架构的节点;在检测到所述多个数据处理节点均处于空闲状态的情况下,控制心跳节点停止计数,其中,所述心跳节点为所述环状数据处理架构中用于记录所述多个数据处理节点处理数据的条数的节点;在停止计数时控制所述心跳节点关闭,并通过所述心跳节点依次控制所述多个数据处理节点关闭。进一步地,检测多个数据处理节点是否均处于空闲状态包括:记录所述心跳节点在第一时刻的心跳数;经过预设时间后再次记录所述心跳节点在第二时刻的心跳数和所述多个数据处理节点在所述第二时刻的缓存消息的数量;判断所述第二时刻的心跳数是否等于所述第一时刻的心跳数,并判断所述第二时刻的数量是否为零;在判断出所述第二时刻的心跳数等于所述第一时刻的心跳数且所述第二时刻的数量为零的情况下,确定每个所述节点均处于空闲状态。进一步地,所述多个数据处理节点中包括批数据处理节点,在检测到所述多个数据处理节点均处于空闲状态的情况下,并且在控制心跳节点停止计数之前,所述方法还包括:启动所述批数据处理节点;经过预设时间检测所述批数据处理节点是否处于空闲状态,其中,在检测到所述批数据处理节点处于所述空闲状态的情况下,则执行所述控制心跳节点停止计数的步骤。进一步地,检测所述批数据处理节点是否处于空闲状态包括:记录所述心跳节点在第一时刻的心跳数;经过预设时间后再次记录所述心跳节点在第二时刻的心跳数和所述批数据处理节点在所述第二时刻的缓存消息的数量;判断所述第二时刻的心跳数是否等于所述第一时刻的心跳数,并判断所述第二时刻的数量是否为零;在判断出所述第二时刻的心跳数等于所述第一时刻的心跳数且判断出所述第二时刻的数量为零的情况下,确定每个所述批数据处理节点处于空闲状态。进一步地,在检测所述多个数据处理节点中每个节点是否均处于空闲状态之前,所述方法还包括:接收检测指令,并根据所述检测指令检测所述多个数据处理节点是否处于空闲状态。根据本申请实施例的另一方面,还提供了一种环状数据处理架构的检测装置,该装置包括:第一检测单元,用于检测多个数据处理节点是否均处于空闲状态,其中,所述多个数据处理节点为构成环状数据处理架构的节点;第一控制单元,用于在检测到所述多个数据处理节点均处于空闲状态的情况下,控制心跳节点停止计数,其中,所述心跳节点为所述环状数据处理架构中用于记录所述多个数据处理节点处理数据的条数的节点;第二控制单元,用于在停止计数时控制所述心跳节点关闭,并通过所述心跳节点依次控制所述多个数据处理节点关闭。进一步地,所述第一检测单元包括:第一记录模块,用于记录所述心跳节点在第一时刻的心跳数;第二记录模块,用于经过预设时间后再次记录所述心跳节点在第二时刻的心跳数和所述多个数据处理节点在所述第二时刻的缓存消息的数量;第一判断模块,用于判断所述第二时刻的心跳数是否等于所述第一时刻的心跳数,并判断所述第二时刻的数量是否为零;第一确定模块,用于在判断出所述第二时刻的心跳数等于所述第一时刻的心跳数且所述第二时刻的数量为零的情况下,确定每个所述节点均处于空闲状态。进一步地,所述多个数据处理节点中包括批数据处理节点,所述装置还包括:启动单元,用于在所述第一检测单元检测到所述多个数据处理节点均处于空闲状态的情况下,并且在所述第一控制单元控制心跳节点停止计数之前,启动所述批数据处理节点;第二检测单元,用于经过预设时间检测所述批数据处理节点是否处于空闲状态,其中,在检测到所述批数据处理节点处于所述空闲状态的情况下,调用所述第二控制单元控制心跳节点停止计数。进一步地,所述第二检测单元包括:第三记录模块,用于记录所述心跳节点在第一时刻的心跳数;第四记录模块,用于经过预设时间后再次记录所述心跳节点在第二时刻的心跳数和所述批数据处理节点在所述第二时刻的缓存消息的数量;第二判断模块,用于判断所述第二时刻的心跳数是否等于所述第一时刻的心跳数,并判断所述第二时刻的数量是否为零;第二确定模块,用于在判断出所述第二时刻的心跳数等于所述第一时刻的心跳数且判断出所述第二时刻的数量为零的情况下,确定每个所述批数据处理节点处于空闲状态。进一步地,所述装置还包括:接收单元,用于在所述第一检测单元检测所述多个数据处理节点中每个节点是否均处于空闲状态之前,接收检测指令,并根据所述检测指令检测所述多个数据处理节点是否处于空闲状态。在本申请实施例中,采用检测多个数据处理节点是否均处于空闲状态,其中,所述多个数据处理节点为构成所述环状数据处理架构的节点;在检测到所述多个数据处理节点均处于空闲状态的情况下,控制心跳节点停止计数,其中,所述心跳节点为所述环状数据处理架构中用于记录所述多个数据处理节点处理数据的条数的节点;在停止计数时所述心跳节点关闭,并通过所述心跳节点依次控制所述多个数据处理节点关闭的方式。通过在检测到环状数据处理架构中的多个数据处理节点均处于空闲状态的情况下,心跳节点停止计数,即心跳阶段关闭,当心跳节点关闭时,控制多个数据处理节点依次关闭,相对于现有技术中环状数据处理架构中的多个数据处理节点之间在没有消息传递时,会进入死锁状态,本申请通过在环状数据处本文档来自技高网
...
环状数据处理架构的检测方法和装置

【技术保护点】
一种环状数据处理架构的检测方法,其特征在于,包括:检测多个数据处理节点是否均处于空闲状态,其中,所述多个数据处理节点为构成环状数据处理架构的节点;在检测到所述多个数据处理节点均处于空闲状态的情况下,控制心跳节点停止计数,其中,所述心跳节点为所述环状数据处理架构中用于记录所述多个数据处理节点处理数据的条数的节点;在停止计数时控制所述心跳节点关闭,并通过所述心跳节点依次控制所述多个数据处理节点关闭。

【技术特征摘要】
1.一种环状数据处理架构的检测方法,其特征在于,包括:检测多个数据处理节点是否均处于空闲状态,其中,所述多个数据处理节点为构成环状数据处理架构的节点;在检测到所述多个数据处理节点均处于空闲状态的情况下,控制心跳节点停止计数,其中,所述心跳节点为所述环状数据处理架构中用于记录所述多个数据处理节点处理数据的条数的节点;在停止计数时控制所述心跳节点关闭,并通过所述心跳节点依次控制所述多个数据处理节点关闭。2.根据权利要求1所述的方法,其特征在于,检测多个数据处理节点是否均处于空闲状态包括:记录所述心跳节点在第一时刻的心跳数;经过预设时间后再次记录所述心跳节点在第二时刻的心跳数和所述多个数据处理节点在所述第二时刻的缓存消息的数量;判断所述第二时刻的心跳数是否等于所述第一时刻的心跳数,并判断所述第二时刻的数量是否为零;在判断出所述第二时刻的心跳数等于所述第一时刻的心跳数且所述第二时刻的数量为零的情况下,确定每个所述节点均处于空闲状态。3.根据权利要求1所述的方法,其特征在于,所述多个数据处理节点中包括批数据处理节点,在检测到所述多个数据处理节点均处于空闲状态的情况下,并且在控制心跳节点停止计数之前,所述方法还包括:启动所述批数据处理节点;经过预设时间检测所述批数据处理节点是否处于空闲状态,其中,在检测到所述批数据处理节点处于所述空闲状态的情况下,则执行所述控制心跳节点停止计数的步骤。4.根据权利要求3所述的方法,其特征在于,检测所述批数据处理节点是否处于空闲状态包括:记录所述心跳节点在第一时刻的心跳数;经过预设时间后再次记录所述心跳节点在第二时刻的心跳数和所述批数据处理节点在所述第二时刻的缓存消息的数量;判断所述第二时刻的心跳数是否等于所述第一时刻的心跳数,并判断所述第二时刻的数量是否为零;在判断出所述第二时刻的心跳数等于所述第一时刻的心跳数且判断出所述第二时刻的数量为零的情况下,确定每个所述批数据处理节点处于空闲状态。5.根据权利要求1所述的方法,其特征在于,在检测所述多个数据处理节点中每个节点是否均处于空闲状态之前,所述方法还包括:接收检测指令,并根据所述检测指令检测所述多个数据处理节点是否处于空闲状态。6.一种环状数据处理架构的检测装置,其特征在于,包括:第一检测单元,用于检测多个数据处理节点是否均处于空闲状态,其中,所述多个数据...

【专利技术属性】
技术研发人员:何恺铎
申请(专利权)人:北京国双科技有限公司
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1