一种流媒体点播系统的数据调度方法

文档序号:7953451阅读:320来源:国知局
专利名称:一种流媒体点播系统的数据调度方法
技术领域
本发明属于计算机流媒体服务技术领域,涉及对等网络与流媒体点播技术相结合的交叉领域,具体涉及一种流媒体点播系统的数据调度方法。
背景技术
在传统的基于“服务器-客户机”模式下的流媒体点播服务系统中,用户点播的媒体视频集中存放在一个视频服务器上。当点播的用户逐渐增多时,视频服务器的负载急剧增大,服务器的可利用资源,特别是网络带宽成为系统的瓶颈。当视频服务器的服务能力达到上限时,就不能再为其他用户服务,系统的规模也相应受到了限制,因此传统模式的流媒体点播系统没有很好的可扩展性。
近年来,随着对等网络技术的兴起,将对等网络技术与流媒体技术相结合的方式解决了传统“服务器-客户机”模式的系统得可扩展性差,服务能力有限的不足。在基于对等网络的流媒体点播系统中,每个对等节点都会缓存视频数据,点播同一个视频的用户越多,网络上冗余的数据就越多。每个点播的用户可以充分利用对等网络中其他用户节点的资源,特别是网络带宽资源,从这些用户上获取数据。这样,视频的服务器的负载就会降低。整个系统的性能和可扩展性就也会提高。
目前,基于对等网络的点播系统有P2VOD(T.Do,K.A.Hua,and M.Tantaoui.“P2VoDproviding fault tolerant video-on-demandstreaming in peer-to-peer environment”,in Proc.of IEEE ICC’04,Paris,France,Jun.2004.)和P2Cast(Y.Guo,K.Suh,J.Kurose,andD.Towsley.“P2CastPeer-to-peer Patching Scheme for VoD Service”,in Proc.of the 12th World Wide Web Conference(WWW’03),Budapest,Hungary,May 2003.)等等。它们利用对等网络中的节点资源很好的解决了视频服务器的瓶颈问题,但它们也存在着共同的缺点,即系统采用的拓扑组织方式是树型结构,这种拓扑组织方式,首先在拓扑的维护上很复杂,其次每个用户只有一个服务提供者,并不能很好的利用对等网络中的资源。而基于无结构的拓扑结构有便于维护,每个节点都可以有多个服务提供者提供数据的优点,但在基于无结构对等网络的点播系统中也存在需要迫切解决的问题当请求的数据有多个伙伴节点可以提供数据时,如何进行调度的合理分配,并充分利用这些节点的资源;如何为了减小服务器的负载而使数据尽量避免调度到视频服务器。

发明内容
本发明的目的在于提供一种流媒体点播系统的数据调度方法,该方法解决了基于无结构对等网络环境下多个伙伴节点给单个节点同时提供数据的调度问题。
本发明提供的一种流媒体点播系统的数据调度方法,系统中任一节点A按照以下步骤进行数据调度(1)节点A获取数据缓冲区中需要调度的所有数据Si,i=1,2,…,r,所有数据Si构成调度数据集合S;r为调度数据集合S中数据的个数。
(2)节点A计算调度数据集合S中的所有数据Si的超时时间Tmi;(3)节点A计算所有伙伴节点Pj的调度带宽W的初始值W0j和当前服务能力Cj的初始值C0j,W0j=R/k,其中j=1,2,…,k,k为A的伙伴节点的个数;R为视频的流码率;Cj0=Wj*Te,Te为调度周期;(4)节点A判断系统当前时间与数据缓冲区上次被调度检查的时间的间隔是否大于调度周期Te,如果是,进入步骤(5);否则进入步骤(10);(5)节点A取出数据调度集S的一个需要调度的数据Si,i的初始值为1;如果A的所有伙伴节点Pj,j=1,2,…,k,其数据缓冲区中存在数据Si的伙伴节点的个数大于0,则执行步骤(7);否则,进入步骤(6);(6)节点A判断数据Si的超时时间Tmi是否大于系统当前时间,如果是,则进入步骤(8),否则进入步骤(9);
(7)节点A按照步骤(7.1)-(7.3)将数据Si自适应调度到某个伙伴节点,;(7.1)节点A调整A的伙伴节点Pj的调度带宽Wj,其中j=1,2,…,k;(7.2)节点A计算数据Si需要消耗的服务能力Gi,Gi=Li+H,其中,Li为数据Si的大小,H为数据传输时封装数据包包头的大小;(7.3)节点A向其伙伴节点中当前服务能力值最大的伙伴节点Pb请求数据Si,1≤b≤k,并修改伙伴节点Pb的当前服务能力Cb,令Cb=Cb-Gi;进入步骤(9);(8)节点A向视频服务器发送数据Si的请求,进入步骤(9)(9)令i=i+1,判断是否i>r,如果是进入步骤(10),否则进入步骤(5);(10)判断节点A是否播放结束,如果是,则结束,否则回到步骤(4)。
上述步骤(2)采用下式计算超时时间TmiTmi=Tui-T,其中,i-1,2,…,r (I)Tmi=Tui-T+ΔT,其中,i=1,2,…,r (II),其中,Tui为该数据在视频媒体文件中的位置,T为当前播放时间,ΔT为超时时间微调量。
上述步骤(7.1)采用下述过程调整A的伙伴节点Pj的调度带宽Wj(B1)节点A获取对伙伴节点Pj连续成功调度的次数Nj;(B2)判断成功调度的次数Nj是否大于Na,Na为成功调度次数的基准值,如果是,则进入步骤(B3),否则进入步骤(B4);(B3)令Wj=Wj+ΔW,Δw为带宽变化常量,进入步骤(7.2)。
(B4)令Wj=Wj-ΔW,进入步骤(7.2)。
本发明的调度方法,通过自适应调整伙伴节点的调度带宽,充分利用对等网络中节点的资源,减轻了视频服务服务器的负载。具体而言,本发明有如下特征(1)稳定性当有多个伙伴节点可以为节点A提供数据时,可以充分利用每个伙伴节点的资源进行获取数据,当某一个伙伴节点离开或是不能提供数据时,节点A还可以从其它伙伴节点获取数据,保证了视频播放的稳定性。
(2)自适应性为节点A提供数据的伙伴节点的服务能力不尽相同,本发明的调度方法可以自适应伙伴节点的服务能力的变化,不断地调整。
(3)负载均衡性节点A能够充分利用每个伙伴节点的资源,在调度数据的过程中,考虑到每个伙伴节点的服务能力,做均衡的数据分配,保证了伙伴节点之间的负载均衡。
(4)可扩展性节点A在有伙伴节点的情况下将数据调度到伙伴节点上,只有当数据在伙伴节点中不存在或数据调度超时才将数据调度到视频服务器上,减小了视频服务器的负载,从而提高了系统的可扩展性。


图1为本发明调度方法的总流程图;图2为本发明自适应调度的流程图。
具体实施例方式
下面结合附图和实例对本发明作进一步详细的说明。
如图1所示,流媒体点播系统中任一节点A按照以下步骤进行数据调度(1)节点A获取数据缓冲区中需要调度的所有数据Si,i=1,2,…,r,所有数据Si构成调度数据集合S;r为调度数据集合S中数据的个数。
(2)节点A计算调度数据集合S中的所有数据Si的超时时间Tmi;数据Si的超时时间Tmi与该数据在视频媒体文件中的位置Tui和当前播放时间T有关,采用式(I)或(II)计算Tmi=Tui-T,其中,i=1,2,…,r(I)Tmi=Tui-T+ΔT,其中,i=1,2,…,r(II)ΔT是超时时间微调量,由系统设置决定,通常取值为为-5-+5。
(3)节点A计算其所有伙伴节点Pj的调度带宽Wj的初始值W0j和当前服务能力Cj的初始值C0j,其中j=1,2,…,k,k为A的伙伴节点的个数“伙伴”节点是指“邻居”节点中具有节点A所需要数据的节点,即节点A的当前播放时间T满足T1<T<T2,其中T1为“邻居”节点缓存数据的起始位置,T2为其终止位置。“邻居”节点是指其播放时间与节点A的播放时间之差小于基准播放时间差的节点。系统依据节点的缓存容量设定一个基准播放时间差,通常的范围为100秒-600秒。
伙伴节点Pj的调度带宽Wj与其机器的性能和实际的可用上行带宽有关,其初始值W0j由视频的流码率R和伙伴节点的个数k决定,计算如下W0j=R/k伙伴节点Pj的当前服务能力Cj与可用上行带宽有关,其初始值Cj0由调度带宽Wj和调度周期Te决定,计算如下Cj0=Wj*Te调度周期Te是指系统连续两次检查数据缓冲区的时间间隔,与节点的硬件配置和网络带宽有关,通常取值为10-20秒。
(4)节点A判断系统当前时间与数据缓冲区上次被调度检查的时间的间隔是否大于调度周期Te,如果是,进入步骤(5);否则进入步骤(10)。
(5)节点A取出数据调度集S的一个需要调度的数据Si,i的初始值为1。如果A的所有伙伴节点Pj,j=1,2,…,k其数据缓冲区中存在数据Si的伙伴节点的个数大于0,则执行步骤(7);否则,进入步骤(6);(6)节点A判断数据Si的超时时间Tmi是否大于系统当前时间,如果是,则进入步骤(8),否则进入步骤(9);(7)节点A将数据Si自适应调度到某个伙伴节点,具体步骤如下(7.1)节点A调伙伴节点Pj的调度带宽Wj,其中j=1,2,…,k,具体步骤如下(B1)节点A获取对伙伴节点Pj连续成功调度的次数Nj在前一个调度周期内节点A对伙伴节点Pj发起的所有数据请求,在下一周期到来前这些数据全部都能从伙伴节点Pj获取回来,本发明称为成功调度。
(B2)判断成功调度的次数Nj是否大于Na,Na为成功调度次数的基准值,由系统设置有关,通常取值为5-7。如果是,则进入步骤(B3),否则进入步骤(B4)。
(B3)令Wj=Wj+ΔW,ΔW为带宽变化常量,由系统设置有关,通常取值为32-64,进入步骤(7.2)。
(B4)令Wj=Wj-ΔW,进入步骤(7.2)(7.2)节点A计算数据Si需要消耗的服务能力Gi,计算如下Gi=Li+H;其中,Li为数据Si的大小,H为数据传输时封装数据包包头的大小,由程序传输控制协议决定,通常取值为20-30字节。
(7.3)节点A向其伙伴节点中当前服务能力值最大的伙伴节点Pb,请求数据Si,1≤b≤k,并修改该伙伴节点Pb的当前服务能力Cb,Cb=Cb-Gi,进入步骤(9);(8)节点A向视频服务器发送数据Si的请求,进入步骤(9)(9)i=i+1,判断是否i>r,如果是进入步骤(10),否则进入步骤(5);(10)判断节点A是否播放结束,如果是,则结束,否则回到步骤(4)。实例利用本发明所阐述的对等网络中数据调度方法,实验室提供了1个视频服务器,以及10台普通PC机节点。表1为视频服务器和PC机的硬件配置

表1PC 1-10分别称为节点1、节点2……节点10。这10个节点观看同一个视频,视频码率是500(单位kb/s)。调度周期的值为10秒。某时刻,我们选取节点1观察数据调度情况,此时节点1有5个伙伴节点,这5个伙伴节点分别是节点2,节点4,节点5,节点7,节点10。每个伙伴节点的初始调度带宽=视频码率/伙伴节点个数=500/5=100(单位kb/s)。计算调度的数据需要消耗的服务能力时,传输控制包的大小为25个字节。在调整调度带宽时使用的ΔW取值为32,成功调度次数的基准值Na取值为5。通过经过几个调度周期,当前节点2,4,5,7,10的调度带宽分别是132,132,196,228,164(单位kb/s)。节点1计算这几个伙伴节点当前的服务能力伙伴节点2服务能力=132kb/s*10s/8=165KB伙伴节点4服务能力=132kb/s*10s/8=165KB伙伴节点5服务能力=196kb/s*10s/8=245KB伙伴节点7服务能力=228kb/s*10s/8=285KB伙伴节点10服务能力=164kb/s*10s/8=205KB表2所示内容为节点1当前的调度数据集S,数据的大小以及在伙伴节点的存在情况。最后一列为通过本发明的调度方法得到的数据的分配情况。

表2经过多次测试,对等网络中的各节点都采用本发明的数据调度方法,每个节点都能够充分利用伙伴节点的资源,并做到负载均衡的调度,同时减小了视频服务器的压力,提高了整个系统的性能。
权利要求
1.一种流媒体点播系统的数据调度方法,系统中任一节点A按照以下步骤进行数据调度(1)节点A获取数据缓冲区中需要调度的所有数据Si,i=1,2,…,r,所有数据Si构成调度数据集合S;r为调度数据集合S中数据的个数。(2)节点A计算调度数据集合S中的所有数据Si的超时时间Tmi;(3)节点A计算所有伙伴节点Pj的调度带宽W的初始值W0j和当前服务能力Cj的初始值C0j,W0j=R/k,其中j=1,2,…,k,k为A的伙伴节点的个数;R为视频的流码率;Cj0=Wj*Te,Te为调度周期;(4)节点A判断系统当前时间与数据缓冲区上次被调度检查的时间的间隔是否大于调度周期Te,如果是,进入步骤(5);否则进入步骤(10);(5)节点A取出数据调度集S的一个需要调度的数据Si,i的初始值为1;如果A的所有伙伴节点Pj,j=1,2,…,k,其数据缓冲区中存在数据Si的伙伴节点的个数大于0,则执行步骤(7);否则,进入步骤(6);(6)节点A判断数据Si的超时时间Tmi是否大于系统当前时间,如果是,则进入步骤(8),否则进入步骤(9);(7)节点A按照步骤(7.1)-(7.3)将数据Si自适应调度到某个伙伴节点,;(7.1)节点A调整A的伙伴节点Pj的调度带宽Wj,其中j=1,2,…,k;(7.2)节点A计算数据Si需要消耗的服务能力Gi,Gi=Li+H,其中,Li为数据Si的大小,H为数据传输时封装数据包包头的大小;(7.3)节点A向其伙伴节点中当前服务能力值最大的伙伴节点Pb请求数据Si,1≤b≤k,并修改伙伴节点Pb的当前服务能力Cb,令Cb=Cb-Gi;进入步骤(9);(8)节点A向视频服务器发送数据Si的请求,进入步骤(9)(9)令i=i+1,判断是否i>r,如果是进入步骤(10),否则进入步骤(5);(10)判断节点A是否播放结束,如果是,则结束,否则回到步骤(4)。
2.根据权利要求1所述的方法,其特征在于步骤(2)采用式计算超时时间TmiTmi=Tui-T,其中,i=1,2,…,r(I)Tmi=Tui-T+ΔT,其中,i=1,2,…,r(II),其中,Tui为该数据在视频媒体文件中的位置,T为当前播放时间,ΔT为超时时间微调量。
3.根据权利要求2所述的方法,其特征在于步骤(7.1)采用下述过程调整A的伙伴节点Pj的调度带宽Wj(B1)节点A获取对伙伴节点Pj连续成功调度的次数Nj;(B2)判断成功调度的次数Nj是否大于Na,Na为成功调度次数的基准值,如果是,则进入步骤(B3),否则进入步骤(B4);(B3)令Wj=Wj+ΔW,Δw为带宽变化常量,进入步骤(7.2)。(B4)令Wj=Wj-ΔW,进入步骤(7.2)。
全文摘要
本发明公开了一种流媒体点播系统中的数据调度方法,各节点执行以下步骤①获取数据缓冲区中需要调度的所有数据;②计算调度数据集合中的所有数据的超时时间;③计算所有伙伴节点的调度带宽的初始值和当前服务能力的初始值;④判断系统当前时间与数据缓冲区上次被调度检查的时间的间隔是否大于调度周期;⑤取出数据调度集中一个需要调度的数据;⑥判断数据的超时时间是否大于系统当前时间;⑦将数据自适应调度到某个伙伴节点;⑧向视频服务器发送数据请求;⑨判断数据缓冲区中是否还有需要调度的数据;⑩判断播放是否结束。本发明保证了系统的稳定性,自适应性,负载均衡性和可扩展性,使得节点充分利用对等网络中节点的资源,减轻了视频服务服务器的负载。
文档编号H04N7/173GK1901504SQ20061001952
公开日2007年1月24日 申请日期2006年6月30日 优先权日2006年6月30日
发明者金海 , 廖小飞, 王福臣, 程斌, 殷江培, 赵斗斗, 王浩, 周怡 申请人:华中科技大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1