一种分布式计算平台中视频数据分布方法及装置与流程

文档序号:14037152阅读:170来源:国知局
一种分布式计算平台中视频数据分布方法及装置与流程

本发明涉及数据迁移技术领域,特别是涉及一种分布式计算平台中视频数据分布方法、装置、电子设备及计算机可读存储介质。



背景技术:

视频数据存储架构通常包含多个节点。由于各节点存储的视频数据量不同,随着视频数据处理的进行,各节点之间的负载的差异可能会越来越大,进而导致整个视频数据存储架构的负载严重不均衡。

为了解决上述问题,现有技术主要采用hdfs(hadoopdistributedfilesystem,称为分布式文件系统)作为视频数据的分布式存储方案。hdfs可以在视频数据处理过程中,将视频数据存储架构中负载较高的节点上的视频数据块迁移到负载较低的节点上进行处理,进而实现整个视频数据存储架构的负载均衡。

然而,各节点的视频数据处理能力可能各不相同,上述处理会造成将高负载节点上的视频数据块迁移到视频数据处理能力弱的节点上的情况,导致视频任务的处理效率低。



技术实现要素:

本发明实施例的目的在于提供一种分布式计算平台中视频数据分布方法、装置、电子设备及计算机可读存储介质,可以提高视频任务的处理效率。具体技术方案如下:

第一方面,为了达到上述目的,本发明实施例公开了一种分布式计算平台中视频数据分布方法,上述方法包括:

获取各节点的初始负载,其中,每一节点的初始负载为本次视频数据迁移前,该节点完成视频数据处理所需的时间;

如果所述各节点的初始负载不满足预设的均衡条件,确定将各高负载节点中的每一视频数据块,分别迁移到各低负载节点进行处理所需的时长,得到目标时长集合;其中,所述高负载节点是所述各节点中初始负载大于平均负载的节点,所述低负载节点是所述各节点中初始负载小于所述平均负载的节点,所述平均负载为所述各节点的初始负载的平均值;

判断第一时长与第二时长的时长比值,是否小于或等于第二目标节点的初始负载与第一目标节点的初始负载的负载比值,其中,所述第一时长为所述目标时长集合中的最短时长,所述第一目标节点为所述第一时长对应的低负载节点,所述第二目标节点为所述各节点中初始负载最小的节点,所述第二时长为所述目标时长集合中所述第二目标节点对应的最短时长;

如果所述时长比值小于或等于所述负载比值,将所述第一时长对应的视频数据块迁移到所述第一目标节点进行处理;

如果所述时长比值大于所述负载比值,将所述第二时长对应的视频数据块迁移到所述第二目标节点进行处理。

可选的,所述确定将各高负载节点中的每一视频数据块,分别迁移到各低负载节点进行处理所需的时长,包括:

针对每一低负载节点,分别确定将所述各高负载节点中的每一视频数据块,迁移到该低负载节点所需的迁移时长,以及该低负载节点完成该视频数据块处理所需的处理时长;

将所述迁移时长和该低负载节点的初始负载中的最大值,作为该低负载节点处理该视频数据块的等待时长;

将所述处理时长和所述等待时长的和值,作为将该视频数据块迁移到该低负载节点进行处理所需的时长。

可选的,所述分别确定将所述各高负载节点中的每一视频数据块,迁移到该低负载节点所需的迁移时长,包括:

分别确定从所述各高负载节点读取每一视频数据块所需的第一读取时长、将该视频数据块从所属的高负载节点传输到该低负载节点所需的传输时长、以及将该视频数据块写入该低负载节点所需的写入时长;

将所述第一读取时长、所述传输时长和所述写入时长的和值,作为将该视频数据块从所属的高负载节点,迁移到该低负载节点所需的迁移时长。

可选的,所述确定该低负载节点完成该视频数据块处理所需的处理时长,包括:

确定该低负载节点读取该视频数据块所需的第二读取时长,以及该低负载节点处理该视频数据块对应的视频任务所需的任务时长;

将所述第二读取时长和所述任务时长的和值,作为该低负载节点完成该视频数据块处理所需的处理时长。

可选的,所述确定该低负载节点处理该视频数据块对应的视频任务所需的任务时长,包括:

确定该低负载节点处理单位时长的该视频数据块对应的视频任务所需的平均处理时长;

根据所述平均处理时长和该视频数据块的视频时长,确定该低负载节点处理该视频数据块对应的视频任务所需的任务时长。

第二方面,为达到上述目的,本发明实施例公开了一种分布式计算平台中视频数据分布装置,上述装置包括:

获取模块,用于获取各节点的初始负载,其中,每一节点的初始负载为本次视频数据迁移前,该节点完成视频数据处理所需的时间;

确定模块,用于如果所述各节点的初始负载不满足预设的均衡条件,确定将各高负载节点中的每一视频数据块,分别迁移到各低负载节点进行处理所需的时长,得到目标时长集合;其中,所述高负载节点是所述各节点中初始负载大于平均负载的节点,所述低负载节点是所述各节点中初始负载小于所述平均负载的节点,所述平均负载为所述各节点的初始负载的平均值;

判断模块,用于判断第一时长与第二时长的时长比值,是否小于或等于第二目标节点的初始负载与第一目标节点的初始负载的负载比值,其中,所述第一时长为所述目标时长集合中的最短时长,所述第一目标节点为所述第一时长对应的低负载节点,所述第二目标节点为所述各节点中初始负载最小的节点,所述第二时长为所述目标时长集合中所述第二目标节点对应的最短时长;如果所述时长比值小于或等于所述负载比值,触发第一迁移模块,如果所述时长比值大于所述负载比值,触发第二迁移模块;

所述第一迁移模块,用于将所述第一时长对应的视频数据块迁移到所述第一目标节点进行处理;

所述第二迁移模块,用于将所述第二时长对应的视频数据块迁移到所述第二目标节点进行处理。

可选的,所述确定模块,包括:

第一确定子模块,用于针对每一低负载节点,分别确定将所述各高负载节点中的每一视频数据块,迁移到该低负载节点所需的迁移时长,以及该低负载节点完成该视频数据块处理所需的处理时长;

第二确定子模块,用于将所述迁移时长和该低负载节点的初始负载中的最大值,作为该低负载节点处理该视频数据块的等待时长;

第三确定子模块,用于将所述处理时长和所述等待时长的和值,作为将该视频数据块迁移到该低负载节点进行处理所需的时长。

可选的,所述第一确定子模块,具体用于分别确定从所述各高负载节点读取每一视频数据块所需的第一读取时长、将该视频数据块从所属的高负载节点传输到该低负载节点所需的传输时长、以及将该视频数据块写入该低负载节点所需的写入时长;

将所述第一读取时长、所述传输时长和所述写入时长的和值,作为将该视频数据块从所属的高负载节点,迁移到该低负载节点所需的迁移时长。

可选的,所述第一确定子模块,具体用于确定该低负载节点读取该视频数据块所需的第二读取时长,以及该低负载节点处理该视频数据块对应的视频任务所需的任务时长;

将所述第二读取时长和所述任务时长的和值,作为该低负载节点完成该视频数据块处理所需的处理时长。

可选的,所述第一确定子模块,具体用于确定该低负载节点处理单位时长的该视频数据块对应的视频任务所需的平均处理时长;

根据所述平均处理时长和该视频数据块的视频时长,确定该低负载节点处理该视频数据块对应的视频任务所需的任务时长。

在本发明实施的另一方面,为了达到上述目的,本发明实施例还公开了一种电子设备,所述电子设备包括处理器和存储器;

所述存储器,用于存放计算机程序;

所述处理器,用于执行所述存储器上所存放的程序时,实现如上述第一方面所述的分布式计算平台中视频数据分布方法。

在本发明实施的又一方面,还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,实现如上述第一方面所述的分布式计算平台中视频数据分布方法。

在本发明实施的又一方面,本发明实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述第一方面所述的分布式计算平台中视频数据分布方法。

本发明实施例提供的一种分布式计算平台中视频数据分布方法、装置、电子设备及计算机可读存储介质。上述方法包括:在各节点的初始负载不满足预设的均衡条件下,确定将各高负载节点中的每一视频数据块,分别迁移到各低负载节点进行处理所需的时长,得到目标时长集合,根据目标时长集合,判断第一时长与第二时长的时长比值,是否小于或等于第二目标节点的初始负载与第一目标节点的初始负载的负载比值,如果时长比值小于或等于负载比值,将第一时长对应的视频数据块迁移到第一目标节点进行处理,否则,将第二时长对应的视频数据块迁移到第二目标节点进行处理。基于上述处理,可以综合各节点的当前负载和各节点的视频数据处理能力,进行视频数据的迁移,能够避免将高负载节点上的视频数据块迁移到视频数据处理能力弱的节点上,进而提高视频任务的处理效率。

当然,实施本发明的任一产品或方法必不一定需要同时达到以上所述的所有优点。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例提供的一种分布式计算平台中视频数据分布方法的流程图;

图2为本发明实施例提供的一种分布式计算平台中视频数据分布装置的结构图;

图3为本发明实施例提供的一种电子设备的结构图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明实施例公开了一种分布式计算平台中视频数据分布方法、装置、电子设备及计算机可读存储介质,上述方法通常可以应用于包含多个节点的服务器集群,其中,每个节点可以具有存储视频数据的功能和处理视频数据的功能。服务器集群可以在各节点的初始负载不满足预设的均衡条件下,确定将各高负载节点中的每一视频数据块,分别迁移到各低负载节点进行处理所需的时长,得到目标时长集合。服务器集群可以根据目标时长集合,判断第一时长与第二时长的时长比值,是否小于或等于第二目标节点的初始负载与第一目标节点的初始负载的负载比值,如果时长比值小于或等于负载比值,将第一时长对应的视频数据块迁移到第一目标节点进行处理,否则,将第二时长对应的视频数据块迁移到第二目标节点进行处理。服务器集群可以综合各节点的当前负载和各节点的视频数据处理能力迁移视频数据块,能够避免将高负载节点上的视频数据块迁移到视频数据处理能力弱的节点上,进而提高视频任务的处理效率。

参见图1,图1为本发明实施例提供的一种分布式计算平台中视频数据分布方法的流程图,包括:

s101:获取各节点的初始负载。

其中,每一节点的初始负载可以为本次视频数据迁移前,该节点完成视频数据处理所需的时长。

一种实现方式中,服务器集群的视频数据存储架构可以包含多个节点,每个节点上可以只配置一种存储媒介,例如,ssd(solid-statedrive,称为固态硬盘)或者hdd(harddiskdrive,称为硬盘驱动器),每个节点上也可以配置有上述两种存储媒介。以ρ表示视频存储架构的节点集合,对于节点集合中的每一个节点pi(pi∈ρ),l(pi)表示节点pi完成该节点的存储媒介(包括ssd上和/或hdd)上所有视频数据处理所需的时长,即节点pi的初始负载。

具体的,表示节点pi的ssd,表示节点pi的hdd,分别表示节点pi的ssd的平均视频数据读取速率和平均视频数据写入速率,分别表示节点pi的hdd的平均视频数据读取速率和平均视频数据写速率。

集合r={r1,r2,…rm}可以表示所有节点上的视频数据块不同的分辨率,其中,m表示分辨率种类的数目,rm表示集合r中的第m种分辨率;用集合f={f1,f2,…fn}可以表示所有节点上的视频数据块不同的帧率,其中,n表示帧率种类的数目,fn表示集合f中的第n种帧率。因此,视频数据的质量q可以用公式(1)表示。

q=r×f(1)

其中,集合q可以是集合r和集合f的笛卡尔积。示例性的:r={r1,r2},f={f1,f2},则q={(r1,f1),(r1,f2),(r2,f1),(r2,f1)}。集合q中的每一个元素表示一个标准视频质量级别,可以用qr表示。

可以用集合z={z1,z2,…zq}表示不同的视频任务类型,如视频浓缩、越界检测等视频任务类型。其中,q表示视频任务类型的数目,zq表示集合z中第q个视频任务类型。结合集合q和集合z,服务器集群可以根据公式(2)得到集合s。

s=q×z(2)

其中,集合s可以是集合q和集合z的笛卡尔积,集合s中的每一个元素代表一种视频任务处理模型,可以用svpm表示。示例性的:q={(r1,f1),(r2,f2)},z={z1,z2},则s={(z1,r1,f1),(z1,r2,f2),(z2,r1,f1),(z2,r2,f2)}。

对于节点pi,表示该节点平均每处理单位时长的视频数据对应的视频任务所需的运算时间的集合,其中,表示节点pi平均处理单位时长的svpm为sj的视频数据对应的视频任务所需的时长。服务器集群可以预先在节点pi上处理多个svpm为sj的视频数据块对应的视频任务,针对每个svpm为sj的视频数据块对应的视频任务,服务器集群可以在该视频任务开始时计时,当节点pi处理完该视频任务时,停止计时,获得节点pi处理该视频任务所需的时长。服务器集群可以获得节点pi处理所有svpm为sj的视频数据块对应的视频任务所需的时长,然后可以根据svpm为sj的视频数据块的视频时长,计算

具体的,服务器集群可以根据公式(3),计算节点pi处理第j个视频数据块对应的视频任务所需的时长。

其中,表示节点pi处理第j个视频数据块对应的视频任务所需的时长,sk表示第j个视频数据块的svpm,表示节点pi平均处理单位时长的svpm为sk的视频数据对应的视频任务所需的时长(即平均处理时长),表示第j个视频数据块的视频时长,其中,分别表示第j个视频数据块的视频开始时间和结束时间。表示节点pi上第j个视频数据块dbi,j的视频大小。表示节点pi的平均数据读速率。如果视频数据块dbi,j存储在节点pi的ssd中,则如果视频数据块dbi,j存储在节点pi的hdd中,则

由上述可以看出,本发明申请可以根据视频数据块所存储在的存储媒介的不同和视频数据块对应的视频任务的不同,计算节点处理视频数据块对应的视频任务所需的时长。基于上述处理,能够得到更全面、更精确的处理数据,进而能够提高视频任务的处理效率。

示例性的,节点pi上共有m个视频数据块,则节点pi处理完m个视频数据块对应的视频任务所需的时长(即初始负载),可以用公式(4)表示。

其中,l(pi)表示节点pi的初始负载,m表示节点pi上的视频数据块的数目,表示节点pi处理第i个视频数据块对应的视频任务所需的时长。

s102:如果各节点的初始负载不满足预设的均衡条件,确定将各高负载节点中的每一视频数据块,分别迁移到各低负载节点进行处理所需的时长,得到目标时长集合。

其中,高负载节点是各节点中初始负载大于平均负载的节点,低负载节点是各节点中初始负载小于平均负载的节点,平均负载为各节点的初始负载的平均值。

一种实现方式中,服务器集群可以根据公式(5)计算平均负载。

其中,lavg表示平均负载,|ρ|表示节点集合ρ中节点的数目,l(pi)表示节点pi的初始负载,i表示节点的序号,pi表示第i个节点。

ph表示所有高负载节点,pl表示所有低负载节点。服务器集群可以根据公式(6)判断各节点的初始负载是否预设的均衡条件。

其中,表示ph的平均负载,表示pl的平均负载,thrsh表示预设的阈值。如果公式(6)成立,服务器集群可以确定各节点的初始负载满足预设的均衡条件,此时不需要进行视频数据的迁移,否则,服务器集群确定各节点的初始负载不满足预设的均衡条件。

针对各高负载节点中的每一视频数据块,服务器集群可以从迁移该视频数据块时开始计时,当低负载节点接收到该视频数据块并完成该视频数据块对应是视频任务时,服务器集群可以停止计时,得到目标时长集合。

可选的,服务器集群可以根据低负载节点的初始负载,将视频数据块从高负载节点迁移到低负载节点所需的时长,以及低负载节点完成视频数据块处理所需的时长确定将视频数据块迁移到低负载节点进行处理所需的时长。

具体的,上述处理步骤可以包括:针对每一低负载节点,分别确定将各高负载节点中的每一视频数据块,迁移到该低负载节点所需的迁移时长,以及该低负载节点完成该视频数据块处理所需的处理时长,将迁移时长和该低负载节点的初始负载中的最大值,作为该低负载节点处理该视频数据块的等待时长,将处理时长和等待时长的和值,作为将该视频数据块迁移到该低负载节点进行处理所需的时长。

一种实现方式中,对于所有高负载节点上的视频数据块组成的集合其中,|ph|表示ph中的节点的数目,服务器集群可以分别计算将其中的任意一个视频数据块迁移到节点pj(pj∈pl)进行处理所需的时长ci,j,k,dbi,k表示节点pi上的第k个视频数据块,服务器集群可以根据公式(7)计算ci,j,k。

ci,j,k=ei,j,k+zi,j,k(7)

其中,ei,j,k表示节点pj处理视频数据块dbi,k对应的视频任务所需的处理时长,具体计算方法可以参考公式(3),zi,j,k表示节点pj处理视频数据块dbi,k的等待时长。

只有节点pj的当前剩余的存储空间大小(ssd当前剩余的存储空间大小或hdd当前剩余的存储空间大小)满足视频数据块dbi,k的存储空间需求时,服务器集群才会将视频数据块dbi,k迁移到节点pj进行处理。如果节点pj的ssd和hdd中任一个存储媒介的当前剩余空间大小都不满足视频数据块dbi,k的存储空间需求,服务器集群则可以设置对应的ei,j,k=∞,zi,j,k=∞。

具体的,服务器集群可以根据公式(8)计算zi,j,k。

其中,l(pj)表示节点pj的初始负载,表示将视频数据块dbi,k从节点pi迁移到节点pi的迁移时长。

可选的,服务器集群可以根据从高负载节点读取视频数据块所需的时长,将视频数据块从高负载节点传输到低负载节点所需的时长,以及将视频数据块写入低负载节点所需的时长确定上述迁移时长。

具体的,上述处理步骤可以包括:分别确定从各高负载节点读取每一视频数据块所需的第一读取时长、将该视频数据块从所属的高负载节点传输到该低负载节点所需的传输时长、以及将该视频数据块写入该低负载节点所需的写入时长,将第一读取时长、传输时长和写入时长的和值,作为将该视频数据块从所属的高负载节点,迁移到该低负载节点所需的迁移时长。

一种实现方式中,服务器集群可以根据公式(9)计算

其中,表示从节点pi的存储媒介(可以是ssd或者hdd)上读取视频数据块dbi,k的时长(即第一读取时长),表示通过网络将视频数据块dbi,k从节点pi传输到节点pj的时长(即传输时长),表示是将视频数据块dbi,k写入到节点pj的存储媒介上的时长(即写入时长)。

具体的,服务器集群可以根据公式(10)计算

其中,表示读取视频数据块dbi,j所需的时长,二进制变量oi,j表示存储媒介类型标识,oi,j为1表示视频数据块dbi,j存储在节点pi的ssd上,oi,j为0表示视频数据块dbi,j存储在节点pi的hdd上,表示视频数据块dbi,j的视频大小。

服务器集群可以根据公式(11)计算

其中,βi,j表示节点pi和节点pj之间的网络传输速率,表示视频数据块dbi,j的视频大小。服务器集群可以利用网络性能测试工具周期性地获取多个网络传输速率,并计算获得的多个网络传输速率的平均值,作为上述公式(11)的βi,j,网络性能测试工具可以是netperf。

服务器集群可以根据公式(12)计算

其中,表示节点pj的ssd的剩余存储空间大小,表示节点pj的hdd的剩余存储空间大小。根据公式(12)可以看出,如果节点pj的ssd剩余存储空间大小满足视频数据块dbi,j所需的存储空间,服务器集群会将视频数据块dbi,j迁移到节点pj的ssd上,只有节点pj的ssd剩余存储空间大小不能满足视频数据块dbi,j所需的存储空间,且节点pj的hdd剩余存储空间大小满足视频数据块dbi,j所需的存储空间时,服务器集群才会将视频数据块dbi,j迁移到节点pj的hdd上。

服务器集群可以根据公式(13)计算

其中,分别表示节点pi的ssd的总存储空间大小和节点pi的hdd的总存储空间大小,表示节点pj的ssd上的第m个视频数据块的大小,表示节点pj的hdd上的第m个视频数据块的大小,表示节点pj的sdd上的视频数据块的数目,表示节点pj的hdd上的视频数据块的数目。

可选的,服务器集群可以将低负载节点读取视频数据块所需的时长和处理视频数据块对应的视频任务的时长的和值,作为上述处理时长,具体的,上述处理步骤可以包括:

确定该低负载节点读取该视频数据块所需的第二读取时长,以及该低负载节点处理该视频数据块对应的视频任务所需的任务时长,将第二读取时长和任务时长的和值,作为该低负载节点完成该视频数据块处理所需的处理时长。

一种实现方式中,服务器集群可以根据公式(10)计算第二读取时长,根据低负载节点处理视频任务所需的平均时长计算上述任务时长。

可选的,服务器集群可以根据视频数据块的视频时长和低负载节点的平均处理时长计算上述任务时长,具体的,上述处理步骤可以包括:

确定该低负载节点处理单位时长的该视频数据块对应的视频任务所需的平均处理时长,根据平均处理时长和该视频数据块的视频时长,确定该低负载节点处理该视频数据块对应的视频任务所需的任务时长。

一种实现方式中,对于视频数据块dbi,j,其svpm为sj,可以用表示节点pi平均处理单位时长的视频数据块dbi,j对应的视频任务所需的时长(即平均处理时长),用表示视频数据块dbi,j的视频时长,其中,分别表示视频数据块dbi,j的视频开始时间和结束时间,可以得出为节点pi处理视频数据块dbi,j对应的视频任务所需的任务时长。

s103:判断第一时长与第二时长的时长比值,是否小于或等于第二目标节点的初始负载与第一目标节点的初始负载的负载比值。如果时长比值小于或等于负载比值,执行s104,否则,执行s105。

其中,第一时长为目标时长集合中的最短时长,第一目标节点为第一时长对应的低负载节点,第二目标节点为各节点中初始负载最小的节点,第二时长为目标时长集合中第二目标节点对应的最短时长。

一种实现方式中,服务器集群可以根据公式(14)计算目标时长集合中的最短时长(即第一时长)。

其中,i表示ph中节点的序号,j表示pl中节点的序号,k表示ph中视频数据块的序号,表示将视频数据块从高负载节点迁移到低负载节点进行处理所需的时长。结合公式(7)和公式(8)可知,服务器集群在确定了第一时长时,也即确定了将视频数据块迁移到低负载节点的ssd或hdd中。

对于初始负载最小的节点服务器集群可以根据公式(15)计算将视频数据块从高负载节点迁移到节点上进行处理所需的最短时长(即第二时长),表示将视频数据块从高负载节点迁移到低负载节点进行处理所需的时长。服务器集群在确定了第二时长时,也即确定了将视频数据块迁移到低负载节点的ssd或hdd中。

时长比值可以用公式(16)表示,

负载比值可以用公式(17)表示,

s104:将第一时长对应的视频数据块迁移到第一目标节点进行处理。

一种实现方式中,服务器集群可以从节点读取视频数据块然后将视频数据块传输到节点写入节点的存储媒介中。具体的,服务器集群可以根据公式(14)确定将视频数据块写入到节点的ssd或者hdd中。

s105:将第二时长对应的视频数据块迁移到第二目标节点进行处理。

一种实现方式中,服务器集群可以从节点读取视频数据块然后将视频数据块传输到节点写入节点的存储媒介中。具体的,服务器集群可以根据公式(14)确定将视频数据块写入到节点的ssd或者hdd中。

由上述可见,应用本发明的分布式计算平台中视频数据分布方法,服务器集群可以综合各节点的当前负载和各节点的视频数据处理能力迁移视频数据块,能够避免将高负载节点上的视频数据块迁移到视频数据处理能力弱的节点上,进而提高视频任务的处理效率。

服务器集群完成本次视频数据块的迁移后,可以再次判断当前各节点的初始负载是否满足预设的均衡条件,如果满足预设的均衡条件,则不做任何处理,如果不满足预设的均衡条件,则继续按照上述方法迁移视频数据块,直至各节点当前的初始负载满足预设的均衡条件为止。

与方法实施例相对应,参见图2,图2为本发明实施例提供的一种分布式计算平台中视频数据分布装置的结构图,包括:

获取模块201,用于获取各节点的初始负载,其中,每一节点的初始负载为本次视频数据迁移前,该节点完成视频数据处理所需的时间;

确定模块202,用于如果所述各节点的初始负载不满足预设的均衡条件,确定将各高负载节点中的每一视频数据块,分别迁移到各低负载节点进行处理所需的时长,得到目标时长集合;其中,所述高负载节点是所述各节点中初始负载大于平均负载的节点,所述低负载节点是所述各节点中初始负载小于所述平均负载的节点,所述平均负载为所述各节点的初始负载的平均值;

判断模块203,用于判断第一时长与第二时长的时长比值,是否小于或等于第二目标节点的初始负载与第一目标节点的初始负载的负载比值,其中,所述第一时长为所述目标时长集合中的最短时长,所述第一目标节点为所述第一时长对应的低负载节点,所述第二目标节点为所述各节点中初始负载最小的节点,所述第二时长为所述目标时长集合中所述第二目标节点对应的最短时长;如果所述时长比值小于或等于所述负载比值,触发第一迁移模块204,如果所述时长比值大于所述负载比值,触发第二迁移模块205;

所述第一迁移模块204,用于将所述第一时长对应的视频数据块迁移到所述第一目标节点进行处理;

所述第二迁移模块205,用于将所述第二时长对应的视频数据块迁移到所述第二目标节点进行处理。

在本发明实施例中,所述确定模块202,包括:

第一确定子模块,用于针对每一低负载节点,分别确定将所述各高负载节点中的每一视频数据块,迁移到该低负载节点所需的迁移时长,以及该低负载节点完成该视频数据块处理所需的处理时长;

第二确定子模块,用于将所述迁移时长和该低负载节点的初始负载中的最大值,作为该低负载节点处理该视频数据块的等待时长;

第三确定子模块,用于将所述处理时长和所述等待时长的和值,作为将该视频数据块迁移到该低负载节点进行处理所需的时长。

在本发明实施例中,所述第一确定子模块,具体用于分别确定从所述各高负载节点读取每一视频数据块所需的第一读取时长、将该视频数据块从所属的高负载节点传输到该低负载节点所需的传输时长、以及将该视频数据块写入该低负载节点所需的写入时长;

将所述第一读取时长、所述传输时长和所述写入时长的和值,作为将该视频数据块从所属的高负载节点,迁移到该低负载节点所需的迁移时长。

在本发明实施例中,所述第一确定子模块,具体用于确定该低负载节点读取该视频数据块所需的第二读取时长,以及该低负载节点处理该视频数据块对应的视频任务所需的任务时长;

将所述第二读取时长和所述任务时长的和值,作为该低负载节点完成该视频数据块处理所需的处理时长。

在本发明实施例中,所述第一确定子模块,具体用于确定该低负载节点处理单位时长的该视频数据块对应的视频任务所需的平均处理时长;

根据所述平均处理时长和该视频数据块的视频时长,确定该低负载节点处理该视频数据块对应的视频任务所需的任务时长。

本发明实施例还提供了一种电子设备,如图3所示,包括处理器301、通信接口302、存储器303和通信总线304,其中,处理器301,通信接口302,存储器303通过通信总线304完成相互间的通信,

存储器303,用于存放计算机程序;

处理器301,用于执行存储器303上所存放的程序时,实现如下步骤:

获取各节点的初始负载,其中,每一节点的初始负载为本次视频数据迁移前,该节点完成视频数据处理所需的时间;

如果所述各节点的初始负载不满足预设的均衡条件,确定将各高负载节点中的每一视频数据块,分别迁移到各低负载节点进行处理所需的时长,得到目标时长集合;其中,所述高负载节点是所述各节点中初始负载大于平均负载的节点,所述低负载节点是所述各节点中初始负载小于所述平均负载的节点,所述平均负载为所述各节点的初始负载的平均值;

判断第一时长与第二时长的时长比值,是否小于或等于第二目标节点的初始负载与第一目标节点的初始负载的负载比值,其中,所述第一时长为所述目标时长集合中的最短时长,所述第一目标节点为所述第一时长对应的低负载节点,所述第二目标节点为所述各节点中初始负载最小的节点,所述第二时长为所述目标时长集合中所述第二目标节点对应的最短时长;

如果所述时长比值小于或等于所述负载比值,将所述第一时长对应的视频数据块迁移到所述第一目标节点进行处理;

如果所述时长比值大于所述负载比值,将所述第二时长对应的视频数据块迁移到所述第二目标节点进行处理。

上述电子设备提到的通信总线304可以是外设部件互连标准(peripheralcomponentinterconnect,简称pci)总线或扩展工业标准结构(extendedindustrystandardarchitecture,简称eisa)总线等。该通信总线304可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。

通信接口302用于上述电子设备与其他设备之间的通信。

存储器303可以包括随机存取存储器(randomaccessmemory,简称ram),也可以包括非易失性存储器(non-volatilememory),例如至少一个磁盘存储器。可选的,存储器303还可以是至少一个位于远离前述处理器的存储装置。

上述的处理器301可以是通用处理器,包括中央处理器(centralprocessingunit,简称cpu)、网络处理器(networkprocessor,简称np)等;还可以是数字信号处理器(digitalsignalprocessing,简称dsp)、专用集成电路(applicationspecificintegratedcircuit,简称asic)、现场可编程门阵列(field-programmablegatearray,简称fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。

本发明实施例提供的电子设备,可以综合各节点的当前负载和各节点的视频数据处理能力,进行视频数据的迁移,能够避免将高负载节点上的视频数据块迁移到视频数据处理能力弱的节点上,进而提高视频任务的处理效率。

本发明实施例还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行本发明实施例提供的分布式计算平台中视频数据分布方法。

具体的,上述分布式计算平台中视频数据分布方法,包括:

获取各节点的初始负载,其中,每一节点的初始负载为本次视频数据迁移前,该节点完成视频数据处理所需的时间;

如果所述各节点的初始负载不满足预设的均衡条件,确定将各高负载节点中的每一视频数据块,分别迁移到各低负载节点进行处理所需的时长,得到目标时长集合;其中,所述高负载节点是所述各节点中初始负载大于平均负载的节点,所述低负载节点包括所述各节点中初始负载小于所述平均负载的节点,所述平均负载为所述各节点的初始负载的平均值;

判断第一时长与第二时长的时长比值,是否小于或等于第二目标节点的初始负载与第一目标节点的初始负载的负载比值,其中,所述第一时长为所述目标时长集合中的最短时长,所述第一目标节点为所述第一时长对应的低负载节点,所述第二目标节点为所述各节点中初始负载最小的节点,所述第二时长为所述目标时长集合中所述第二目标节点对应的最短时长;

如果所述时长比值小于或等于所述负载比值,将所述第一时长对应的视频数据块迁移到所述第一目标节点进行处理;

如果所述时长比值大于所述负载比值,将所述第二时长对应的视频数据块迁移到所述第二目标节点进行处理。

需要说明的是,上述分布式计算平台中视频数据分布方法的其他实现方式与前述方法实施例部分相同,这里不再赘述。

通过运行本发明实施例提供的计算机可读存储介质中存储的指令,可以综合各节点的当前负载和各节点的视频数据处理能力,进行视频数据的迁移,能够避免将高负载节点上的视频数据块迁移到视频数据处理能力弱的节点上,进而提高视频任务的处理效率。

本发明实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行本发明实施例提供的分布式计算平台中视频数据分布方法。

具体的,上述分布式计算平台中视频数据分布方法,包括:

获取各节点的初始负载,其中,每一节点的初始负载为本次视频数据迁移前,该节点完成视频数据处理所需的时间;

如果所述各节点的初始负载不满足预设的均衡条件,确定将各高负载节点中的每一视频数据块,分别迁移到各低负载节点进行处理所需的时长,得到目标时长集合;其中,所述高负载节点是所述各节点中初始负载大于平均负载的节点,所述低负载节点包括所述各节点中初始负载小于所述平均负载的节点,所述平均负载为所述各节点的初始负载的平均值;

判断第一时长与第二时长的时长比值,是否小于或等于第二目标节点的初始负载与第一目标节点的初始负载的负载比值,其中,所述第一时长为所述目标时长集合中的最短时长,所述第一目标节点为所述第一时长对应的低负载节点,所述第二目标节点为所述各节点中初始负载最小的节点,所述第二时长为所述目标时长集合中所述第二目标节点对应的最短时长;

如果所述时长比值小于或等于所述负载比值,将所述第一时长对应的视频数据块迁移到所述第一目标节点进行处理;

如果所述时长比值大于所述负载比值,将所述第二时长对应的视频数据块迁移到所述第二目标节点进行处理。

需要说明的是,上述分布式计算平台中视频数据分布方法的其他实现方式与前述方法实施例部分相同,这里不再赘述。

通过运行本发明实施例提供的计算机程序产品,可以综合各节点的当前负载和各节点的视频数据处理能力,进行视频数据的迁移,能够避免将高负载节点上的视频数据块迁移到视频数据处理能力弱的节点上,进而提高视频任务的处理效率。

在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。上述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行上述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。上述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。上述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,上述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。上述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。上述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如固态硬盘solidstatedisk(ssd))等。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、电子设备、计算机可读存储介质、计算机程序产品实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1