CN112423041B - 分布式计算平台下基于QoS约束的视频流处理方法和系统 - Google Patents

分布式计算平台下基于QoS约束的视频流处理方法和系统 Download PDF

Info

Publication number
CN112423041B
CN112423041B CN202011303293.2A CN202011303293A CN112423041B CN 112423041 B CN112423041 B CN 112423041B CN 202011303293 A CN202011303293 A CN 202011303293A CN 112423041 B CN112423041 B CN 112423041B
Authority
CN
China
Prior art keywords
processing
video stream
function
processing stage
processing function
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
CN202011303293.2A
Other languages
English (en)
Other versions
CN112423041A (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.)
Hunan University
Original Assignee
Hunan University
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 Hunan University filed Critical Hunan University
Priority to CN202011303293.2A priority Critical patent/CN112423041B/zh
Publication of CN112423041A publication Critical patent/CN112423041A/zh
Application granted granted Critical
Publication of CN112423041B publication Critical patent/CN112423041B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/262Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists
    • H04N21/26208Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists the scheduling operation being performed under constraints
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/21Server components or server architectures
    • H04N21/218Source of audio or video content, e.g. local disk arrays
    • H04N21/21805Source of audio or video content, e.g. local disk arrays enabling multiple viewpoints, e.g. using a plurality of cameras
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/231Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion
    • H04N21/23103Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion using load balancing strategies, e.g. by placing or distributing content on different disks, different memories or different servers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/18Closed-circuit television [CCTV] systems, i.e. systems in which the video signal is not broadcast
    • H04N7/181Closed-circuit television [CCTV] systems, i.e. systems in which the video signal is not broadcast for receiving images from a plurality of remote sources

Abstract

本发明公开了一种分布式计算平台下基于QoS约束的视频流处理方法,其首先针对视频流处理特性将QoS定义为算子的准确度以及时延,并且基于此重新定义了视频流数据处理的编程模型。再将该模型发布至分布式处理框架,平台根据用户提交的处理过程,首先对各个算子进行分析,预先确定需求的准确度以及时延需求的资源量。再根据应用的数据依赖关系,对多个算子组合的情况(串行、并行、串行转并行、并行转串行)估计整个应用处理过程中应该分配的资源判断是否能满足要求并且根据之前的对算子的分析能够得到处理时间的估计时延。然后根据时延情况以及数据流的输入得到数据处理的窗口大小,再根据用户预估的视频流通路数对资源的总量进行估计。

Description

分布式计算平台下基于QoS约束的视频流处理方法和系统
技术领域
本发明属于分布式计算技术领域,更具体地,涉及一种分布式计算平台下基于QoS约束的视频流处理方法和系统。
背景技术
随着视频处理技术的不断提升,摄像头的部署数量也不断在增加,这也意味着越来越多的实时视频流需要得到及时的处理。视频流处理由于其数据量大、计算量也大,数据时效性强等特点,不但对软硬件平台要求高,应用开发也相对复杂,一直是一个门槛较高的研究领域。
现有的大数据处理平台(例如Spark、Flink、Storm等)都提供了数据流处理模型,并且提供自动的数据分割、任务调度、负载均衡、数据缓存、数据通信等功能,其大幅度降低了系统开发的复杂度,并能够适应大容量和高并发的高通量需求;此外,其还能够直接通过增加计算资源,在不修改软件的前提下提升视频的处理性能和计算规模。
然而,现有基于大数据处理平台的数据流处理模型仍然具有一些不可忽略的技术问题:第一、由于该数据流处理模型仅仅只能适用于处理固定的数据流处理任务,其先对任务进行划分,然后在各个处理器上对划分后的任务并行执行,却无法对任务参数进行修改,因此无法满足不同用户对任务的具体需求(例如不同任务对应的处理时延和准确度等);第二、由于该数据流处理模型是根据系统的运行效率或用户的设定进行系统资源的分配和调度,而不能根据任务的具体需求(例如不同任务对应的处理时延和准确度等)进行分配和调度,从而会造成系统资源分配和调度的效率偏低;第三、由于该数据流处理模型主要基于用户自身定义每次处理的数据流处理窗口(即每次处理的视频流数据量),在处理模型的处理量过大时,会导致用户不能及时得到响应。
发明内容
针对现有技术的以上缺陷或改进需求,本发明提供了一种分布式计算平台下基于QoS约束的视频流处理方法和系统,其目的在于,解决现有基于大数据处理平台的数据流处理模型由于无法对任务参数进行修改,因此无法满足不同用户对任务的具体需求的技术问题,以及由于不能根据任务的具体需求进行分配和调度,导致系统资源分配和调度的效率偏低的技术问题,以及由于该数据流处理模型主要基于用户自身定义每次处理的数据流处理窗口,导致处理模型的处理量过大时,用户不能及时得到响应的技术问题。
为实现上述目的,按照本发明的一个方面,提供了一种分布式计算平台下基于QoS约束的视频流处理方法,包括以下步骤:
(1)获取用户提交的视频流数据处理请求,该视频流数据处理请求包括视频流数据的来源信息、视频流数据的处理函数、视频流数据的分组函数和聚合函数、以及处理函数使用的视频流数据的初始值d,其中d为任意大于0的正整数;
(2)根据步骤(1)获取的视频流数据的函数中数据之间的依赖关系建立处理序列,并根据步骤(1)获取的视频流数据处理请求中视频流数据的函数的类型将该处理序列划分为多个处理阶段,所有的处理阶段构成处理阶段集合S={S1,S2…Sm},其中m表示处理阶段集合中的处理阶段总数;
(3)针对步骤(2)得到的处理阶段集合S中仅包括处理函数的每一个处理阶段而言,利用模拟退火启发式搜索算法获得该处理阶段内每个处理函数小于其最大时延L、最小准确度A并且使用系统资源价值最低的处理函数配置信息,所有的处理函数配置信息构成处理函数配置信息集合
Figure GDA0003130099750000021
Figure GDA0003130099750000031
其中处理函数配置信息
Figure GDA0003130099750000032
表示处理函数的配置信息是由处理阶段集合S中第x1个处理阶段Sx1中第x2个处理函数Px2产生,x1∈[1,m],x2∈[1,nx2],nm为处理阶段集合S中第m个处理阶段的处理函数总数,nx2为处理阶段集合S中第x2个处理阶段中处理函数的总数。
(4)针对步骤(2)得到的阶段集合中每个处理阶段中的每个处理函数而言,根据步骤(1)得到的处理函数的最大时延L以及步骤(3)得到的处理函数配置信息确定该处理函数的视频流窗口,将每个处理阶段的所有处理函数的视频流窗口中的最小视频流窗口作为该处理阶段对应的视频流窗口,所有处理阶段的视频流窗口构成集合NS={NS1,NS2,...,NSm}。
(5)针对步骤(2)得到的处理阶段集合S中仅包括处理函数的每一个处理阶段而言,根据每个处理阶段内处理函数中数据之间的依赖关系建立该处理阶段对应的有向无环图,所有处理阶段对应的有向无环图构成有向无环图集合H;
(6)对于步骤(5)得到的处理阶段集合S对应的有向无环图集合中的每个有向无环图而言,使用广度优先遍历算法将该有向无环图划分为多个层次,所有层次构成该有向无环图对应的层次集合B={B1,B2,...Bnum4},其中Bcount表示有向无环图中的第count层,num4表示划分的层次总数,且count∈[1,hum4]。
(7)根据步骤(6)得到的每个有向无环图对应的层次集合B确定与该有向无环图对应的处理阶段的资源分配总量集合和并行通量,并从处理阶段集合S的所有资源分配总量集合和所有并行通量中选择最大资源分配总量集合Umax和最大并行通量kmax;
(8)向集群管理结点申请启动kmax个任务的进程,将最大资源分配总量集合Umax分配给每个进程,并从集群管理结点获取每个进程的网络地址,所有进程的网络地址组成集合
Figure GDA0003130099750000041
(9)使用步骤(3)获取的处理函数配置信息集合Q中每个处理函数对应的可更改参数集合替换步骤(2)得到的处理阶段集合S中处理阶段内对应处理函数对应的可更改参数集合,并将处理阶段集合S中的每个处理阶段对应的视频流窗口设置为步骤(4)获取的对应处理阶段对应的视频流窗口,并将处理阶段集合S中的每个处理阶段封装成单个任务,所有任务构成任务集合E={E1,E2,...,Em},其中Enum5表示第num5个处理阶段封装成的任务,且num5∈[1,m];
(10)针对步骤(9)得到的任务集合中的每一个任务而言,将该任务复制kmax份,并根据步骤(8)得到的网络地址集合中的网络地址将复制后的kmax份任务发送给所有进程,并接收每个进程在执行任务过程中每隔周期T返回的进程执行信息PEt5,其中所有进程执行任务期间返回的任务执行情况构成进程执行信息集合PE={PE1,PE2,...,PEkmax},其中t5∈[1,kmax],T为任意大于零的自然数。
(11)根据步骤(10)获得的进程执行信息集合PE将所需转移剩余处理时间长的进程待处理的视频流数据转移到所需剩余处理时间短的进程。
优选地,视频流数据的来源信息包括视频流数据的存储位置和存储速率r;
视频流数据的处理函数包括该视频流数据的并行通路数k、处理函数的最大时延L和最小准确度A、以及该处理函数对应的可更改参数集合V={G1,G2,...Gh},其中h表示可更改参数的总数。
优选地,可更改参数集合V中的第num个可更改参数Gnum表示为五元组:
Gnum={vnnum,vminnum,vmaxnum,vstepnum,voptimalnum}
其中num∈[1,h],vnnum表示第num个可更改参数Gnum的变量名,vminnum表示第num个可更改参数Gnum的最小值,vmaxnum表示第num个可更改参数Gnum的最大值,vstepnum表示从vminnum到vmaxnum的步进值,voptimalnum表示能够使该处理函数获得最佳准确度的、第num个可更改参数的参考值,vminnum和vmaxnum为任意自然数,且vminnum<vmaxnum
处理阶段集合S中第x1个处理阶段Sx1中第x2个处理函数Px2的配置信息
Figure GDA0003130099750000051
表示为四元组:
Figure GDA0003130099750000052
其中
Figure GDA0003130099750000053
表示处理函数Px2对应的可更改参数集合,
Figure GDA0003130099750000054
表示将Px2的可更改参数替换为V后得到的处理函数P′x2的准确度,
Figure GDA0003130099750000055
表示视频流数据量为d时,处理函数P′k的执行时间,
Figure GDA0003130099750000056
表示处理函数P′x2执行时服务器的系统资源使用量集合。
优选地,步骤(3)具体包括如下子步骤:
(3-1)设置计数器i=1;
(3-2)判断i是否等于处理阶段集合S中处理阶段的总数m,如果是则过程结束,否则转入步骤(3-3);
(3-3)判断处理阶段集合S中处理阶段的第i阶段是否只包含处理函数,如果是转入步骤(3-4),否则转入步骤(3-12)
(3-4)设置计数器j=0;
(3-5)获取处理阶段集合S中第i个处理阶段Si中第j个处理函数Pj对应的可更改参数集合Vj,获取可更改参数集合Vj中所有可更改参数的参考值组成的参考值集合Voptimal={voptimal1,voptimal2...voptimalh},将可更改参数集合Vj更新为参考值Voptimal,并获得此时参考值集合Voptimal对应的处理函数Poptimal,执行该处理函数Poptimal,以获得处理结果集合Toptimal,其中voptimalnum1表示参考值集合Voptimal中的第num1个可更改参数的参考值,且num1∈[1,h]。
(3-6)获取处理阶段集合S中第i个处理阶段Si中第j个处理函数Pj中的可更改参数集合Vj,从中随机选择多个可更改参数组成新的可更改参数集合Vj′={v1,v2,...,vh},其中vnum2表示新的可更改参数集合Vj′中的第num2个可更改参数,vnum∈[vminnum2,vmaxnum2],并且vnum2能被vstepnum2整除,num2∈[1,h];
(3-7)将可更改参数集合Vj更新为新的可更改参数集合Vj′,并获得此时新的可更改参数集合Vj′对应的处理函数Pj′,执行该处理函数Pj′,以获得处理结果集合Tj′,根据处理结果集合Toptimal和Tj′计算处理函数Pj′的准确度aj′,并保存处理函数Pj′对视频流数据量为d的视频流数据的执行时间lj′;
(3-8)获取处理函数Pj′执行时服务器的系统资源使用量集合U′j={u1,u2,u3...uf},并根据系统资源使用量U′j计算服务器消耗的系统资源价值rj;其中ux表示第x类系统资源的系统资源使用量,f表示系统资源类型的总数,且有x∈[1,f]。
(3-9)根据处理函数Pj′的准确度aj、执行时间lj以及服务器消耗的系统资源价值rj获取新的可更改参数集合Vj′对应的目标函数F(Vj′)=((aj-A)*(L-lj))/rj
(3-10)将步骤(3-6)得到的新的可更改参数集合Vj′作为初始解,利用模拟退火启发式搜索算法搜索使目标函数F(Vj″)最大的可更改参数集合Vj″,并获得此时该可更改参数集合Vj″对应的处理函数Pj′,执行处理函数Pj′,得到处理函数P″j的准确度a″j、执行处理函数P″j的时间l″j、以及处理函数P″j执行时服务器的系统资源使用量集合U″j,将处理函数P″j的准确度a″j、执行时间l″j以及系统资源使用量集合U″j组装成处理阶段集合S中第i个处理阶段Si的第j个处理函数的配置信息四元组
Figure GDA0003130099750000061
并发送给应用处理结点;
(3-11)判断计数器j是否小于等于处理阶段集合S中第i个处理阶段Si中处理函数的总数ni,如果是,则设置j=j+1,然后返回步骤(3-5),否则转入步骤(3-12)。
(3-12)设置i=i+1,并返回步骤(3-2)。
优选地,服务器消耗的系统资源价值等于:
Figure GDA0003130099750000071
其中we表示第e类系统资源对应的价值权重,并且
Figure GDA0003130099750000072
且e∈[1,f];
对于处理阶段集合S中第x1个处理阶段中的第x2个处理函数Pq而言,其视频流窗口大小为NPq=(L/lq)*d;
其中lq是从步骤(3)获得的第x1个处理阶段的第x2个处理函数信息集合中的
Figure GDA0003130099750000073
内的执行时间
Figure GDA0003130099750000074
优选地,处理阶段集合S中第x3个处理阶段Sx3构建的有向无环图中第x层Bx的资源分配总量集合为
Figure GDA0003130099750000075
并行通量为
Figure GDA0003130099750000076
其中
Figure GDA0003130099750000077
表示从步骤(3)中获取的第x3个处理阶段的第b个处理函数中的配置信息四元组
Figure GDA0003130099750000078
中解析的执行时服务器的系统资源使用量集合,kb表示处理阶段集合S中第x3个处理阶段中第b个处理函数的并行通量,其中x3∈[1,m],j1∈[1,mb],jn∈[1,mb],mb为第d个处理阶段中处理函数的总数;
第x3个处理阶段Sx3对应的资源分配总量集合
Figure GDA0003130099750000079
Figure GDA00031300997500000710
第x3个处理阶段Sx3对应的并行通量
Figure GDA00031300997500000711
最大资源分配总量集合为Umax=max(Us1,Us2....Usm),最大并行通量kmax=max(ks1,ks2....ksm)。
优选地,第t3个进程的进程执行信息可以表示为三元组PEt3={nodet3,Sprocesst3,Dremaint3},Sprocesst3表示第t3个进程的实际处理速率,Dremaint3第t3个进程待处理的视频流数据量,nodet3表示第t3个进程的网络地址,均为任意自然数,t3∈[1,kmax]。
优选地,步骤(11)包括如下子步骤:
(11-1)根据步骤(10)得到的所有进程执行信息对应进程所需剩余处理时间将步骤(10)得到的进程执行信息集合中的所有进程执行信息进行降序排序。
(11-2)设置计数器i=1,j=kmax,index=1;
(11-3)判断是否有i<j,如果是转入步骤(11-4),否则过程结束;
(11-4)判断如果将步骤(8)得到的所有进程中进程nodei的视频流数据转移到进程nodej后,对应视频流数据的执行时间的减少量
Figure GDA0003130099750000081
是否大于阈值DT,即是否有
Figure GDA0003130099750000082
如果是则转入步骤(11-6),否则转入步骤(11-7);
(11-5)根据步骤(11-4)视频流数据转移前后的进程创建三元组
Figure GDA0003130099750000083
并设置index=index+1,通知进程nodej从nodei中获取视频流数据量为
Figure GDA0003130099750000084
的视频流数据进行处理。
(11-6)设置i=i+1,j=j-1,并返回步骤(11-3);
(11-7)设置j=j-1,并返回步骤(11-3)。
优选地,进程所需剩余处理时间等于该进程待处理的视频流数据量乘以进程的实际处理速率,即TRemaint3=(Sprocesst3*Dremaint3);
视频流数据的执行时间的减少量
Figure GDA0003130099750000085
其中
Figure GDA0003130099750000086
表示转移视频流数据量为
Figure GDA0003130099750000087
的视频流数据到进程nodej中所需的时间,且
Figure GDA0003130099750000088
其中
Figure GDA0003130099750000089
表示进程nodej处理完成之后,进程nodei剩余待处理的视频流数据量,且有:
Figure GDA00031300997500000810
按照本发明的另一方面,提供了一种分布式计算平台下基于QoS约束的视频流处理系统,包括:
第一模块,用于获取用户提交的视频流数据处理请求,该视频流数据处理请求包括视频流数据的来源信息、视频流数据的处理函数、视频流数据的分组函数和聚合函数、以及处理函数使用的视频流数据量的初始值d,其中d为任意大于0的正整数;
第二模块,用于根据第一模块获取的视频流数据的函数中数据之间的依赖关系建立处理序列,并根据第一模块获取的视频流数据处理请求中视频流数据的函数的类型将该处理序列划分为多个处理阶段,所有的处理阶段构成处理阶段集合S={S1,S2...Sm},其中m表示处理阶段集合中的处理阶段总数;
第三模块,用于针对第二模块得到的处理阶段集合S中仅包括处理函数的每一个处理阶段而言,利用模拟退火启发式搜索算法获得该处理阶段内每个处理函数小于其最大时延L、最小准确度A并且使用系统资源价值最低的处理函数配置信息,所有的处理函数配置信息构成处理函数配置信息集合
Figure GDA0003130099750000091
其中处理函数配置信息
Figure GDA0003130099750000092
表示处理函数的配置信息是由处理阶段集合S中第x1个处理阶段Sx1中第x2个处理函数Px2产生,x1∈[1,m],x2∈[1,nx2],nm为处理阶段集合S中第m个处理阶段的处理函数总数,nx2为处理阶段集合S中第x2个处理阶段中处理函数的总数。
第四模块,用于针对第二模块得到的阶段集合中每个处理阶段中的每个处理函数而言,根据第一模块得到的处理函数的最大时延L以及第三模块得到的处理函数配置信息确定该处理函数的视频流窗口,将每个处理阶段的所有处理函数的视频流窗口中的最小视频流窗口作为该处理阶段对应的视频流窗口,所有处理阶段的视频流窗口构成集合NS={NS1,NS2,...,NSm}。
第五模块,用于针对第二模块得到的处理阶段集合S中仅包括处理函数的每一个处理阶段而言,根据每个处理阶段内处理函数中数据之间的依赖关系建立该处理阶段对应的有向无环图,所有处理阶段对应的有向无环图构成有向无环图集合H;
第六模块,用于对于第五模块得到的处理阶段集合S对应的有向无环图集合中的每个有向无环图而言,使用广度优先遍历算法将该有向无环图划分为多个层次,所有层次构成该有向无环图对应的层次集合B={B1,B2,...Bnum4},其中Bcount表示有向无环图中的第count层,num4表示划分的层次总数,且count∈[1,num4]。
第七模块,用于根据第六模块得到的每个有向无环图对应的层次集合B确定与该有向无环图对应的处理阶段的资源分配总量集合和并行通量,并从处理阶段集合S的所有资源分配总量集合和所有并行通量中选择最大资源分配总量集合Umax和最大并行通量kmax;
第八模块,用于向集群管理结点申请启动kmax个任务的进程,将最大资源分配总量集合Umax分配给每个进程,并从集群管理结点获取每个进程的网络地址,所有进程的网络地址组成集合
Figure GDA0003130099750000101
第九模块,用于使用第三模块获取的处理函数配置信息集合Q中每个处理函数对应的可更改参数集合替换第二模块得到的处理阶段集合S中处理阶段内对应处理函数对应的可更改参数集合,并将处理阶段集合S中的每个处理阶段对应的视频流窗口设置为第四模块获取的对应处理阶段对应的视频流窗口,并将处理阶段集合S中的每个处理阶段封装成单个任务,所有任务构成任务集合E={E1,E2,...,Em},其中Enum5表示第num5个处理阶段封装成的任务,且num5∈[1,m];
第十模块,用于针对第九模块得到的任务集合中的每一个任务而言,将该任务复制kmax份,并根据第八模块得到的网络地址集合中的网络地址将复制后的kmax份任务发送给所有进程,并接收每个进程在执行任务过程中每隔周期T返回的进程执行信息PEt5,其中所有进程执行任务期间返回的任务执行情况构成进程执行信息集合PE={PE1,PE2,…,PEkmax},其中t5∈[1,kmax],T为任意大于零的自然数。
第十一模块,用于根据第十模块获得的进程执行信息集合PE将所需转移剩余处理时间长的进程待处理的视频流数据转移到所需剩余处理时间短的进程。
总体而言,通过本发明所构思的以上技术方案与现有技术相比,能够取得下列有益效果:
(1)由于本发明采用了步骤(1)到步骤(3),其对处理函数设置了可更改参数,同时可更改参数能够根据用户不同的时延以及准确度进行自适应改变,因此能够解决现有基于大数据处理平台的数据流处理模型由于无法对任务参数进行修改,因此无法满足不同用户对任务的具体需求的技术问题;
(2)由于本发明采用了步骤(3)到步骤(8)、以及步骤(9)到(11),其以利用最低资源价值为目标搜索处理函数的可更改参数,根据实际使用资源量集合确定应用所需资源充分保证应用拥有足够的资源量,同时步骤(9)到(11)根据进程执行信息调整视频流数据处理位置充分保证资源的有效利用,因此能够解决现有基于大数据处理平台的数据流处理模型由于不能根据任务的具体需求进行分配和调度,导致系统资源分配和调度的效率偏低的技术问题;
(3)由于本发明采用了步骤(3)以及步骤(7),其根据处理函数实际的执行速率确定用户指定的处理时延内能够处理的数据流窗口并且选择最小值作为数据量处理窗口保证所有处理函数都能及时得到处理结果,因此能够解决现有基于大数据处理平台的数据流处理模型由于该数据流处理模型主要基于用户自身定义每次处理的数据流处理窗口,导致处理模型的处理量过大时,用户不能及时得到响应的技术问题。
附图说明
图1是本发明分布式计算平台下基于QoS约束的视频流处理方法的流程图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
分布式计算平台是指将数据存储、数据分析和计算等构建在由多个主机构成的集群上的软件平台。利用其提供的资源共享和协同计算的能力,可以很好地解决大规模数据的处理问题。目前主流的通用分布式计算平台有Spark、Flink、Storm等,都提供了视频流计算模型,并且提供自动的数据分割、任务调度、负载均衡、数据缓存、数据通信等功能,大幅度降低了系统开发的复杂度,并且能够适应大容量和高并发的高通量需求,它们将固定的任务分配到各个主机上执行,并且根据系统的效率或者用户静态分配来进行资源和任务调度。
本发明提供了一种分布式计算平台下基于QoS约束的视频流处理方法,该方法将在分布式计算平台下,以视频流处理结果的准确度和时延这两个QoS指标为目标进行资源分配和任务调度。视频流结果的准确度主要受到算法参数和算法实现方式影响,处理时延主要受到资源分配以及视频流处理窗口大小的制约。因此本发明提出一种搜索满足时延和准确度的算法、参数、资源分配量以及窗口大小,根据此调整任务的参数和实现方式、分配计算资源的方法。
整个分布式计算平台由分布式计算集群、数据存储介质以及用户提交平台三个部分组成。用户提交平台负责将用户的任务提交到分布式计算集群进行计算,分布式计算集群从数据存储介质中获取数据进行处理。分布式计算集群包括计算结点、集群管理结点以及应用处理结点,应用处理结点负责解析用户提交数据、分派应用任务到计算节点的以及跟踪应用执行过程;计算结点负责执行应用处理结点分派的任务并且向集群管理结点汇报资源情况;集群管理结点负责接收应用的资源请求,分配计算结点的资源给应用处理结点。
本发明是一种分布式计算平台下基于QoS约束的视频流处理方法,其首先针对视频流处理特性将QoS定义为算子的准确度以及时延,并且基于此重新定义了视频流数据处理的编程模型;再将该模型发布至分布式处理框架,平台根据用户提交的处理过程,首先对各个算子进行分析,预先确定需求的准确度以及时延需求的资源量。再根据应用的数据依赖关系,对多个算子组合的情况(串行、并行、串行转并行、并行转串行)估计整个应用处理过程中应该分配的资源判断是否能满足要求并且根据之前的对算子的分析能够得到处理时间的估计时延。然后根据时延情况以及数据流的输入得到数据处理的窗口大小,再根据用户预估的视频流通路数对资源的总量进行估计,将任务分派给平台中满足资源需求条件的多台机器进行处理。在运行过程中接收任务处理的速率以及数据接收的速率要求是重新调整计算窗口大小,同时将某些处理计算量较大的通路将部分任务分派给某些视频通路数据量较少以及资源闲置较大的执行器,同时对资源重新调整。
如图1所示,本发明提供了一种分布式计算平台下基于QoS约束的视频流处理方法,包括以下步骤:
(1)获取用户提交的视频流数据处理请求,该视频流数据处理请求包括视频流数据的来源信息、视频流数据的处理函数(表示为P)、视频流数据的分组函数(表示为R)和聚合函数(表示为C)、以及处理函数使用的视频流数据量的初始值d(即视频流数据能够被拆分的帧的数量),其中d为任意大于0的正整数。
具体而言,视频流数据的来源信息包括视频流数据的存储位置和存储速率r。
视频流数据的处理函数包括该视频流数据的并行通路数(即采集该视频流数据的摄像头个数)k、处理函数的最大时延L和最小准确度A、以及该处理函数对应的可更改参数(即对视频流数据处理结果的准确度或者时延产生影响的参数)集合V={G1,G2,...Gh},其中h表示可更改参数的总数。
对于处理函数对应的可更改参数集合V中的第num个可更改参数Gnum而言,其可以表示为五元组:
Gnum={vnnum,vminnum,vmaxnum,vstepnum,voptimalnum},其中num∈[1,h],vnnum表示第num个可更改参数Gnum的变量名,vminnum表示第num个可更改参数Gnum的最小值,vmaxnum表示第num个可更改参数Gnum的最大值,vstepnum表示从vminnum到vmaxnum的步进值,voptimalnum表示能够使该处理函数获得最佳准确度的、第num个可更改参数的参考值,vminnum和vmaxnum为任意自然数,且vminnum<vmaxnum
(2)根据步骤(1)获取的视频流数据的函数中数据之间的依赖关系建立处理序列(该处理序列中的元素就是视频流数据的所有函数),并根据步骤(1)获取的视频流数据处理请求中视频流数据的函数的类型将该处理序列划分为多个处理阶段,所有的处理阶段构成处理阶段集合S={S1,S2...Sm},其中m表示处理阶段集合中的处理阶段总数,且为任意自然数;
需要注意的是,在处理阶段的划分过程中,如果处理序列中存在多个连续的处理函数,则将其一起作为一个处理阶段;如果处理序列中存在多个连续的分组函数,则将每一个分组函数单独作为一个处理阶段;如果处理序列中存在多个连续的聚合函数,则将每一个聚合函数单独作为一个处理阶段。
具体而言,函数中数据之间的依赖关系,指的就是下一个函数的输入数据依赖上一个函数的输出数据。
假如,视频流数据的函数中数据之间的依赖关系是处理函数P1、处理函数P2、...、分组函数Rk、分组函数Rk+1、聚合函数Ck+2、...、处理函数Pn,其中n表示视频流数据的处理函数总数,且为任意自然数,则本步骤中建立的处理序列为{P1,P2...Rk,Pk+1,Ck+2...,Pn},最终得到的处理阶段集合S={S1,S2...Sm}={{P1,P2...Pk-1},{Rk},{Pk+1},{Ck+2}...{Pk+ 3...Pn}}。
上述步骤(2)的优点在于,处理序列中分组和聚合函数需要将一组连续的视频流数据分散到多个处理结点中才能进行后续处理,根据其位置划分为不同的阶段,能最大提高阶段内任务处理的并行度,并且减少整个应用处理的复杂度。
(3)针对步骤(2)得到的处理阶段集合S中仅包括处理函数的每一个处理阶段而言,利用模拟退火启发式搜索算法获得该处理阶段内每个处理函数小于其最大时延L、最小准确度A并且使用系统资源价值最低的处理函数配置信息,所有的处理函数配置信息构成处理函数配置信息集合
Figure GDA0003130099750000151
Figure GDA0003130099750000152
其中处理函数配置信息
Figure GDA0003130099750000153
表示处理函数的配置信息是由处理阶段集合S中第x1个处理阶段Sx1中第x2个处理函数Px2产生,x1∈[1,m],x2∈[1,nx2],nm为处理阶段集合S中第m个处理阶段的处理函数总数,nx2为处理阶段集合S中第x2个处理阶段中处理函数的总数。
具体而言,处理阶段集合S中第x1个处理阶段Sx1中第x2个处理函数Px2的配置信息
Figure GDA0003130099750000154
可以被表示为四元组
Figure GDA0003130099750000155
其中
Figure GDA0003130099750000156
表示处理函数Px2对应的可更改参数集合,
Figure GDA0003130099750000157
表示将Px2的可更改参数替换为V后得到的处理函数P′x2的准确度,
Figure GDA0003130099750000158
表示视频流数据量为d时,处理函数P′k的执行时间,
Figure GDA0003130099750000161
表示处理函数P′x2执行时服务器的系统资源使用量集合。
本步骤具体包括如下子步骤:
(3-1)设置计数器i=1;
(3-2)判断i是否等于处理阶段集合S中处理阶段的总数m,如果是则过程结束,否则转入步骤(3-3);
(3-3)判断处理阶段集合S中处理阶段的第i阶段是否只包含处理函数,如果是转入步骤(3-4),否则转入步骤(3-12)
(3-4)设置计数器j=0;
(3-5)获取处理阶段集合S中第i个处理阶段Si中第j个处理函数Pj对应的可更改参数集合Vj,获取可更改参数集合Vj中所有可更改参数的参考值组成的参考值集合Voptimal={voptimal1,voptimal2...voptimalh},将可更改参数集合Vj更新为参考值Voptimal,并获得此时参考值集合Voptimal对应的处理函数Poptimal,执行该处理函数Poptimal,以获得处理结果集合Toptimal,其中voptimalnum1表示参考值集合Voptimal中的第num1个可更改参数的参考值,且num1∈[1,h]。
(3-6)获取处理阶段集合S中第i个处理阶段Si中第j个处理函数Pj中的可更改参数集合Vj,从中随机选择多个可更改参数组成新的可更改参数集合Vj′={v1,v2,...,vh},其中vnum2表示新的可更改参数集合Vj′中的第num2个可更改参数,vnum∈[vminnum2,vmaxnum2],并且vnum2能被vstepnum2整除,num2∈[1,h];
(3-7)将可更改参数集合Vj更新为新的可更改参数集合Vj′,并获得此时新的可更改参数集合Vj′对应的处理函数Pj′,执行该处理函数Pj′,以获得处理结果集合Tj′,根据处理结果集合Toptimal和Tj′计算处理函数Pj′的准确度aj′,并保存处理函数Pj′对视频流数据量为d的视频流数据的执行时间lj′;
具体而言,处理函数Pj′的准确度aj是处理结果集合Toptimal与Tj′之间的召回率,且aj′∈[0,1]。
(3-8)获取处理函数Pj′执行时服务器的系统资源使用量集合U′j,并根据系统资源使用量U′j计算服务器消耗的系统资源价值rj
具体而言,服务器的系统资源包括CPU、内存等,系统资源使用量集合表示为U′j={u1,u2,u3...uf},其中ux表示第x类系统资源的系统资源使用量,f表示系统资源类型的总数,且有x∈[1,f]。
服务器消耗的系统资源价值等于:
Figure GDA0003130099750000171
其中we表示第e类系统资源对应的价值权重,并且
Figure GDA0003130099750000172
且e∈[1,f]。
(3-9)根据处理函数Pj′的准确度aj、执行时间lj以及服务器消耗的系统资源价值rj获取新的可更改参数集合Vj′对应的目标函数F(Vj′)=((aj-A)*(L-lj))/rj
具体而言,(aj-A)表示处理函数Pj′获得的准确度增益,(L-lj)表示处理函数Pj′获得的时延增益。
(3-10)将步骤(3-6)得到的新的可更改参数集合Vj′作为初始解,利用模拟退火启发式搜索算法搜索使目标函数F(Vj″)最大的可更改参数集合Vj″,并获得此时该可更改参数集合Vj″对应的处理函数P″j,执行处理函数P″j,得到处理函数P″j的准确度a″j、执行处理函数P″j的时间l″j、以及处理函数P″j执行时服务器的系统资源使用量集合U″j,将处理函数P″j的准确度a″j、执行时间l″j以及系统资源使用量集合U″j组装成处理阶段集合S中第i个处理阶段Si的第j个处理函数的配置信息四元组
Figure GDA0003130099750000173
并发送给应用处理结点;
(3-11)判断计数器j是否小于等于处理阶段集合S中第i个处理阶段Si中处理函数的总数ni,如果是,则设置j=j+1,然后返回步骤(3-5),否则转入步骤(3-12)。
(3-12)设置i=i+1,并返回步骤(3-2)。
(4)针对步骤(2)得到的阶段集合中每个处理阶段中的每个处理函数而言,根据步骤(1)得到的处理函数的最大时延L以及步骤(3)得到的处理函数配置信息确定该处理函数的视频流窗口,将每个处理阶段的所有处理函数的视频流窗口中的最小视频流窗口作为该处理阶段对应的视频流窗口,所有处理阶段的视频流窗口构成集合NS={NS1,NS2,...,NSm}。
具体而言,对于处理阶段集合S中第x1个处理阶段中的第x2个处理函数Pq而言,其视频流窗口大小为NPq=(L/lq)*d,其中lq是从步骤(3)获得的第x1个处理阶段的第x2个处理函数信息集合中的
Figure GDA0003130099750000181
内的执行时间
Figure GDA0003130099750000182
(5)针对步骤(2)得到的处理阶段集合S中仅包括处理函数的每一个处理阶段而言,根据每个处理阶段内处理函数中数据之间的依赖关系建立该处理阶段对应的有向无环图,所有处理阶段对应的有向无环图构成有向无环图集合H;
(6)对于步骤(5)得到的处理阶段集合S对应的有向无环图集合中的每个有向无环图而言,使用广度优先遍历算法将该有向无环图划分为多个层次,所有层次构成该有向无环图对应的层次集合B={B1,B2,...Bnum4},其中Bcount表示有向无环图中的第count层,num4表示划分的层次总数,count∈[1,num4]。
(7)根据步骤(6)得到的每个有向无环图对应的层次集合B确定与该有向无环图对应的处理阶段的资源分配总量集合和并行通量,并从处理阶段集合S的所有资源分配总量集合和所有并行通量中选择最大资源分配总量集合Umax和最大并行通量kmax;
具体而言,处理阶段集合S中第x3个处理阶段Sx3构建的有向无环图中第x层Bx的资源分配总量集合为
Figure GDA0003130099750000191
并行通量为
Figure GDA0003130099750000192
Figure GDA0003130099750000193
其中
Figure GDA0003130099750000194
表示从步骤(3)中获取的第x3个处理阶段的第b个处理函数中的配置信息四元组
Figure GDA0003130099750000195
中解析的执行时服务器的系统资源使用量集合,kb表示处理阶段集合S中第x3个处理阶段中第b个处理函数的并行通量,其中x3∈[1,m],j1∈[1,mb],jn∈[1,mb],mb为第d个处理阶段中处理函数的总数,第x3个处理阶段Sx3对应的资源分配总量集合
Figure GDA0003130099750000196
Figure GDA0003130099750000197
第x3个处理阶段Sx3对应的并行通量
Figure GDA0003130099750000198
在本步骤中,最终得到的最大资源分配总量集合为Umax=max(Us1,Us2....Usm),最大并行通量kmax=max(ks1,ks2....ksm)。
(8)向集群管理结点申请启动kmax个任务的进程,将最大资源分配总量集合Umax分配给每个进程,并从集群管理结点获取每个进程的网络地址(包括IP地址和端口号),所有进程的网络地址组成集合
Figure GDA0003130099750000199
(9)使用步骤(3)获取的处理函数配置信息集合Q中每个处理函数对应的可更改参数集合替换步骤(2)得到的处理阶段集合S中处理阶段内对应处理函数对应的可更改参数集合,并将处理阶段集合S中的每个处理阶段对应的视频流窗口设置为步骤(4)获取的对应处理阶段对应的视频流窗口,并将处理阶段集合S中的每个处理阶段封装成单个任务,所有任务构成任务集合E={E1,E2,...,Em},其中Enum5表示第num5个处理阶段封装成的任务,且num5∈[1,m];
(10)针对步骤(9)得到的任务集合中的每一个任务而言,将该任务复制kmax份,并根据步骤(8)得到的网络地址集合中的网络地址将复制后的kmax份任务发送给所有进程,并接收每个进程在执行任务过程中每隔周期T返回的进程执行信息PEt5,其中所有进程执行任务期间返回的任务执行情况构成进程执行信息集合PE={PE1,PE2,...,PEkmax},其中t5∈[1,kmax],T为任意大于零的自然数。
具体而言,第t3个进程的进程执行信息可以表示为三元组PEt3={nodet3,Sprocesst3,Dremaint3},Sprocesst3表示第t3个进程的实际处理速率,Dremaint3第t3个进程待处理的视频流数据量,nodet3表示第t3个进程的网络地址,均为任意自然数,t3∈[1,kmax]。
(11)根据步骤(10)获得的进程执行信息集合PE将所需转移剩余处理时间长的进程待处理的视频流数据转移到所需剩余处理时间短的进程。
本步骤包括如下子步骤:
(11-1)根据步骤(10)得到的所有进程执行信息对应进程所需剩余处理时间将步骤(10)得到的进程执行信息集合中的所有进程执行信息进行降序排序。
具体而言,进程所需剩余处理时间等于该进程待处理的视频流数据量乘以进程的实际处理速率,即TRemaint3=(Sprocesst3*Dremaint3);
(11-2)设置计数器i=1,j=kmax,index=1;
(11-3)判断是否有i<j,如果是转入步骤(11-4),否则过程结束;
(11-4)判断如果将步骤(8)得到的所有进程中进程nodei的视频流数据转移到进程nodej后,对应视频流数据的执行时间的减少量
Figure GDA0003130099750000201
是否大于阈值DT,即是否有
Figure GDA0003130099750000202
如果是则转入步骤(11-6),否则转入步骤(11-7);
具体而言,DT为任意大于零的自然数,优选为TRemaini/3。
转移视频流数据量为
Figure GDA0003130099750000203
的视频流数据到进程nodej中所需的时间
Figure GDA0003130099750000204
其中
Figure GDA0003130099750000205
其中
Figure GDA0003130099750000211
表示进程nodej处理完成之后,进程nodei剩余待处理的视频流数据量。
视频流数据的执行时间的减少量
Figure GDA0003130099750000212
(11-5)根据步骤(11-4)视频流数据转移前后的进程创建三元组
Figure GDA0003130099750000213
并设置index=index+1,通知进程nodej从nodei中获取视频流数据量为
Figure GDA0003130099750000214
的视频流数据进行处理。
(11-6)设置i=i+1,j=j-1,并返回步骤(11-3);
(11-7)设置j=j–1,并返回步骤(11-3)。
本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

Claims (10)

1.一种分布式计算平台下基于QoS约束的视频流处理方法,其特征在于,包括以下步骤:
(1)获取用户提交的视频流数据处理请求,该视频流数据处理请求包括视频流数据的来源信息、视频流数据的处理函数、视频流数据的分组函数和聚合函数、以及处理函数使用的视频流数据的初始值d,其中d为任意大于0的正整数;
(2)根据步骤(1)获取的视频流数据的函数中数据之间的依赖关系建立处理序列,并根据步骤(1)获取的视频流数据处理请求中视频流数据的函数的类型将该处理序列划分为多个处理阶段,所有的处理阶段构成处理阶段集合S={S1,S2...Sm},其中m表示处理阶段集合中的处理阶段总数;
(3)针对步骤(2)得到的处理阶段集合S中仅包括处理函数的每一个处理阶段而言,利用模拟退火启发式搜索算法获得该处理阶段内每个处理函数小于其最大时延L、最小准确度A并且使用系统资源价值最低的处理函数配置信息,所有的处理函数配置信息构成处理函数配置信息集合Q=
Figure FDA0003130099740000011
其中处理函数配置信息
Figure FDA0003130099740000012
表示处理函数的配置信息是由处理阶段集合S中第x1个处理阶段Sx1中第x2个处理函数Px2产生,x1∈[1,m],x2∈[1,nx2],nm为处理阶段集合S中第m个处理阶段的处理函数总数,nx2为处理阶段集合S中第x2个处理阶段中处理函数的总数;
(4)针对步骤(2)得到的阶段集合中每个处理阶段中的每个处理函数而言,根据步骤(1)得到的处理函数的最大时延L以及步骤(3)得到的处理函数配置信息确定该处理函数的视频流窗口,将每个处理阶段的所有处理函数的视频流窗口中的最小视频流窗口作为该处理阶段对应的视频流窗口,所有处理阶段的视频流窗口构成集合NS={NS1,NS2,...,NSm};
(5)针对步骤(2)得到的处理阶段集合S中仅包括处理函数的每一个处理阶段而言,根据每个处理阶段内处理函数中数据之间的依赖关系建立该处理阶段对应的有向无环图,所有处理阶段对应的有向无环图构成有向无环图集合H;
(6)对于步骤(5)得到的处理阶段集合S对应的有向无环图集合中的每个有向无环图而言,使用广度优先遍历算法将该有向无环图划分为多个层次,所有层次构成该有向无环图对应的层次集合B={B1,B2,...Bnum4},其中Bcount表示有向无环图中的第count层,num4表示划分的层次总数,且count∈[1,num4];
(7)根据步骤(6)得到的每个有向无环图对应的层次集合B确定与该有向无环图对应的处理阶段的资源分配总量集合和并行通量,并从处理阶段集合S的所有资源分配总量集合和所有并行通量中选择最大资源分配总量集合Umax和最大并行通量kmax;
(8)向集群管理结点申请启动kmax个任务的进程,将最大资源分配总量集合Umax分配给每个进程,并从集群管理结点获取每个进程的网络地址,所有进程的网络地址组成集合
Figure FDA0003130099740000021
(9)使用步骤(3)获取的处理函数配置信息集合Q中每个处理函数对应的可更改参数集合替换步骤(2)得到的处理阶段集合S中处理阶段内对应处理函数对应的可更改参数集合,并将处理阶段集合S中的每个处理阶段对应的视频流窗口设置为步骤(4)获取的对应处理阶段对应的视频流窗口,并将处理阶段集合S中的每个处理阶段封装成单个任务,所有任务构成任务集合E={E1,E2,...,Em},其中Enum5表示第num5个处理阶段封装成的任务,且num5∈[1,m];
(10)针对步骤(9)得到的任务集合中的每一个任务而言,将该任务复制kmax份,并根据步骤(8)得到的网络地址集合中的网络地址将复制后的kmax份任务发送给所有进程,并接收每个进程在执行任务过程中每隔周期T返回的进程执行信息PEt5,其中所有进程执行任务期间返回的任务执行情况构成进程执行信息集合PE={PE1,PE2,...,PEkmax},其中t5∈[1,kmax],T为任意大于零的自然数;
(11)根据步骤(10)获得的进程执行信息集合PE将所需转移剩余处理时间长的进程待处理的视频流数据转移到所需剩余处理时间短的进程。
2.根据权利要求1所述的分布式计算平台下基于QoS约束的视频流处理方法,其特征在于,
视频流数据的来源信息包括视频流数据的存储位置和存储速率r;
视频流数据的处理函数包括该视频流数据的并行通路数k、处理函数的最大时延L和最小准确度A、以及该处理函数对应的可更改参数集合V={G1,G2,...Gh},其中h表示可更改参数的总数。
3.根据权利要求2所述的分布式计算平台下基于QoS约束的视频流处理方法,其特征在于,
可更改参数集合V中的第num个可更改参数Gnum表示为五元组:
Gnum={vnnum,vminnum,vmaxnum,vstepnum,voptimalnum}
其中num∈[1,h],vnnum表示第num个可更改参数Gnum的变量名,vminnum表示第num个可更改参数Gnum的最小值,vmaxnum表示第num个可更改参数Gnum的最大值,vstepnum表示从vminnum到vmaxnum的步进值,voptimalnum表示能够使该处理函数获得最佳准确度的、第num个可更改参数的参考值,vminnum和vmaxnum为任意自然数,且vminnum<vmaxnum
处理阶段集合S中第x1个处理阶段Sx1中第x2个处理函数Px2的配置信启、
Figure FDA0003130099740000031
表示为四元组:
Figure FDA0003130099740000032
其中
Figure FDA0003130099740000033
表示处理函数Px2对应的可更改参数集合,
Figure FDA0003130099740000034
表示将Px2的可更改参数替换为V后得到的处理函数P′x2的准确度,
Figure FDA0003130099740000041
表示视频流数据量为d时,处理函数P′k的执行时间,
Figure FDA0003130099740000042
表示处理函数P′x2执行时服务器的系统资源使用量集合。
4.根据权利要求1至3中任意一项所述的分布式计算平台下基于QoS约束的视频流处理方法,其特征在于,步骤(3)具体包括如下子步骤:
(3-1)设置计数器i=1;
(3-2)判断i是否等于处理阶段集合S中处理阶段的总数m,如果是则过程结束,否则转入步骤(3-3);
(3-3)判断处理阶段集合S中处理阶段的第i阶段是否只包含处理函数,如果是转入步骤(3-4),否则转入步骤(3-12)
(3-4)设置计数器j=0;
(3-5)获取处理阶段集合S中第i个处理阶段Si中第j个处理函数Pj对应的可更改参数集合Vj,获取可更改参数集合Vj中所有可更改参数的参考值组成的参考值集合Voptimal={voptimal1,voptimal2...voptimalh},将可更改参数集合Vj更新为参考值Voptimal,并获得此时参考值集合Voptimal对应的处理函数Poptimal,执行该处理函数Poptimal,以获得处理结果集合Toptimal,其中voptimalnum1表示参考值集合Voptimal中的第num1个可更改参数的参考值,且num1∈[1,h];
(3-6)获取处理阶段集合S中第i个处理阶段Si中第j个处理函数Pj中的可更改参数集合Vj,从中随机选择多个可更改参数组成新的可更改参数集合Vj′={v1,v2,...,vh},其中vnum2表示新的可更改参数集合Vj′中的第num2个可更改参数,vnum∈[vminnum2,vmaxnum2],并且vnum2能被vstepnum2整除,num2∈[1,h];
(3-7)将可更改参数集合Vj更新为新的可更改参数集合Vj′,并获得此时新的可更改参数集合Vj′对应的处理函数Pj′,执行该处理函数Pj′,以获得处理结果集合Tj′,根据处理结果集合Toptimal和Tj′计算处理函数Pj′的准确度aj′,并保存处理函数Pj′对视频流数据量为d的视频流数据的执行时间lj′;
(3-8)获取处理函数Pj′执行时服务器的系统资源使用量集合U′j={u1,u2,u3...uf},并根据系统资源使用量U′j计算服务器消耗的系统资源价值rj;其中ux表示第x类系统资源的系统资源使用量,f表示系统资源类型的总数,且有x∈[1,f];
(3-9)根据处理函数Pj′的准确度aj、执行时间lj以及服务器消耗的系统资源价值rj获取新的可更改参数集合Vj′对应的目标函数F(Vj′)=((aj-A)*(L-lj))/rj
(3-10)将步骤(3-6)得到的新的可更改参数集合Vj′作为初始解,利用模拟退火启发式搜索算法搜索使目标函数F(Vj″)最大的可更改参数集合Vj″,并获得此时该可更改参数集合Vj″对应的处理函数Pj″,执行处理函数Pj″,得到处理函数P″j的准确度a″j、执行处理函数P″j的时间l″j、以及处理函数P″j执行时服务器的系统资源使用量集合U″j,将处理函数P″j的准确度a″j、执行时间l″j以及系统资源使用量集合U″j组装成处理阶段集合S中第i个处理阶段Si的第j个处理函数的配置信息四元组
Figure FDA0003130099740000051
并发送给应用处理结点;
(3-11)判断计数器j是否小于等于处理阶段集合S中第i个处理阶段Si中处理函数的总数ni,如果是,则设置j=j+1,然后返回步骤(3-5),否则转入步骤(3-12);
(3-12)设置i=i+1,并返回步骤(3-2)。
5.根据权利要求4所述的分布式计算平台下基于QoS约束的视频流处理方法,其特征在于,
服务器消耗的系统资源价值等于:
Figure FDA0003130099740000052
其中we表示第e类系统资源对应的价值权重,并且
Figure FDA0003130099740000061
且e∈[1,f];
对于处理阶段集合S中第x1个处理阶段中的第x2个处理函数Pq而言,其视频流窗口大小为NPq=(L/lq)*d;
其中lq是从步骤(3)获得的第x1个处理阶段的第x2个处理函数信息集合中的
Figure FDA0003130099740000062
内的执行时间
Figure FDA0003130099740000063
6.根据权利要求5所述的分布式计算平台下基于QoS约束的视频流处理方法,其特征在于,
处理阶段集合S中第x3个处理阶段Sx3构建的有向无环图中第x层Bx的资源分配总量集合为
Figure FDA0003130099740000064
并行通量为
Figure FDA0003130099740000065
其中
Figure FDA0003130099740000066
表示从步骤(3)中获取的第x3个处理阶段的第b个处理函数中的配置信息四元组
Figure FDA0003130099740000067
中解析的执行时服务器的系统资源使用量集合,kb表示处理阶段集合S中第x3个处理阶段中第b个处理函数的并行通量,其中x3∈[1,m],j1∈[1,mb],jn∈[1,mb],mb为第d个处理阶段中处理函数的总数;
第x3个处理阶段Sx3对应的资源分配总量集合
Figure FDA0003130099740000068
Figure FDA0003130099740000069
第x3个处理阶段Sx3对应的并行通量
Figure FDA00031300997400000610
最大资源分配总量集合为Umax=max(Us1,Us2....Usm),最大并行通量kmax=max(ks1,ks2....ksm)。
7.根据权利要求6所述的分布式计算平台下基于QoS约束的视频流处理方法,其特征在于,第t3个进程的进程执行信息可以表示为三元组PEt3={nodet3,Sprocesst3,Dremaint3},Sprocesst3表示第t3个进程的实际处理速率,Dremaint3第t3个进程待处理的视频流数据量,nodet3表示第t3个进程的网络地址,均为任意自然数,t3∈[1,kmax]。
8.根据权利要求7所述的分布式计算平台下基于QoS约束的视频流处理方法,其特征在于,步骤(11)包括如下子步骤:
(11-1)根据步骤(10)得到的所有进程执行信息对应进程所需剩余处理时间将步骤(10)得到的进程执行信息集合中的所有进程执行信息进行降序排序;
(11-2)设置计数器i=1,j=kmax,index=1;
(11-3)判断是否有i<j,如果是转入步骤(11-4),否则过程结束;
(11-4)判断如果将步骤(8)得到的所有进程中进程nodei的视频流数据转移到进程nodej后,对应视频流数据的执行时间的减少量
Figure FDA0003130099740000071
是否大于阈值DT,即是否有
Figure FDA0003130099740000072
如果是则转入步骤(11-6),否则转入步骤(11-7);
(11-5)根据步骤(11-4)视频流数据转移前后的进程创建三元组
Figure FDA0003130099740000073
并设置index=index+1,通知进程nodej从nodei中获取视频流数据量为
Figure FDA0003130099740000074
的视频流数据进行处理;
(11-6)设置i=i+1,j=j-1,并返回步骤(11-3);
(11-7)设置j=j-1,并返回步骤(11-3)。
9.根据权利要求7所述的分布式计算平台下基于QoS约束的视频流处理方法,其特征在于,
进程所需剩余处理时间等于该进程待处理的视频流数据量乘以进程的实际处理速率,即TRemaint3=(Sprocesst3*Dremaint3);
视频流数据的执行时间的减少量
Figure FDA0003130099740000075
其中
Figure FDA0003130099740000076
表示转移视频流数据量为
Figure FDA0003130099740000077
的视频流数据到进程nodej中所需的时间,且
Figure FDA0003130099740000078
其中
Figure FDA0003130099740000079
表示进程nodej处理完成之后,进程nodei剩余待处理的视频流数据量,且有:
Figure FDA0003130099740000081
10.一种分布式计算平台下基于QoS约束的视频流处理系统,其特征在于,包括:
第一模块,用于获取用户提交的视频流数据处理请求,该视频流数据处理请求包括视频流数据的来源信息、视频流数据的处理函数、视频流数据的分组函数和聚合函数、以及处理函数使用的视频流数据量的初始值d,其中d为任意大于0的正整数;
第二模块,用于根据第一模块获取的视频流数据的函数中数据之间的依赖关系建立处理序列,并根据第一模块获取的视频流数据处理请求中视频流数据的函数的类型将该处理序列划分为多个处理阶段,所有的处理阶段构成处理阶段集合S={S1,S2...Sm},其中m表示处理阶段集合中的处理阶段总数;
第三模块,用于针对第二模块得到的处理阶段集合S中仅包括处理函数的每一个处理阶段而言,利用模拟退火启发式搜索算法获得该处理阶段内每个处理函数小于其最大时延L、最小准确度A并且使用系统资源价值最低的处理函数配置信息,所有的处理函数配置信息构成处理函数配置信息集合
Figure FDA0003130099740000082
其中处理函数配置信息
Figure FDA0003130099740000083
表示处理函数的配置信息是由处理阶段集合S中第x1个处理阶段Sx1中第x2个处理函数Px2产生,x1∈[1,m],x2∈[1,nx2],nm为处理阶段集合S中第m个处理阶段的处理函数总数,nx2为处理阶段集合S中第x2个处理阶段中处理函数的总数;
第四模块,用于针对第二模块得到的阶段集合中每个处理阶段中的每个处理函数而言,根据第一模块得到的处理函数的最大时延L以及第三模块得到的处理函数配置信息确定该处理函数的视频流窗口,将每个处理阶段的所有处理函数的视频流窗口中的最小视频流窗口作为该处理阶段对应的视频流窗口,所有处理阶段的视频流窗口构成集合NS={NS1,NS2,...,NSm};
第五模块,用于针对第二模块得到的处理阶段集合S中仅包括处理函数的每一个处理阶段而言,根据每个处理阶段内处理函数中数据之间的依赖关系建立该处理阶段对应的有向无环图,所有处理阶段对应的有向无环图构成有向无环图集合H;
第六模块,用于对于第五模块得到的处理阶段集合S对应的有向无环图集合中的每个有向无环图而言,使用广度优先遍历算法将该有向无环图划分为多个层次,所有层次构成该有向无环图对应的层次集合B={B1,B2,...Bnum4},其中Bcount表示有向无环图中的第count层,num4表示划分的层次总数,且count∈[1,num4];
第七模块,用于根据第六模块得到的每个有向无环图对应的层次集合B确定与该有向无环图对应的处理阶段的资源分配总量集合和并行通量,并从处理阶段集合S的所有资源分配总量集合和所有并行通量中选择最大资源分配总量集合Umax和最大并行通量kmax;
第八模块,用于向集群管理结点申请启动kmax个任务的进程,将最大资源分配总量集合Umax分配给每个进程,并从集群管理结点获取每个进程的网络地址,所有进程的网络地址组成集合
Figure FDA0003130099740000091
第九模块,用于使用第三模块获取的处理函数配置信息集合Q中每个处理函数对应的可更改参数集合替换第二模块得到的处理阶段集合S中处理阶段内对应处理函数对应的可更改参数集合,并将处理阶段集合S中的每个处理阶段对应的视频流窗口设置为第四模块获取的对应处理阶段对应的视频流窗口,并将处理阶段集合S中的每个处理阶段封装成单个任务,所有任务构成任务集合E={E1,E2,...,Em},其中Enum5表示第num5个处理阶段封装成的任务,且num5∈[1,m];
第十模块,用于针对第九模块得到的任务集合中的每一个任务而言,将该任务复制kmax份,并根据第八模块得到的网络地址集合中的网络地址将复制后的kmax份任务发送给所有进程,并接收每个进程在执行任务过程中每隔周期T返回的进程执行信息PEt5,其中所有进程执行任务期间返回的任务执行情况构成进程执行信息集合PE={PE1,PE2,...,PEkmax},其中t5∈[1,kmax],T为任意大于零的自然数;
第十一模块,用于根据第十模块获得的进程执行信息集合PE将所需转移剩余处理时间长的进程待处理的视频流数据转移到所需剩余处理时间短的进程。
CN202011303293.2A 2020-11-19 2020-11-19 分布式计算平台下基于QoS约束的视频流处理方法和系统 Active CN112423041B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011303293.2A CN112423041B (zh) 2020-11-19 2020-11-19 分布式计算平台下基于QoS约束的视频流处理方法和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011303293.2A CN112423041B (zh) 2020-11-19 2020-11-19 分布式计算平台下基于QoS约束的视频流处理方法和系统

Publications (2)

Publication Number Publication Date
CN112423041A CN112423041A (zh) 2021-02-26
CN112423041B true CN112423041B (zh) 2021-10-29

Family

ID=74773590

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011303293.2A Active CN112423041B (zh) 2020-11-19 2020-11-19 分布式计算平台下基于QoS约束的视频流处理方法和系统

Country Status (1)

Country Link
CN (1) CN112423041B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113079389B (zh) * 2021-03-23 2022-01-25 国网江苏省电力有限公司信息通信分公司 一种边缘计算环境下的资源自适应调节方法
CN114090018B (zh) * 2022-01-25 2022-05-24 树根互联股份有限公司 工业互联网设备的指标计算方法、装置和电子设备

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104618693A (zh) * 2015-02-09 2015-05-13 北京邮电大学 一种基于云计算的监控视频在线处理任务管理方法及系统
CN106982356A (zh) * 2017-04-08 2017-07-25 复旦大学 一种分布式大规模视频流处理系统
CN109615143A (zh) * 2018-12-18 2019-04-12 中国民航大学 基于多QoS约束的广域信息管理系统任务调度蚁群优化算法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6924083B2 (ja) * 2017-06-22 2021-08-25 株式会社日立製作所 情報処理システムおよびリソース割り当て方法
US10802880B2 (en) * 2017-09-19 2020-10-13 Huawei Technologies Co., Ltd. System and method for distributed resource requirement and allocation

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104618693A (zh) * 2015-02-09 2015-05-13 北京邮电大学 一种基于云计算的监控视频在线处理任务管理方法及系统
CN106982356A (zh) * 2017-04-08 2017-07-25 复旦大学 一种分布式大规模视频流处理系统
CN109615143A (zh) * 2018-12-18 2019-04-12 中国民航大学 基于多QoS约束的广域信息管理系统任务调度蚁群优化算法

Also Published As

Publication number Publication date
CN112423041A (zh) 2021-02-26

Similar Documents

Publication Publication Date Title
Wang et al. Resource-efficient federated learning with hierarchical aggregation in edge computing
CN109491790B (zh) 基于容器的工业物联网边缘计算资源分配方法及系统
CN107395501B (zh) 一种网络服务功能链的跨域部署方法
US7941387B2 (en) Method and system for predicting resource usage of reusable stream processing elements
US11689961B2 (en) Systems and methods for distribution of application logic in digital networks
CN112423041B (zh) 分布式计算平台下基于QoS约束的视频流处理方法和系统
CN107846371B (zh) 一种多媒体业务QoE资源分配方法
CN113822456A (zh) 一种云雾混构环境下基于深度强化学习的服务组合优化部署方法
AU2019222940B2 (en) Prescriptive analytics based storage class placement stack for cloud computing
Wang et al. A reinforcement learning approach for online service tree placement in edge computing
CN110167031B (zh) 一种面向集中式基站的资源分配方法、设备及存储介质
Shukla et al. FAT-ETO: Fuzzy-AHP-TOPSIS-Based efficient task offloading algorithm for scientific workflows in heterogeneous fog–cloud environment
Li et al. Data analytics for fog computing by distributed online learning with asynchronous update
CN111131447A (zh) 一种基于中介节点任务分配的负载均衡方法
Abdullah et al. A reliable, TOPSIS-based multi-criteria, and hierarchical load balancing method for computational grid
Hadian et al. An elastic and traffic-aware scheduler for distributed data stream processing in heterogeneous clusters
CN106506229B (zh) 一种sbs云应用自适应资源优化调整系统及方法
Raykar et al. A novel traffic load balancing approach for scheduling of optical transparent antennas (OTAs) on mobile terminals
Zeydan et al. A multi-criteria decision making approach for scaling and placement of virtual network functions
CN114978913B (zh) 一种基于切链的服务功能链跨域部署方法及系统
Xiao et al. Dynamic resource allocation algorithm of virtual networks in edge computing networks
Bekhit et al. Multi-objective VNF Placement Optimization with NSGA-III
Li et al. Task allocation based on task deployment in autonomous vehicular cloud
CN112506496A (zh) 晶上系统开发环境搭建方法及系统
Li et al. NeiLatS: Neighbor-Aware Latency-Sensitive Application Scheduling in Heterogeneous Cloud-Edge Environment

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
CB03 Change of inventor or designer information

Inventor after: Li Kenli

Inventor after: Tang Yanyang

Inventor after: Yang Wangdong

Inventor after: Zou Xiaofeng

Inventor after: Guo Dawei

Inventor after: Chen Cen

Inventor after: Li Keqin

Inventor before: Yang Wangdong

Inventor before: Tang Yanyang

Inventor before: Li Kenli

Inventor before: Zou Xiaofeng

Inventor before: Guo Dawei

Inventor before: Chen Cen

Inventor before: Li Keqin

CB03 Change of inventor or designer information