一种用于对等网络视频点播系统的磁盘缓存方法

文档序号:7953452阅读:247来源:国知局
专利名称:一种用于对等网络视频点播系统的磁盘缓存方法
技术领域
本发明属于流媒体点播技术领域,具体涉及一种用于对等网络(P2P)视频点播系统的磁盘缓存方法。
背景技术
流媒体技术的应用一直是在互联网上传播多媒体信息的主要方式,随着宽带网的日益普及,视频点播服务的受关注程度也正日渐提高。
传统的视频点播机制将大量的待点播视频流数据存放在一组集中管理的视频服务器上,视频服务器负责响应每个客户端的点播请求。在这种客户服务器系统模式下,视频服务器承担了全部的工作。当点播用户不断增加时,视频服务器最终将达到其能力极限。为了增强系统能力,常用的办法是增加更多的视频服务器。在增强系统服务器端处理能力的同时,网络带宽也需要进行相应的提高。基于这种方案的系统其实现代价较高,并且通过视频服务器数量和网络带宽的有限增加也难以满足无限增加的点播需求。因此找到一项适合于点播系统的技术迫在眉睫。
对等网络是近年来兴起的一项利用终端桌面PC计算能力以及终端带宽在用户之间进行文件共享的新技术,它具有使用灵活性、可扩展性、健壮性、负载均衡等诸多优点。因此为流媒体点播、直播的普及提供了一种良好的技术基础。基于对等网络的流媒体点播方法使节点之间大都能分享已有的数据不用集中到服务器端获取数据,从而减轻了流媒体服务器和网络的负担降低了成本。
近年来,随着P2P技术的发展,也出现了一些基于P2P的流媒体系统。在基于P2P的流媒体系统中,所有节点在功能上是对等的,既可以是客户机又可以是服务器,每个节点缓存一定量媒体数据,供本系统中的其它节点使用。这些系统大部分是基于树形的网络结构,例如P2VOD(T.Do,K.A.Hua,and M.Tantaoui.“P2VoDproviding fault tolerantvideo-on-demand streaming in peer-to-peer environment”,in Proc.of IEEE ICC’04,Paris,France,Jun.2004.)和P2Cast(Y.Guo,K.Suh,J.Kurose,and D.Towsley.“P2CastPeer-to-peer Patching Schemefor VoD Service”,in Proc.of the 12th World Wide Web Conference(WWW’03),Budapest,Hungary,May 2003.)。这些系统中的节点的媒体数据都是在内存中进行缓存。缓存在内存中的数据可以保证用户播放的连续性,同时也可以快速响应其他用户节点的数据请求。但是由于用户观看行为的分散性,存在大量的观看人数较少的“冷门”节目。对于观看这些节目的用户来说,因为内存大小有限,不能够缓存更多的数据,所以很难从其他观看同一节目的用户那里获取媒体数据,从而使得更多的请求转到了流媒体服务器,增加了服务器的负担,限制了这个系统的扩展性。

发明内容
本发明的目的在于克服对等网络流媒体点播缓存数据量的不足,提供一种用于对等网络视频点播系统的磁盘缓存方法,该方法解决了内存大小受限引发的问题,增强点播系统的整体服务能力,使之能够同时为更多的用户提供服务。
本发明提供的一种用于对等网络视频点播系统的磁盘缓存方法,其步骤包括(1)用户初始化磁盘缓存空间,在本机磁盘上指定缓存空间的大小以及路径;(2)格式化磁盘缓存空间,将整个磁盘缓存空间平均划分成若干分片,每一个分片为一个磁盘分片;(3)定期检查是否有数据需要被缓存,如果有,则进入步骤(4);否则转到步骤(11);(4)将需要缓存的媒体数据按照相等时间长度进行分片,每一片数据称之为一个标准数据块;(5)根据将要缓存的一个标准数据块的大小,查找磁盘缓存空间中是否存在一块或多块连续且状态为空闲的磁盘分片,并且这些分片的空间长度总和大于或等于一个标准数据块的长度,如果查找成功,则将该磁盘分片的状态改为已用,进入步骤(6);否则转入步骤(7);(6)将要缓存的这个标准数据块、所对应的磁盘分片的个数和分片的起始序号插入到写磁盘缓存队列末尾,进入步骤(8);(7)根据公式λ=α×N+β×T,计算现存磁盘上的所有标准数据块的被请求次数N与上次被请求时间T的加权平均值,其中α,β为加权因子,α+β=1,0<α<1,0<β<1,将对应的λ值最小的标准数据块从磁盘上删除掉,并且将被删除掉的标准数据块对应的磁盘分片状态重新置为空闲;返回步骤(5);(8)定期检查写磁盘缓存队列是否已满,如果已满,进入步骤(9);否则转到步骤(10);(9)将写缓存队列中的数据分别写到所对应的磁盘分片上;(10)检查是否所有的标准数据块都存储完毕,如果是,则进入步骤(11),否则转到步骤(5);(11)用户是否退出系统,如果是,则结束;否则,转到步骤(3)本发明利用节点闲置的磁盘空间缓存已经播放的媒体数据,有效地增加网络上每个节点的缓存内容,使得媒体资源能够更加广泛的分布到网络上,增加系统的资源数量。由于网络上观看同一节目的节点都缓存有较多的媒体数据,网络上的用户节点在请求数据时能够尽量从其他节点获取到所需的数据,减少了向流媒体服务器的请求次数,从而极大的减轻流媒体服务器的压力。这样,就能够有效的解决传统点播系统中由于流媒体服务器压力过大达到其服务能力上限,不能支持更多用户观看的问题,提升点播系统能的扩展性,以便支持更多的用户使用。


图1为本发明方法的流程示意图;图2为磁盘分片示意图;图3为写缓存队列的示意图。
具体实施例方式
下面结合附图和实例对本发明方法作进一步详细的说明。
如图1所示,本发明方法包括以下步骤(1)用户初始化磁盘缓存空间,在本机磁盘上指定缓存空间的大小以及路径。
缓存开始前,用户在本机磁盘上指定系统可以使用的磁盘空间的路径以及大小,路径和大小由用户本机磁盘当前使用状况决定。磁盘空间大小取值通常大于100MB。媒体数据将缓存到用户指定路径的磁盘上,并且缓存数据的总量不能超过用户指定的缓存空间的大小。
(2)格式化磁盘缓存空间,将整个磁盘缓存空间平均划分成若干分片,每一个分片叫做一个磁盘分片;磁盘分片通常由分片状态来标识,状态为空闲表示未被使用,状态为已用表示正在被使用。然后将这些分片索引起来,以一个一个的分片为单位对磁盘缓存空间进行管理。例如图2所示,假设用户设置的缓存空间大小为200M,以100K为一个分片的大小,则该缓存空间可以被划分为200×1024÷100=2048块分片。系统对这2048块分片建立索引以进行管理。
(3)定期检查是否有数据需要被缓存,如果有,则进入步骤(4);否则转到步骤(11);程序每间隔一段固定的时间就检查是否有数据要被缓存,检查的周期由硬件配置情况决定,一般取值为1-5秒。
(4)对需要缓存的媒体数据从时间入手,将其按照相等时间长度进行分片,每一片的数据定义为一个标准数据块,其中每个标准数据块的时间长度由电脑硬件的处理能力决定,一般取值为1-10秒。
(5)根据将要缓存的一个标准数据块的大小,查找磁盘缓存空间中是否存在一块或多块连续且状态为空闲的磁盘分片,并且这些分片的空间长度总和大于或等于一个标准数据块的长度,如果查找成功,则将该磁盘分片的状态改为已用,进入步骤(6);否则转入步骤(7)。
(6)将要缓存的这个标准数据块、所对应的磁盘分片的个数和分片的起始序号插入到写磁盘缓存队列末尾,进入步骤(8);如图3所示,写磁盘缓存队列是内存中的一个结构链表。链表中的每个结构包含的内容是标准数据块、标准数据块所对应的磁盘分片的个数和分片的起始序号。
(7)删除磁盘上符合下述标准的、已缓存的标准数据块,返回步骤(5),具体删除标准如下;当要删除磁盘上的数据时,根据公式λ=α×N+β×T计算现存磁盘上的所有标准数据块的被请求次数N与上次被请求的时间T的加权平均值,其中α,β为加权因子,分别由N与T的权重决定,并且α+β=1,0<α<1,0<β<1计算所得λ值表示一个标准数据块在网络上的稀缺程度。将对应的λ值最小的标准数据块从磁盘上删除掉,并且将被删除掉的标准数据块对应的磁盘分片状态重新置为空闲。
(8)检查写磁盘缓存队列是否已满,如果已满,进入步骤(9);否则转到步骤(10);程序定期检查内存中的写磁盘缓存队列中的成员个数是否已经达到缓存队列的上限值。该上限值是由内存大小以及磁盘读写速率决定的,一般取值60-100。如果已达上限,则转入步骤(9),否则,转到步骤(10),进行下一个标准数据块的缓存。
(9)将写缓存队列中的数据分别写到所对应的磁盘分片上;写缓存队列已满,依次从队列头部移出队列成员,根据队列成员里记录的信息,将标准数据块写入到它所对应的磁盘分片上,直到写缓存队列为空为止;(10)检查是否所有的标准数据块都存储完毕,如果是,则进入步骤(11),否则转到步骤(5);(11)用户是否退出系统,如果是,则结束;否则,转到步骤(3)。
实例利用本发明所阐述的磁盘缓存方法,实验室提供了1个视频服务器,1个索引服务器以及10台普通PC机,PC机的硬件配置如下

PC1-10分别称为节点1、节点2……节点10。节点3在PC3上指定c\a.temp为其磁盘缓存空间,其大小指定为200M。程序将这200M空间平均划分成2048片,则每一片的大小为200×1024÷2048=100K。程序间隔2秒后检查到有数据需要被缓存,将该待缓存数据以一秒为基本单位进行分片,有1个标准数据块,此时节点3的磁盘缓存空间使用情况如图4所示,1-2042块磁盘分片均已被用来缓存媒体数据,该标准数据块长度为143KB,则查找磁盘缓存空间,发现有两个连续的磁盘分片2042与2043,他们空间长度总和为200K,大于该标准数据块的长度143K,所以将2042与2043号磁盘分片状态修改成已使用,并且将该标准数据块、对应的磁盘分片的个数2和起始序号2042作为一个队列成员插入到写磁盘缓存队列末尾。之后检查写缓存队列里已存在的成员个数,如果达到上限值60,则依次从队列头部移出一个个队列成员,根据队列成员里记录的信息,将时间槽写入到它所对应的磁盘分片上,直到写缓存队列为空为止,然后判断是否所有的标准数据块都处理完毕,进行下一次数据缓存。
权利要求
1.一种用于对等网络视频点播系统的磁盘缓存方法,其步骤包括(1)用户初始化磁盘缓存空间,在本机磁盘上指定缓存空间的大小以及路径;(2)格式化磁盘缓存空间,将整个磁盘缓存空间平均划分成若干分片,每一个分片为一个磁盘分片;(3)定期检查是否有数据需要被缓存,如果有,则进入步骤(4);否则转到步骤(11);(4)将需要缓存的媒体数据按照相等时间长度进行分片,每一片数据称之为一个标准数据块;(5)根据将要缓存的一个标准数据块的大小,查找磁盘缓存空间中是否存在一块或多块连续且状态为空闲的磁盘分片,并且这些分片的空间长度总和大于或等于一个标准数据块的长度,如果查找成功,则将该磁盘分片的状态改为已用,进入步骤(6);否则转入步骤(7);(6)将要缓存的这个标准数据块、所对应的磁盘分片的个数和分片的起始序号插入到写磁盘缓存队列末尾,进入步骤(8);(7)根据公式λ=α×N+β×T,计算现存磁盘上的所有标准数据块的被请求次数N与上次被请求时间T的加权平均值,其中α,β为加权因子,α+β=1,0<α<1,0<β<1,将对应的λ值最小的标准数据块从磁盘上删除掉,并且将被删除掉的标准数据块对应的磁盘分片状态重新置为空闲;返回步骤(5);(8)定期检查写磁盘缓存队列是否已满,如果已满,进入步骤(9);否则转到步骤(10);(9)将写缓存队列中的数据分别写到所对应的磁盘分片上;(10)检查是否所有的标准数据块都存储完毕,如果是,则进入步骤(11),否则转到步骤(5);(11)用户是否退出系统,如果是,则结束;否则,转到步骤(3)。
全文摘要
本发明公开了一种用于对等网络(P2P)视频点播系统的磁盘缓存方法,各节点执行以下步骤(1)初始化磁盘空间;(2)格式化磁盘空间;(3)检查是否有数据需要缓存;(4)将待缓存舒服分割成标准数据块;(5)选择合适的磁盘分片;(6)将待缓存数据插入写磁盘缓存队列;(7)删除磁盘上已缓存数据;(8)检查写磁盘缓存队列是否已满;(9)将写缓存队列中的数据分别写到所对应的磁盘分片上;(10)检查是否所有的标准数据块都存储完毕;(11)判断用户是否退出系统;本发明增加了网络上的资源数量,极大减轻了流媒体服务器的压力,增强了点播系统的整体服务能力,使之能够同时为更多的用户提供服务。
文档编号H04N21/2312GK1874490SQ20061001952
公开日2006年12月6日 申请日期2006年6月30日 优先权日2006年6月30日
发明者金海 , 廖小飞, 殷江培, 程斌, 王浩, 周怡, 王福臣, 赵斗斗 申请人:华中科技大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1