具体实施方式
在以下的叙述中,为了使读者更好地理解本申请而提出了许多技术细节。但是,本领域的普通技术人员可以理解,即使没有这些技术细节和基于以下各实施方式的种种变化和修改,也可以实现本申请各权利要求所要求保护的技术方案。
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明的实施方式作进一步地详细描述。
本发明第一实施方式涉及一种主从结构分布式视频处理系统的调度方法。图1是该主从结构分布式视频处理系统的调度方法的流程示意图。该分布式视频处理系统包括用于分布式处理的至少两个处理资源,该处理资源在分布式视频处理系统的处理节点上采用分析算法进行任务处理。
主从结构分布式视频处理系统的调度方法包括以下步骤:
根据作业的预定优先级对分布式视频处理系统中的作业队列中待处理的作业进行调度。
对于批处理作业,则分配分布式视频处理系统中当前未被占用的最大处理能力值的处理资源。
对于流处理作业,则占用分布式视频处理系统中当前剩余处理能力值大于该作业的任务复杂度且剩余处理能力值最小的处理资源。
在主从结构分布式视频处理系统的任务复杂度和处理能力评估或归一化方法基础之上,将批处理作业与流处理作业统一在分布式视频处理系统中调度处理,以及所处理数据的类型多样化,不仅降低了系统的复杂度,而且提高了系统中处理资源的通用性,以及系统的高可用性。
作为本发明的一个优选实施方式,具体地说,如图1所示,该主从结构分布式视频处理系统的调度方法包括以下步骤:
在步骤101中,根据作业的预定优先级对分布式视频处理系统中的作业队列中待处理的作业进行调度。
此后进入步骤102,判断被调度的当前优先级作业是批处理作业还是流处理作业。
若是批处理作业,则进入步骤103。若是流处理作业,则进入步骤104。
在步骤103中,若是批处理作业,则分配分布式视频处理系统中当前未被占用的最大处理能力值的处理资源。
此后结束本流程。
在步骤104中,若是流处理作业,则占用分布式视频处理系统中当前剩余处理能力值大于该作业的任务复杂度且剩余处理能力值最小的处理资源。
此后结束本流程。
本发明第二实施方式涉及一种主从结构分布式视频处理系统的调度方法。图2是该主从结构分布式视频处理系统的任务复杂度和处理能力评估或者归一化方法的流程示意图。
第二实施方式在第一实施方式的基础上进行了改进,主要改进之处在于:对分布式视频处理系统中的处理资源的处理能力和作业队列中待处理的流处理作业的复杂度进行归一化,从而可以根据归一化之后的处理资源的处理能力和流处理作业的复杂度,实现作业调度处理,从而进一步实现视频分析处理资源的高效利用,减少系统资源的浪费损耗。给出空闲处理资源供需平衡策略,为待处理的批处理作业合理地分配空闲处理资源,同时采用资源抢占的方式,可以让高优先级的作业优先获得足够的资源,优先处理。被抢占的作业,实际上就得降低计算速度,或者推迟计算。通过资源紧张报警处理,可以对流处理作业采用资源抢占的方式时资源仍然不够的问题及时响应。对作业队列中相同优先级的多个作业采用先进先出的调度策略进行调度,可以解决相同优先级的多个作业的调度问题。具体地说:
在根据作业的预定优先级对分布式视频处理系统中的作业队列中待处理的作业进行调度的步骤之前,还包括以下步骤:
对分布式视频处理系统中的处理资源的处理能力和作业队列中待处理的流处理作业的复杂度进行归一化。
此外,可以理解,作为本发明的一个优选实施方式,本发明中的处理资源可以称为计算机资源,该计算机资源分为中央处理器(Central ProcessingUnit,简称“CPU”)和内存资源。视频监控领域中智能视频分析的应用场景可以分为:
1)分析历史数据(即录像文件批处理)。
2)分析实时数据(即实时码流处理)。
录像文件批处理任务是属于CPU密集型任务,该任务的宗旨是尽一切可能最大速度地进行数据处理。
实时码流处理任务,由于处理数据是实时生成的,且其生成速度远小于CPU的计算速度,因此在一定的时间间隔内,CPU处理完实时数据之后,距离下一次数据生成还有大量的空闲时间,现有常用视频处理算法例如车牌识别、人脸识别、行为分析等就是这样的。为了避免系统资源的浪费,在处理实时码流时,CPU应该处理多个任务。
假设1:不同的型号的处理器,其计算能力是不同的。在内存足够的情况下,假设任务A和任务B使用同样的算法分别运行在处理器a和处理器b上,如果任务A花费的时间是i,而任务B花费的时间是j,我们认为,处理器a的能力和处理器b的能力比例是j/i。
假设2:运行不同的智能视频分析算法,批处理任务的复杂度是不同的。在内存足够的情况下,假设在同样的软硬件环境下,同类型的任务A和任务B分别使用不同的算法a和算法b处理同样的数据,如果任务A花费的时间是m,而任务B花费的时间是n,我们认为,批处理任务A与批处理任务B的复杂度比例是m/n。
假设3:不同类型的实时码流处理任务,运行同样的智能视频分析算法,复杂度是不同的。在内存足够的情况下,假设处理器c上能够同时运行m个使用算法a的实时码流处理任务A,处理器c上能够同时运行n个使用算法b的实时码流处理任务B,我们认为任务A与任务B的复杂度比例是n/m。
在进行任务复杂度和计算资源或处理资源的归一化的过程中,先以某一较低端型号的处理器和一种复杂度最低的智能视频分析算法为基准,分别对系统选定的主流处理器和系统支持的视频智能分析算法按照假设1、假设2和假设3进行测试。再对得出的测试数据按照基准数据进行归一化。例如,假设算法a是复杂度最低的智能视频分析算法,以intel386型cpu为基准,如果任务A使用算法a在intel386上处理1M的基准数据花费的时间是x,任务B使用算法b在该型cpu上运行消耗的时间是y,任务C使用算法a在处理器K上运行消耗的时间是z,那么我们认为系统最低处理器能力为x,最简单算法计算复杂度为x,算法b的复杂度为y,处理器K的能力为z。假设系统选定的cpu型号有m种,系统支持的智能视频分析算法有n种,最低经过m*n轮测试,可以得到归一化的处理器能力和算法复杂度度量。这样,系统中的资源管理器就可以按照如图3所示的方式维护整个系统的所有计算资源或处理资源,同理,每个作业包含的任务也可按照如图4所示的方式维护所有任务信息或者任务复杂度。
作为本发明的另一个优选实施方式,具体地说,如图2所示,对分布式视频处理系统中的处理资源的处理能力和作业队列中待处理的流处理作业的复杂度进行归一化或评估的方法,包括以下步骤:
在步骤201中,选取分布式视频处理系统中处理能力最低的处理资源和任务复杂度最低的分析算法。
此后进入步骤202,计算分布式视频处理系统最低处理能力和最简单算法复杂度,即将第一任务使用任务复杂度最低的分析算法在处理能力最低的处理资源上处理的基准数据需要的时间作为分布式视频处理系统最低处理能力和最简单算法复杂度。
此后进入步骤203,将与第一任务同类型的第二任务使用系统中其他各个分析算法在处理能力最低的处理资源上处理的基准数据所需要的时间分别作为这些分析算法的任务复杂度。
此后进入步骤204,将与第一任务同类型的第三任务使用复杂度最低的分析算法在系统中各个处理资源上处理的基准数据需要的时间分别作为这些处理资源的处理能力。
此后结束本流程。
当然,选取归一化的基准量可以但并不局限于处理能力最低的处理资源和任务复杂度最低的分析算法,也可以选取相应度量值的处理能力的处理资源和任务复杂度的分析算法,比如处理能力最强的处理资源和任务复杂度最大的分析算法,只要实现该分布式视频处理系统中的处理资源和采用分析算法的流处理作业的复杂度的归一化即可。
如图5所示,对于批处理作业,则分配分布式视频处理系统中当前未被占用的最大处理能力值的处理资源的步骤,具体地说,包括以下子步骤:
在步骤501中,获得当前优先级队列中待处理的批处理作业数目m,m为正整数。
此后进入步骤502,从该分布式视频处理系统中,获得当前最大处理能力值的空闲处理资源数n,n为正整数。
此后进入步骤503,将平均值n/m取整结果为j,其中,j为自然数。
此后进入步骤504,判断当前优先级队列中待处理的批处理作业需求的空闲处理资源数是否大于j。
若大于,则进入步骤507。否则进入步骤505。
在步骤505中,若当前优先级队列中待处理的批处理作业需求的空闲处理资源数大于j,则先为该批处理作业分配j个空闲处理资源数。
此后进入步骤506,进行空闲处理资源抢占。
在本发明的部分实施方式中,空闲处理资源是否抢占等策略等问题都是可配置的,并非必须的。
此后结束本流程。
在步骤507中,若当前优先级队列中待处理的批处理作业需求的空闲处理资源数小于等于j,则为该批处理作业分配所需求的空闲处理资源数。
此后结束本流程。
作为本发明的另一个优选实施方式,如图6所示,在上述进行空闲处理资源抢占的步骤506之后,还包括以下步骤:
在步骤601中,判断在预定的时间内处理资源是否抢占成功。
若是,则进入步骤604。否则进入步骤602。
在步骤602中,若在预定的时间内处理资源抢占不成功,则结束本轮调度。
此后进入步骤603,进行资源紧张报警处理。
此后结束本流程。
在步骤604中,若在预定的时间内处理资源抢占成功,则将抢占到的空闲处理资源分配给待处理的批处理作业进行任务处理。
此后结束本流程。
作为本发明的另一个优选实施方式,如图7所示,该主从结构分布式视频处理系统的调度方法对批处理作业任务进行处理,包括以下步骤:
在步骤701中,获取当前优先级队列中的批处理作业全部任务信息。
此后进入步骤702,判断该作业所处的执行阶段是归并阶段还是映射阶段。
若是映射阶段,则进入步骤703;否则进入步骤706。
在步骤703中,当该作业所处的执行阶段为映射阶段时,则获取系统中可用计算资源的数目。
本实施例中所述的批处理作业所处的执行阶段是归并阶段还是映射阶段的判断不是必须的,不进行判断也是可以的,而且该归并阶段和映射阶段所涉及的思想可以是基于谷歌Goolge提出的归并映射mapreduce原理,也可以不基于该原理。
此后进入步骤704,根据平均分配原则计算该作业所需要分配的资源数目。
此后进入步骤705,设置未调度的映射任务为调度任务队列。
此后进入步骤709。
在步骤706中,当该作业所处的执行阶段为归并阶段时,则遍历待调度切片队列。
此后进入步骤707,遍历待调度归并任务队列。
此后进入步骤708,设置未调度的归并任务为调度任务队列。
此后进入步骤709。
在步骤709中,遍历调度任务队列。
此后进入步骤710,判断该遍历是否结束。
若是,则进入步骤717。否则进入步骤711。
在步骤711中,申请计算资源或者处理资源。
此后进入步骤712,判断所申请的计算资源或者处理资源是否有效。
若是,则进入步骤713。否则进入步骤714。
在步骤713中,向计算节点发送启动任务指令。
此后进入步骤716。
在步骤714中,当所申请的计算资源或者处理资源无效时,抢占计算资源。
此后进入步骤715,停止使用计算资源的任务。
此后进入步骤716,转到当前任务队列中下一个任务进行处理。
此后返回步骤709,继续遍历调度任务队列。
在步骤717中,当当前任务队列遍历结束时,继续申请系统中的计算资源或者处理资源。
此后结束本流程。
对于流处理作业,则占用分布式视频处理系统中当前剩余处理能力值大于该作业的任务复杂度且剩余处理能力值最小的处理资源的步骤之后,还包括以下步骤:
判断流处理作业是否成功占用到分布式视频处理系统中当前剩余处理能力值大于该作业的任务复杂度且剩余处理能力值最小的处理资源;
若没有成功占用到,流处理作业则预订并占用当前正在被抢占的分布式视频处理系统中当前剩余处理能力值大于该作业的任务复杂度且剩余处理能力值最小的处理资源;
判断流处理作业是否全部成功占用到所需要的处理资源数;
若没有,流处理作业则发出所需要剩余的处理资源抢占请求,并预订和占用当前分布式视频处理系统中当前剩余处理能力值大于该作业的任务复杂度且剩余处理能力值最小的处理资源;
若流处理作业发出所需要剩余的处理资源抢占请求后,没有成功预订和占用到当前正在被抢占的分布式视频处理系统中当前剩余处理能力值大于该作业的任务复杂度且剩余处理能力值最小的处理资源,则进行资源报警处理。
此外,可以理解,具体地说,如图8所示,在上述若是流处理作业,则占用分布式视频处理系统中当前剩余处理能力值大于该作业的任务复杂度且剩余处理能力值最小的处理资源的步骤104之后,还包括以下步骤:
在步骤801中,判断流处理作业是否全部成功占用到所需要的分布式视频处理系统中当前剩余处理能力值大于该作业的任务复杂度且剩余处理能力值最小的处理资源。
若是,则结束本流程;否则进入步骤802。
在步骤802中,若流处理作业没有全部成功占用到所需要的处理资源,则发出所需要剩余的处理资源抢占请求。
此后进入步骤803,根据抢占请求,预订并占用当前正在被抢占的分布式视频处理系统中当前剩余处理能力值大于该作业的任务复杂度且剩余处理能力值最小的处理资源。
此后进入步骤804,判断是否成功预订和占用。
若是,则结束本流程;否则进入步骤805。
在步骤805中,若发出所需要剩余的处理资源抢占请求后,没有成功预订和占用到所需要的当前正在被抢占的分布式视频处理系统中当前剩余处理能力值大于该作业的任务复杂度且剩余处理能力值最小的处理资源,则进行资源报警处理。
作为本发明的另一个优选例子,如图9所示,该主从结构分布式视频处理系统的调度方法对流处理作业任务进行处理,包括以下步骤:
在步骤901中,获取流处理作业作业任务详细信息。
此后进入步骤902,遍历待调度的任务队列。
此后进入步骤903,判断当前待调度的任务队列是否遍历完毕。
若是,则进入步骤915。否则进入步骤904。
在步骤904中,获取当前任务队列中任务详细信息。
此后进入步骤905,判断当前任务状态。
若是要求停止,则进入步骤913。若是要求开始,则进入步骤906。
在步骤906中,申请系统中空闲的计算资源或处理资源。
此后进入步骤907,判断所申请的计算资源或者处理资源是否有效。
若是,则进入步骤912。否则进入步骤908。
在步骤908中,获取作业预定的计算资源。
此后进入步骤909,判断该预定的计算资源是否有效。
若是,则进入步骤914。否则进入步骤910。
在步骤910中,若该预定的计算资源无效,则抢占系统中的其他计算资源。
此后进入步骤911,停止使用计算资源的任务。
此后进入步骤914。
在步骤912中,向计算机发送启动任务指令。
此后进入步骤914。
在步骤913中,向计算节点发送停止任务指令。
此后进入步骤914,转到下一个任务。
此后返回步骤902。
在步骤915中,若当前待调度的任务队列遍历完毕,则返回调度结果。
此后结束本流程。
根据作业的预定优先级对分布式视频处理系统中作业队列中待处理的作业进行调度的步骤,包括以下子步骤:
对于作业队列中相同优先级的多个作业,采用先进先出策略进行作业调度。或者
对于作业队列中不同优先级的多个作业,根据作业优先级的高低进行调度。
此外,分布式计算资源管理器根据分布式系统中集群计算机信息维护一个计算资源池或处理资源池。在分布式智能视频分析系统中,每个作业拥有一个用户指定的优先级,调度器根据不同的优先级进行调度。调度器根据系统支持的最大优先级数目维护多个作业队列,不同优先级的作业在对应的作业队列中排队等候调度,具有相同优先级的作业之间遵循先入先出的原则。调度器按照优先级大小对作业队列中的作业逐一进行调度。
本发明的各方法实施方式均可以以软件、硬件、固件等方式实现。不管本发明是以软件、硬件、还是固件方式实现,指令代码都可以存储在任何类型的计算机可访问的存储器中(例如永久的或者可修改的,易失性的或者非易失性的,固态的或者非固态的,固定的或者可更换的介质等等)。同样,存储器可以例如是可编程阵列逻辑(Programmable Array Logic,简称“PAL”)、随机存取存储器(Random Access Memory,简称“RAM”)、可编程只读存储器(Programmable Read Only Memory,简称“PROM”)、只读存储器(Read-Only Memory,简称“ROM”)、电可擦除可编程只读存储器(Electrically Erasable Programmable ROM,简称“EEPROM”)、磁盘、光盘、数字通用光盘(Digital Versatile Disc,简称“DVD”)等等。
本发明第三实施方式涉及一种主从结构分布式视频处理系统的调度系统。图10是该主从结构分布式视频处理系统的调度系统的结构示意图。该分布式视频处理系统包括用于分布式处理的至少两个处理资源,该处理资源在分布式视频处理系统的处理节点上采用分析算法进行任务处理。
具体地说,如图10所示,该主从结构分布式视频处理系统的调度系统包括:
调度器,用于根据作业的预定优先级及作业类型对分布式视频处理系统中的作业队列中的作业进行调度。
第一资源分配单元,用于对于批处理作业,分配分布式视频处理系统中当前未被占用的最大处理能力值的处理资源。
第二资源分配单元,用于对于流处理作业,占用分布式视频处理系统中当前剩余处理能力值大于该作业的任务复杂度且剩余处理能力值最小的处理资源。
在主从结构分布式视频处理系统的任务复杂度和处理能力评估方法基础之上,将批处理作业与流处理作业统一在分布式视频处理系统中调度处理,以及所处理数据的类型多样化,不仅降低了系统的复杂度,而且提高了系统中处理资源的通用性,以及系统的高可用性。
第一实施方式是与本实施方式相对应的方法实施方式,本实施方式可与第一实施方式互相配合实施。第一实施方式中提到的相关技术细节在本实施方式中依然有效,为了减少重复,这里不再赘述。相应地,本实施方式中提到的相关技术细节也可应用在第一实施方式中。
本发明第四实施方式涉及一种主从结构分布式视频处理系统的调度系统。图11是该主从结构分布式视频处理系统的调度系统的结构示意图。
第四实施方式在第三实施方式的基础上进行了改进,主要改进之处在于:将分布式视频处理系统中的处理资源和任务复杂度进行归一化或数值化,可以作为系统在资源分配或者任务调度时的参考依据,从而实现处理资源的高效利用,减少系统资源的浪费损耗。给出空闲处理资源供需平衡策略,为待处理的批处理作业合理地分配空闲处理资源,同时采用资源抢占的方式。通过资源紧张报警处理,可以对流处理作业采用资源抢占的方式时资源仍然不够的问题及时响应。对作业队列中相同优先级的多个作业采用先进先出的调度策略进行调度,可以解决相同优先级的多个作业的调度问题。
具体地说,如图11所示,该主从结构分布式视频处理系统的调度系统还包括:
归一化单元,用于对分布式视频处理系统中的处理资源的处理能力和作业队列中待处理的流处理作业的复杂度进行归一化。
作为本发明的一个优选实施方式,本发明中的处理资源可以称为计算机资源,该计算机资源分为中央处理器(Central Processing Unit,简称“CPU”)和内存资源。视频监控领域中智能视频分析的应用场景可以分为:
1)分析历史数据(即录像文件批处理)。
2)分析实时数据(即实时码流处理)。
录像文件批处理任务是属于CPU密集型任务,该任务的宗旨是尽一切可能最大速度地进行数据处理。
实时码流处理任务,由于处理数据是实时生成的,且其生成速度远小于CPU的计算速度,因此在一定的时间间隔内,CPU处理完实时数据之后,距离下一次数据生成还有大量的空闲时间。为了避免系统资源的浪费,在处理实时码流时,CPU应该处理多个任务。
假设1:不同的型号的处理器,其计算能力是不同的。在内存足够的情况下,假设任务A和任务B使用同样的算法分别运行在处理器a和处理器b上,如果任务A花费的时间是i,而任务B花费的时间是j,我们认为,处理器a的能力和处理器b的能力比例是j/i。
假设2:运行不同的智能视频分析算法,批处理任务的复杂度是不同的。在内存足够的情况下,假设在同样的软硬件环境下,同类型的任务A和任务B分别使用不同的算法a和算法b处理同样的数据,如果任务A花费的时间是m,而任务B花费的时间是n,我们认为,批处理任务A与批处理任务B的复杂度比例是m/n。
假设3:不同类型的实时码流处理任务,运行同样的智能视频分析算法,复杂度是不同的。在内存足够的情况下,假设处理器c上能够同时运行m个使用算法a的实时码流处理任务A,处理器c上能够同时运行n个使用算法b的实时码流处理任务B,我们认为任务A与任务B的复杂度比例是n/m。
在进行任务复杂度和计算资源或处理资源的归一化的过程中,先以某一较低端型号的处理器和一种复杂度最低的智能视频分析算法为基准,分别对系统选定的主流处理器和系统支持的视频智能分析算法按照假设1、假设2和假设3进行测试。再对得出的测试数据按照基准数据进行归一化。例如,假设算法a是复杂度最低的智能视频分析算法,以intel386型cpu为基准,如果任务A使用算法a在intel386上处理1M的基准数据花费的时间是x,任务B使用算法b在该型cpu上运行消耗的时间是y,任务C使用算法a在处理器K上运行消耗的时间是z,那么我们认为系统最低处理器能力为x,最简单算法计算复杂度为x,算法b的复杂度为y,处理器K的能力为z。假设系统选定的cpu型号有m种,系统支持的智能视频分析算法有n种,最低经过m*n轮测试,可以得到归一化的处理器能力和算法复杂度度量。这样,系统中的资源管理器就可以按照如图3所示的方式维护整个系统的所有计算资源或处理资源,同理,每个作业包含的任务也可按照如图4所示的方式维护所有任务信息或者任务复杂度。
作为本发明的另一个优选实施方式,对分布式视频处理系统中的处理资源的处理能力和作业队列中待处理的流处理作业的复杂度进行归一化的方法包括以下步骤:
选取分布式视频处理系统中处理能力最低的处理资源和任务复杂度最低的分析算法。
将第一任务使用任务复杂度最低的分析算法在处理能力最低的处理资源上处理的基准数据需要的时间作为分布式视频处理系统最低处理能力和最简单算法复杂度。
将与第一任务同类型的第二任务使用系统中其他各个分析算法在处理能力最低的处理资源上处理的基准数据所需要的时间分别作为这些分析算法的任务复杂度。
将与第一任务同类型的第三任务使用复杂度最低的分析算法在系统中各个处理资源上处理的基准数据需要的时间分别作为这些处理资源的处理能力。
当然,选取归一化的基准量可以但并不局限于处理能力最低的处理资源和任务复杂度最低的分析算法,也可以选取相应度量值的处理能力的处理资源和任务复杂度的分析算法,比如处理能力最强的处理资源和任务复杂度最大的分析算法,只要实现该分布式视频处理系统中的处理资源和采用分析算法的流处理作业的复杂度的归一化即可。
具体地说,如图12所示,上述第一资源分配单元,还包括以下子模块:
第一作业统计子模块,用于获得当前优先级队列中待处理的批处理作业数目m,m为正整数。
第一资源统计子模块,从该分布式视频处理系统中,获得当前最大处理能力值的空闲处理资源数n,n为正整数。
第一均值子模块,用于将平均值n/m取整结果为j,其中j为自然数。
第一判断子模块,用于判断当前优先级队列中待处理的批处理作业需求的空闲处理资源数是否大于j。
第一资源分配子模块,用于当第一判断子模块判定当前优先级队列中待处理的批处理作业需求的空闲处理资源数大于j时,为该批处理作业分配j个空闲处理资源数。
第一资源抢占子模块,用于当第一判断子模块判定当前优先级队列中待处理的批处理作业需求的空闲处理资源数大于j时,抢占空闲处理资源。
第二资源分配子模块,用于当第一判断子模块判定当前优先级队列中待处理的批处理作业需求的空闲处理资源数小于等于j时,为该批处理作业分配所需求的空闲处理资源数。
作为本发明的另一个优选实施方式,具体地说,如图13所示,上述第一资源分配单元,还包括以下子模块:
第二判断子模块,用于判断第一抢占子模块在预定的时间内抢占处理资源是否成功。
第一结束子模块,用于当第二判断子模块判定第一抢占子模块在预定的时间内处理资源抢占不成功时,结束本轮调度。
第一报警子模块,用于第一结束子模块资源结束本轮调度后的资源紧张报警。
第三资源分配子模块,用于当第二判断子模块判定第一抢占子模块在预定的时间内处理资源抢占成功时,将抢占到的空闲处理资源分配给待处理的批处理作业进行任务处理。
具体地说,如图14所示,上述第二资源分配单元,还包括以下子模块:
第三判断子模块,用于判断流处理作业是否全部成功占用到所需要的分布式视频处理系统中当前剩余处理能力值大于该作业的任务复杂度且剩余处理能力值最小的处理资源。
抢占请求子模块,用于在流处理作业没有全部成功占用到所需要的处理资源数时发出资源抢占请求。
资源占用子模块,用于为流处理作业预定和/或占用分布式视频处理系统中当前剩余处理能力值大于该作业的任务复杂度且剩余处理能力值最小的处理资源。
第二报警子模块,用于抢占请求子模块发出抢占请求后,且资源占用子模块没有为流处理作业预定和占用到所需要的处理资源时,进行资源报警处理。
调度器,对于作业队列中相同优先级的多个作业,采用先进先出策略进行作业调度。
调度器,对于作业队列中不同优先级的多个作业,根据作业优先级的高低进行调度。
此外,可以理解,对于具有相同优先级的流处理作业,调度器遍历作业队列,对每个作业分别进行调度,步骤为:
获得当前作业相关任务信息。
根据任务复杂度向计算资源池申请相应计算能力的计算资源。
如果资源申请成功,判断计算资源可用内存是否足够,如果足够,则将任务指派给计算资源进行运算,否则进入抢占流程,如果抢占成功,将任务分配给抢占到的计算资源,否则退出调度循环,进入系统资源紧张报警流程。
第二实施方式是与本实施方式相对应的方法实施方式,本实施方式可与第二实施方式互相配合实施。第二实施方式中提到的相关技术细节在本实施方式中依然有效,为了减少重复,这里不再赘述。相应地,本实施方式中提到的相关技术细节也可应用在第二实施方式中。
需要说明的是,本发明各设备实施方式中提到的各单元或模块都是逻辑单元或模块,在物理上,一个逻辑单元或模块可以是一个物理单元或模块,也可以是一个物理单元或模块的一部分,还可以以多个物理单元或模块的组合实现,这些逻辑单元或模块本身的物理实现方式并不是最重要的,这些逻辑单元或模块所实现的功能的组合才是解决本发明所提出的技术问题的关键。此外,为了突出本发明的创新部分,本发明上述各设备实施方式并没有将与解决本发明所提出的技术问题关系不太密切的单元或模块引入,这并不表明上述设备实施方式并不存在其它的单元或模块。
虽然通过参照本发明的某些优选实施方式,已经对本发明进行了图示和描述,但本领域的普通技术人员应该明白,可以在形式上和细节上对其作各种改变,而不偏离本发明的精神和范围。