业务监控方法和装置的制造方法

文档序号:10624682阅读:296来源:国知局
业务监控方法和装置的制造方法
【专利摘要】本发明公开了一种业务监控方法和装置,属于计算机技术领域。该方法用于包括调度单元和至少一个计算单元的业务监控系统中,该方法包括:通过调度单元在节点关系图中处于数据未知状态的节点中,查找可运算节点;通过调度单元将各个可运算节点的节点信息分配至计算单元提供的至少两个计算进程;通过至少两个计算进程对各个可运算节点进行计算;在计算进程计算到可运算节点的数据后,通过调度单元在节点关系图中更新可运算节点的状态为数据已知状态,并在节点关系图中仍然存在处于数据未知的节点时,重新执行查找可运算节点的操作;解决了现有技术中业务监控系统计算需要监控的数据时所需要的计算时长较长,无法满足监控实时性的要求的问题。
【专利说明】
业务监控方法和装置
技术领域
[0001]本发明涉及计算机技术领域,特别涉及一种业务监控方法和装置。【背景技术】
[0002]业务系统中通常包括很多个需要监控的节点,每个节点可以在每分钟产生一次数据。不同节点所产生的数据可能还互相依赖,对于这种互相依赖的节点,业务监控系统需要进行计算之后才能得到该节点对应的需要监控的数据。
[0003]为了保证监控的实时性,业务监控系统通常需要在一分钟内将各个节点在当前分钟内产生的数据计算完毕,得到需要监控的数据并存储至指定位置。但业务系统中需要监控的节点的数量级很大时,比如达到千万级时,业务监控系统在计算需要监控的数据时所需要的计算时长也会很长,无法满足监控实时性的要求。
【发明内容】

[0004]为了解决现有技术中对各个业务节点的监控实时性较差的问题,本发明实施例提供了一种业务监控方法和装置。所述技术方案如下:
[0005]第一方面,提供了一种业务监控方法,用于包括调度单元和至少一个计算单元的业务监控系统中,业务监控系统用于对节点关系图中各个节点在业务监控时所对应的数据进行计算,该方法包括:
[0006]通过调度单元在节点关系图中处于数据未知状态的节点中,查找可运算节点;节点关系图是有向无环图,节点关系图中第i+1层节点的数据的计算依赖于节点在第i层中的子节点的数据,可运算节点是自身所依赖的各个子节点均处于数据已知状态的节点,初始状态的节点关系图中位于底层的第1层节点均处于数据已知状态,i多1 ;
[0007]通过调度单元将各个可运算节点的节点信息分配至计算单元提供的至少两个计算进程;通过至少两个计算进程对各个可运算节点进行计算;
[0008]在计算进程计算到可运算节点的数据后,通过调度单元在节点关系图中更新可运算节点的状态为数据已知状态,并在节点关系图中仍然存在处于数据未知的节点时,重新执行查找可运算节点的操作。
[0009]第二方面,提供了一种业务监控装置,装置用于包括调度单元和至少一个计算单元的业务监控系统中,业务监控系统用于对节点关系图中各个节点在业务监控时所对应的数据进行计算,该装置包括:
[0010]节点查找模块,用于通过调度单元在节点关系图中处于数据未知状态的节点中, 查找可运算节点;节点关系图是有向无环图,节点关系图中第i+1层节点的数据的计算依赖于节点在第i层中的子节点的数据,可运算节点是自身所依赖的各个子节点均处于数据已知状态的节点,初始状态的节点关系图中位于底层的第1层节点均处于数据已知状态, i ^ 1 ;[〇〇11]信息分配模块,用于通过调度单元将各个可运算节点的节点信息分配至计算单元提供的至少两个计算进程;
[0012]节点计算模块,用于通过至少两个计算进程对各个可运算节点进行计算;
[0013]状态更新模块,用于在计算进程计算到可运算节点的数据后,通过调度单元在节点关系图中更新可运算节点的状态为数据已知状态;
[0014]节点查找模块,还用于在节点关系图中仍然存在处于数据未知的节点时,重新执行查找可运算节点的操作。
[0015]本发明实施例提供的技术方案的有益效果是:
[0016]通过将节点关系图中的各个可运算节点分配至至少两个计算进程,通过至少两个计算进程对各个可运算节点进行计算。其中,可运算节点是自身所依赖的各个子节点均处于数据已知状态的节点。解决了现有技术中业务监控系统计算需要监控的数据时所需要的计算时长较长,无法满足监控实时性的要求的问题;达到了可以缩短对需要监控的数据的计算时长,进而满足监控实时性的要求的效果。【附图说明】
[0017]为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0018]图1是本发明一个实施例提供的业务监控方法的方法流程图;
[0019]图2A是本发明另一实施例提供的业务监控方法的方法流程图;
[0020]图2B是本发明另一实施例提供的节点关系图的示意图;
[0021]图3是本发明一个实施例提供的业务监控装置的结构方框图;
[0022]图4是本发明另一实施例提供的业务监控装置的结构方框图。【具体实施方式】
[0023]为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部份实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
[0024]请参考图1,其示出了本发明一个实施例提供的业务监控方法的方法流程图,该方法用于包括调度单元和至少一个计算单元的业务监控系统中,业务监控系统用于对节点关系图中各个节点在业务监控时所对应的数据进行计算,该方法包括:
[0025]步骤101,通过调度单元在节点关系图中处于数据未知状态的节点中,查找可运算节点。
[0026]节点关系图是有向无环图,节点关系图中第i+1层节点的数据的计算依赖于节点在第i层中的子节点的数据,可运算节点是自身所依赖的各个子节点均处于数据已知状态的节点,初始状态的节点关系图中位于底层的第1层节点均处于数据已知状态,i多1。
[0027]步骤102,通过调度单元将各个可运算节点的节点信息分配至计算单元提供的至少两个计算进程;通过至少两个计算进程对各个可运算节点进行计算。
[0028]步骤103,在计算进程计算到可运算节点的数据后,通过调度单元在节点关系图中更新可运算节点的状态为数据已知状态,并在节点关系图中仍然存在处于数据未知的节点时,重新执行查找可运算节点的操作。
[0029]综上所述,本实施例提供的业务监控方法,通过将节点关系图中的各个可运算节点分配至至少两个计算进程,通过至少两个计算进程对各个可运算节点进行计算。其中,可运算节点是自身所依赖的各个子节点均处于数据已知状态的节点。解决了现有技术中业务监控系统计算需要监控的数据时所需要的计算时长较长,无法满足监控实时性的要求的问题;达到了可以缩短对需要监控的数据的计算时长,进而满足监控实时性的要求的效果。
[0030] 请参考图2A,其示出了本发明另一实施例提供的业务监控方法的方法流程图,该方法用于包括调度单元和至少一个计算单元的业务监控系统中,业务监控系统用于对节点关系图中各个节点在业务监控时所对应的数据进行计算,如图2A所示,该方法包括:
[0031]步骤201,通过调度单元生成1个节点关系图,节点关系图包括需要计算的各个节点。
[0032] 业务系统中通常包括多个需要监控的节点,业务监控系统可以通过调度单元来生成包含各个需要监控的节点的节点关系图。节点关系图是有向无环图,且节点关系图中第 i+1层节点的数据的计算依赖于节点在第i层中的子节点的数据,初始状态的节点关系图中位于底层的第1层节点均处于数据已知状态,i多1。其中,有向无环图是指不存在数据依赖于自身的节点的关系图,节点关系图中的各个节点为业务系统中的各个业务节点,每个节点的数据为该业务节点所对应的业务数据。
[0033]比如,业务监控系统可以生成图2B所示的节点关系图,该节点关系图中的节点 1?节点9的数据为已知。
[0034]步骤202,通过调度单元在节点关系图中处于数据未知状态的节点中,查找可运算节点。
[0035]可运算节点是自身所依赖的各个子节点均处于数据已知状态的节点。
[0036]比如,在图2B的初始状态下,业务监控系统可以通过调度单元查找到节点10的数据为未知,且节点10所依赖的节点1和节点2的数据均为已知,所以业务监控系统可以通过调度单元将节点10作为可运算节点。类似的,在初始状态下,业务监控系统可以从图2B 中查找到的可运算节点可以包括节点10、节点11、节点12、节点13和节点14。
[0037]步骤203,通过调度单元将各个可运算节点的节点信息保存至发送队列。
[0038] 在业务监控系统查找到各个可运算节点之后,业务监控系统可以将各个可运算节点的节点信息保存至发送队列。其中,发送队列中的各个可运算节点均是可以并行计算的节点,且可运算节点的节点信息包括可运算节点所依赖的各个子节点的标识,或者,可运算节点所依赖的各个子节点的数据。
[0039]步骤204,通过调度单元接收计算单元发送的信息获取请求,信息获取请求用于为计算单元中的计算进程请求获取可运算节点的节点信息。
[0040]当业务监控系统需要通过计算单元对节点关系图中的可运算节点进行计算时,业务监控系统可以通过计算单元向调度单元发送信息获取请求,相应的,业务监控系统可以通过调度单元接收计算单元发送的信息获取请求。
[0041]其中,信息获取请求用于为计算单元中的计算进程获取可运算节点的节点信息;计算单元可以包括至少两个计算进程。
[0042]步骤205,通过调度单元向至少两个计算进程分别分配发送队列中的至少一个可运算节点的节点信息。
[0043]业务监控系统通过调度单元接收到信息获取请求之后,业务监控系统可以通过调度单元从发送队列中任意选择预定数量的可运算节点的节点信息,将选择的可运算节点的节点信息分别发送至至少两个计算进程。其中,每个计算进程对应于至少一个可运算节点的节点信息,预定数量为大于等于2的数量。
[0044]比如,以发送队列中的可运算节点包括节点10、节点11、节点12、节点13和节点 14,且计算单元中的计算进程有2个为例,业务监控系统可以通过调度单元将节点10、节点 11和节点12的节点信息发送至计算进程1,将节点13和节点14的节点信息发送至计算进程2。
[0045]需要说明的是,业务监控系统通过调度单元接收到信息获取请求之后,业务监控系统可以通过调度单元将发送队列中的所有可运算节点的节点信息均发送至至少两个计算进程,当然,业务监控系统还可以通过调度单元将发送队列中的部分可计算节点的节点信息发送至至少两个计算进程。
[0046]比如,仍然以发送队列中的可运算节点包括节点10、节点11、节点12、节点13和节点14,且计算单元中的计算进程有2个为例,业务监控系统可以通过调度单元将节点10和节点11的节点信息发送至计算进程1,将节点12的节点信息发送至计算进程2,而发送队列中的节点13和节点14的节点信息并不发送至任何计算进程。
[0047]步骤206,通过至少两个计算进程对各个可运算节点进行计算。
[0048]在业务监控系统通过调度单元向至少两个计算进程发送对应的节点信息之后,业务监控系统可以通过该至少两个计算进程分别接收对应的节点信息,并通过至少两个计算进程对各自接收到的节点信息所对应可运算节点进行计算。
[0049]可选地,当可运算节点的节点信息包括可运算节点所依赖的子节点的节点标识时,业务监控系统通过至少两个计算进程对各个可运算节点进行计算的步骤可以包括:
[0050]第一,对于每个计算进程,通过计算进程检测共享内存中是否包含目标可运算节点所依赖的子节点的数据。
[0051]其中,共享内存为至少两个计算进程所共享的内存,共享内存中包括至少两个计算进程历史使用过或者历史计算过的各个节点的数据,目标可运算节点为计算进程接收到的节点信息所对应的可运算节点。
[0052]比如,对于计算进程1,计算进程1可以检测共享内存中是否包含节点1、节点2、节点3或者节点4的数据。
[0053]第二,若共享内存中包含子节点的数据,则通过计算进程从共享内存中获取子节点的数据,根据子节点的数据对可运算节点进行计算。
[0054]如果共享内存中包含子节点的数据,则业务监控系统可以通过计算进程从共享内存中获取该子节点的数据,然后根据获取到的子节点的数据计算可运算节点的数据。比如, 共享内存中包括节点1和节点2的数据,则计算进程从共享内存中取得对应的数据之后,计算进程可以计算节点10的数据。
[0055]而如果共享内存中不包含子节点的数据,则业务监控系统可以执行如下步骤:
[0056](I)、通过计算单元发送数据获取请求至存储单元,该数据获取请求用于请求获取计算进程接收到的节点信息中的节点标识所对应的子节点的数据。
[0057]其中,存储单元用于存储节点关系图中数据已知的各个节点的数据。
[0058](2)、通过计算单元接收存储单元返回的各个子节点的数据。
[0059](3)、通过计算进程计算可运算节点的数据。
[0060]可选地,当节点信息包括各个子节点的数据时,业务监控系统可以通过计算进程直接计算可运算节点的数据。
[0061]需要说明的一点是,本实施例通过从共享内存中获取子节点的数据,减少了计算单元向存储单元请求数据时所需耗用的资源,减少了对存储单元的读取请求量。
[0062]需要说明的另一点是,从共享内存中获取子节点的数据的步骤为可选步骤,业务监控系统还可以通过计算单元直接从存储单元中获取子节点的数据,本实施例对此并不做限定。
[0063]需要说明的再一点是,在业务监控系统通过计算进程计算得到可运算节点的数据滞后,业务监控系统可以通过计算进程将计算得到的数据存储至共享内存中,以备后续使用。类似的,业务监控系统还可以通过计算进程将计算得到的可运算节点的数据存储至存储单元中,本实施例对此不做限定。
[0064]步骤207,在计算进程计算到可运算节点的数据后,通过调度单元在节点关系图中更新可运算节点的状态为数据已知状态,并在节点关系图中仍然存在处于数据未知的节点时,重新执行查找可运算节点的操作。
[0065]比如,业务监控系统通过计算进程计算得到节点10和节点11的数据后,业务监控系统可以通过调度单元将节点关系图中节点10和节点11的状态修改为数据已知状态。
[0066]此后,当节点关系图中仍然有数据未知的节点时,业务监控系统可以再次通过调度单元执行查找可运算节点的操作,也即继续执行步骤202。
[0067]在本实施例的一个应用场景中,调度单元生成图2B所示的节点关系图,在初始状态下,调度单元可以查找到该节点关系图中的可运算节点可以包括节点10、节点11、节点
12、节点13和节点14,将查找到的各个节点的节点信息保存至发送队列中。当调度单元接收到计算单元发送的信息获取请求之后,调度单元将发送队列中的节点10和节点11的节点信息发送至计算进程1,将节点12的节点信息发送至计算进程2。当计算进程I和计算进程2计算得到节点10、节点11和节点12之后,调度单元可以将节点10、节点11和节点12修改为数据已知状态。并且,由于节点关系图中还存在数据未知的节点,所以业务监控系统可以通过调度单元再次执行查找可运算节点的步骤。具体的,由于节点15所依赖的节点
10、节点11和节点12均为已知,所以业务监控系统可以将节点15的节点信息保存至发送队列中。当业务监控系统通过调度单元接收到信息获取请求时,业务监控系统可以通过调度单元将发送队列中的节点15的节点信息发送至计算进程I,将发送队列中的节点13和节点14的节点信息发送至计算进程2。当计算进程I和计算进程2计算得到节点15、节点13和节点14之后,调度单元可以将节点15、节点13和节点14修改为数据已知状态。并且,由于节点关系图中还存在数据未知的节点,所以业务监控系统可以通过调度单元再次执行查找可运算节点的步骤,直至业务监控系统最终计算得到最后一个节点也即节点22结束。
[0068]需要说明的第一点是,在步骤203中,如果查找到的可运算节点只有一个,则业务监控系统可以通过调度单元将该可运算节点的节点信息发送至至少两个计算进程中的一个计算进程,本实施例对此并不做限定。
[0069]需要说明的第二点是,本实施例只是以通过至少两个进程对各个可运算节点进行计算为例,可选地,计算单元还可以只有一个计算进程,只是该计算进程中可以包括至少两个计算线程,通过该至少两个计算线程对各个可运算节点进行计算,本实施例对此并不做限定。
[0070]需要说明的第二点是,本实施例只是以先执行步骤202后执行步骤204为例,可选地,还可以同时执行上述两个步骤,或者先执行步骤204后执行步骤202,本实施例对此并不做限定。
[0071]需要说明的第四点是,上述实施例中的计算单元、调度单元以及存储单元可以实现在同一个设备中,也可以实现在不同设备中,本实施例对此并不做限定。
[0072]综上所述,本实施例提供的业务监控方法,通过将节点关系图中的各个可运算节点分配至至少两个计算进程,通过至少两个计算进程对各个可运算节点进行计算。其中,可运算节点是自身所依赖的各个子节点均处于数据已知状态的节点。解决了现有技术中业务监控系统计算需要监控的数据时所需要的计算时长较长,无法满足监控实时性的要求的问题;达到了可以缩短对需要监控的数据的计算时长,进而满足监控实时性的要求的效果。
[0073]本实施例通过从共享内存中获取子节点的数据,减少了计算单元向存储单元请求数据时所需耗用的资源,减少了对存储单元的读取请求量。
[0074]可选地,步骤201可以包括:通过调度单元每隔预定时间间隔生成I个节点关系图,节点关系图包括当前需要计算的各个节点。
[0075]由于业务系统中需要监控的节点可能会随着时间的推移而发生变化,比如,一段时间之后业务系统中出现新增的需要监控的节点,或者一段时间之后之前需要监控的节点不再需要继续监控,所以业务监控系统可以通过调度单元每隔预定时间间隔生成一个节点关系图。每次生成的节点关系图包括当前需要监控的各个节点。
[0076]通过每隔预定时间间隔生成I个节点关系图,使得节点关系图中能够包含当前需要监控的各个节点,保证了监控的准确度。
[0077]相应的,在步骤207之前,业务监控系统还可以执行如下步骤:
[0078]第一,在计算进程计算到可运算节点的数据后,通过调度单元获取计算进程最近计算的各个可运算节点所属的节点关系图的时间标识,时间标识用于标识节点关系图的生成时间。
[0079]在业务监控系统通过计算进程计算得到可运算节点的数据之后,业务监控系统可以通过计算进程获取该可运算节点所属的时间标识,然后通过计算进程将该时间标识发送至调度单元。相应的,业务监控系统可以通过调度单元接收计算进程发送的时间标识。
[0080]其中,业务监控系统通过计算进程获取该可运算节点所属的时间标识的步骤可以包括:业务监控系统通过计算进程读取接收该可运算节点的节点信息的同时接收到的时间标识,将该时间标识确定为该可运算节点所属的节点关系图的时间标识。
[0081]在业务监控系统通过调度单元向至少两个计算进程分配各个可运算节点的节点信息时,业务监控系统可以同时发送每个可运算节点所属的时间标识至计算进程,所以计算进程可以读取到该可运算节点所属的节点关系图的时间标识。
[0082]第二,通过调度单元检测时间标识所指示的节点关系图是否是调度单元当前维护的节点关系图。
[0083]业务监控系统通过调度单元每次生成一个节点关系图时,业务监控系统可以通过调度单元记录生成的该节点关系图的时间标识,所以在业务监控系统通过调度单元获取到最近计算的各个可运算节点所属的节点关系图的时间标识之后,业务监控系统可以通过调度单元检测该时间标识与调度单元中当前维护的节点关系图的时间标识是否相同;如果相同,则确定之前计算的各个可运算节点所属的节点关系图是调度单元当前维护的节点关系图;反之,则不是。
[0084]第三,若是调度单元当前维护的节点关系图,则执行步骤207。
[0085]而如果不是调度单元当前维护的节点关系图,则流程结束。
[0086]请参考图3,其示出了本发明一个实施例提供的业务监控装置的结构方框图,该业务监控装置用于包括调度单元和至少一个计算单元的业务监控系统中,所述业务监控系统用于对节点关系图中各个节点在业务监控时所对应的数据进行计算,该业务监控装置包括:节点查找模块310、信息分配模块320、节点计算模块330和状态更新模块340。
[0087]节点查找模块310,用于通过所述调度单元在所述节点关系图中处于数据未知状态的节点中,查找可运算节点;所述节点关系图是有向无环图,所述节点关系图中第i+Ι层节点的数据的计算依赖于所述节点在第i层中的子节点的数据,所述可运算节点是自身所依赖的各个子节点均处于数据已知状态的节点,初始状态的所述节点关系图中位于底层的第I层节点均处于数据已知状态,i多I ;
[0088]信息分配模块320,用于通过所述调度单元将各个所述可运算节点的节点信息分配至所述计算单元提供的至少两个计算进程;
[0089]节点计算模块330,用于通过所述至少两个计算进程对各个所述可运算节点进行计算;
[0090]状态更新模块340,用于在所述计算进程计算到所述可运算节点的数据后,通过所述调度单元在所述节点关系图中更新所述可运算节点的状态为数据已知状态;
[0091]所述节点查找模块310,还用于在所述节点关系图中仍然存在处于数据未知的节点时,重新执行所述查找可运算节点的操作。
[0092]综上所述,本实施例提供的业务监控装置,通过将节点关系图中的各个可运算节点分配至至少两个计算进程,通过至少两个计算进程对各个可运算节点进行计算。其中,可运算节点是自身所依赖的各个子节点均处于数据已知状态的节点。解决了现有技术中业务监控系统计算需要监控的数据时所需要的计算时长较长,无法满足监控实时性的要求的问题;达到了可以缩短对需要监控的数据的计算时长,进而满足监控实时性的要求的效果。
[0093]请参考图4,其示出了本发明一个实施例提供的业务监控装置的结构方框图,该业务监控装置用于包括调度单元和至少一个计算单元的业务监控系统中,所述业务监控系统用于对节点关系图中各个节点在业务监控时所对应的数据进行计算,该业务监控装置包括:节点查找模块410、信息分配模块420、节点计算模块430和状态更新模块440。
[0094]节点查找模块410,用于通过调度单元在节点关系图中处于数据未知状态的节点中,查找可运算节点;节点关系图是有向无环图,节点关系图中第i+Ι层节点的数据的计算依赖于节点在第i层中的子节点的数据,可运算节点是自身所依赖的各个子节点均处于数据已知状态的节点,初始状态的节点关系图中位于底层的第I层节点均处于数据已知状态,i彡I ;
[0095]信息分配模块420,用于通过调度单元将各个可运算节点的节点信息分配至计算单元提供的至少两个计算进程;
[0096]节点计算模块430,用于通过至少两个计算进程对各个可运算节点进行计算;
[0097]状态更新模块440,用于在计算进程计算到可运算节点的数据后,通过调度单元在节点关系图中更新可运算节点的状态为数据已知状态;
[0098]节点查找模块410,还用于在节点关系图中仍然存在处于数据未知的节点时,重新执行查找可运算节点的操作。
[0099]可选地,信息分配模块420,包括:
[0100]信息保存单元421,用于通过调度单元将各个可运算节点的节点信息保存至发送队列;
[0101]请求接收单元422,用于通过调度单元接收计算单元发送的信息获取请求,信息获取请求用于为计算单元中的计算进程请求获取可运算节点的节点信息;
[0102]信息分配单元423,用于通过调度单元向至少两个计算进程分别分配发送队列中的至少一个可运算节点的节点信息。
[0103]可选地,装置还包括:
[0104]生成模块450,用于通过调度单元每隔预定时间间隔生成I个节点关系图,节点关系图包括当前需要计算的各个节点。
[0105]可选地,装置还包括:
[0106]标识获取模块460,用于通过调度单元获取计算进程最近计算的各个可运算节点所属的节点关系图的时间标识,时间标识用于标识节点关系图的生成时间;
[0107]检测模块470,用于通过调度单元检测时间标识所指示的节点关系图是否是调度单元当前维护的节点关系图;
[0108]状态更新模块440,还用于在检测模块的检测结果为是调度单元当前维护的节点关系图时,执行通过调度单元在节点关系图中更新可运算节点的状态为数据已知状态的操作。
[0109]可选地,节点计算模块430,包括:
[0110]检测单元431,用于对于每个计算进程,通过计算进程检测共享内存中是否包含目标可运算节点所依赖的子节点的数据,共享内存为至少两个计算进程所共享的内存,目标可运算节点为计算进程接收到的节点信息所对应的可运算节点;
[0111]数据获取单元432,用于在检测单元431的检测结果为共享内存中包含子节点的数据时,通过计算进程从共享内存中获取子节点的数据;
[0112]节点计算单元433,用于根据子节点的数据对可运算节点进行计算。
[0113]综上所述,本实施例提供的业务监控装置,通过将节点关系图中的各个可运算节点分配至至少两个计算进程,通过至少两个计算进程对各个可运算节点进行计算。其中,可运算节点是自身所依赖的各个子节点均处于数据已知状态的节点。解决了现有技术中业务监控系统计算需要监控的数据时所需要的计算时长较长,无法满足监控实时性的要求的问题;达到了可以缩短对需要监控的数据的计算时长,进而满足监控实时性的要求的效果。
[0114]本实施例通过从共享内存中获取子节点的数据,减少了计算单元向存储单元请求数据时所需耗用的资源,减少了对存储单元的读取请求量。
[0115]需要说明的是:上述实施例提供的业务监控装置在计算数据时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的业务监控装置与业务监控方法的方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
[0116]上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
[0117]本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
[0118]以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
【主权项】
1.一种业务监控方法,其特征在于,用于包括调度单元和至少一个计算单元的业务监 控系统中,所述业务监控系统用于对节点关系图中各个节点在业务监控时所对应的数据进 行计算,所述方法包括:通过所述调度单元在所述节点关系图中处于数据未知状态的节点中,查找可运算节 点;所述节点关系图是有向无环图,所述节点关系图中第i+1层节点的数据的计算依赖于 所述节点在第i层中的子节点的数据,所述可运算节点是自身所依赖的各个子节点均处于 数据已知状态的节点,初始状态的所述节点关系图中位于底层的第1层节点均处于数据已 知状态,i彡1 ;通过所述调度单元将各个所述可运算节点的节点信息分配至所述计算单元提供的至 少两个计算进程;通过所述至少两个计算进程对各个所述可运算节点进行计算;在所述计算进程计算到所述可运算节点的数据后,通过所述调度单元在所述节点关系 图中更新所述可运算节点的状态为数据已知状态,并在所述节点关系图中仍然存在处于数 据未知的节点时,重新执行所述查找可运算节点的操作。2.根据权利要求1所述的方法,其特征在于,所述通过所述调度单元将各个所述可运 算节点的节点信息分配至所述计算单元提供的至少两个计算进程,包括:通过所述调度单元将各个所述可运算节点的节点信息保存至发送队列;通过所述调度单元接收所述计算单元发送的信息获取请求,所述信息获取请求用于为 所述计算单元中的计算进程请求获取所述可运算节点的节点信息;通过所述调度单元向所述至少两个计算进程分别分配所述发送队列中的至少一个所 述可运算节点的节点信息。3.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:通过所述调度单元每隔预定时间间隔生成1个所述节点关系图,所述节点关系图包括 当前需要计算的各个节点。4.根据权利要求3所述的方法,其特征在于,所述通过所述调度单元在所述节点关系 图中更新所述可运算节点的状态为数据已知状态之前,还包括:通过所述调度单元获取所述计算进程最近计算的各个所述可运算节点所属的节点关 系图的时间标识,所述时间标识用于标识所述节点关系图的生成时间;通过所述调度单元检测所述时间标识所指示的节点关系图是否是所述调度单元当前 维护的节点关系图;若是所述调度单元当前维护的节点关系图,则执行所述通过所述调度单元在所述节点 关系图中更新所述可运算节点的状态为数据已知状态的操作。5.根据权利要求1所述的方法,其特征在于,所述通过所述至少两个计算进程对各个 所述可运算节点进行计算,包括:对于每个计算进程,通过所述计算进程检测共享内存中是否包含目标可运算节点所依 赖的子节点的数据,所述共享内存为所述至少两个计算进程所共享的内存,所述目标可运 算节点为所述计算进程接收到的节点信息所对应的可运算节点;若所述共享内存中包含所述子节点的数据,则通过所述计算进程从所述共享内存中获 取所述子节点的数据,根据所述子节点的数据对所述可运算节点进行计算。6.—种业务监控装置,其特征在于,用于包括调度单元和至少一个计算单元的业务监控系统中,所述业务监控系统用于对节点关系图中各个节点在业务监控时所对应的数据进 行计算,所述装置包括:节点查找模块,用于通过所述调度单元在所述节点关系图中处于数据未知状态的节点 中,查找可运算节点;所述节点关系图是有向无环图,所述节点关系图中第i+1层节点的数 据的计算依赖于所述节点在第i层中的子节点的数据,所述可运算节点是自身所依赖的各 个子节点均处于数据已知状态的节点,初始状态的所述节点关系图中位于底层的第1层节 点均处于数据已知状态,i多1;信息分配模块,用于通过所述调度单元将各个所述可运算节点的节点信息分配至所述 计算单元提供的至少两个计算进程;节点计算模块,用于通过所述至少两个计算进程对各个所述可运算节点进行计算;状态更新模块,用于在所述计算进程计算到所述可运算节点的数据后,通过所述调度 单元在所述节点关系图中更新所述可运算节点的状态为数据已知状态;所述节点查找模块,还用于在所述节点关系图中仍然存在处于数据未知的节点时,重 新执行所述查找可运算节点的操作。7.根据权利要求6所述的装置,其特征在于,所述信息分配模块,包括:信息保存单元,用于通过所述调度单元将各个所述可运算节点的节点信息保存至发送 队列;请求接收单元,用于通过所述调度单元接收所述计算单元发送的信息获取请求,所述 信息获取请求用于为所述计算单元中的计算进程请求获取所述可运算节点的节点信息;信息分配单元,用于通过所述调度单元向所述至少两个计算进程分别分配所述发送队 列中的至少一个所述可运算节点的节点信息。8.根据权利要求6或7所述的装置,其特征在于,所述装置还包括:生成模块,用于通过所述调度单元每隔预定时间间隔生成1个所述节点关系图,所述 节点关系图包括当前需要计算的各个节点。9.根据权利要求8所述的装置,其特征在于,所述装置还包括:标识获取模块,用于通过所述调度单元获取所述计算进程最近计算的各个所述可运算 节点所属的节点关系图的时间标识,所述时间标识用于标识所述节点关系图的生成时间;检测模块,用于通过所述调度单元检测所述时间标识所指示的节点关系图是否是所述 调度单元当前维护的节点关系图;所述状态更新模块,还用于在所述检测模块的检测结果为是所述调度单元当前维护的 节点关系图时,执行所述通过所述调度单元在所述节点关系图中更新所述可运算节点的状 态为数据已知状态的操作。10.根据权利要求6所述的装置,其特征在于,所述节点计算模块,包括:检测单元,用于对于每个计算进程,通过所述计算进程检测共享内存中是否包含目标 可运算节点所依赖的子节点的数据,所述共享内存为所述至少两个计算进程所共享的内 存,所述目标可运算节点为所述计算进程接收到的节点信息所对应的可运算节点;数据获取单元,用于在所述检测单元的检测结果为所述共享内存中包含所述子节点的 数据时,通过所述计算进程从所述共享内存中获取所述子节点的数据;节点计算单元,用于根据所述子节点的数据对所述可运算节点进行计算。
【文档编号】G06F11/30GK105988907SQ201510047132
【公开日】2016年10月5日
【申请日】2015年1月29日
【发明人】周贤豪
【申请人】深圳市腾讯计算机系统有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1