专利名称:一种iptv 中基于大雨伞缓存算法的流媒体协作缓存管理方法及系统的制作方法
技术领域:
本发明涉及一种IPTV中基于大雨伞缓存算法的流媒体协作缓存管理方法及系统,属于多媒体技术领域。
背景技术:
流媒体是指采用流式的方式传输和播放多媒体文件的媒体格式,可使视多媒体数据通过网络以实时的、无需下载等待的方式进行播放。流媒体应用已经成为当今^ternet 的一项主流应用,在服务过程中,对系统存储系统10、计算能力、网络输出IO能力等方面都有很高要求,同时由于节目热度原因,对于文件分布方式以及系统存储容量均有高要求。在网络拥塞情况下,极易由于网络延时和抖动而影响对用户的服务感受。因此,对于流媒体服务来说,有限的资源和流媒体应用的需求矛盾日益突出。IPTV又叫IP电视,是利用宽带IP网络的基础设施,以家用电视机或电脑作为主要终端电器,基于IP协议来传送数字电视信号,提供包括数字电视节目在内的多种数字媒体服务。为了缓解有限的资源和流媒体应用需求的矛盾,一种方法是采用缓存的方式。流媒体中使用缓存,主要是考虑到在缓存空间足够时,可以通过将前面已经读取到缓存空间的数据,尽量保持下来,以便在将来有新用户需要读取这段数据时,不需要再次从存储系统中读取,从而降低存储系统的IO压力,同时降低对应用程序的响应时间。协作缓存就是采用服务器集群技术,既多个服务器通过局域网连接,协同对客户机的请求进行处理,特别是通过相互间对不同节目的分工服务和不同用户组的协作服务,将每台服务系统的能力尽量发挥到较高水平。现有的协作缓存主要是通过重定向来实现的,采用的缓存管理算法有全文缓存、 分段缓存和间隔缓存等。以缓存协作的方式实现视频点播方法和系统的现有技术主要包括以下两种方法第一种方法采用重定向的方法在各个服务器间的协作,单个服务器的缓存算法是间隔缓存。但该方法的本地服务器的请求接入方式未从整个集群角度考虑,造成系统的缓存命中率低;单纯的应用重定向技术,没有对集群进行统一的管理,不能实现负载均衡,并且,频繁的重定向处理过程可能会造成服务器间网络瓶颈;间隔缓存对VCR的支持较差,易造成系统的动荡。第二种方法的用户通过网络向系统请求数据,由服务器集群的接入控制系统决定是否要接入该用户请求;如果接入该用户请求,接入控制系统分配为该用户服务的服务器, 并由缓存系统查询本地缓存来提供服务;如果本地未缓存有请求数据,则通过本地服务器群中其他服务器上的空闲缓存的协作缓存实现视频点播;如果在缓存中不存在用户请求的数据时,由缓存向后端文件系统请求数据;如后端文件系统也不存在所请求数据,由远端服务器提供数据;最后远端服务器通过协作缓存向用户提供流媒体数据服务。但该方法的接入控制系统分配任务与不是以服务器中是否存在用户请求数据的缓存为依据,而是先将请求分配给某服务器再查询本地和异地是否缓存这部分数据,这样,必然造成服务过程中的不必要的查询,降低系统性能;缓存间的协作本质上仍是重定向;未采用适合协作缓存的缓存算法,协作的效率低。
发明内容
本发明提供了一种IPTV中基于大雨伞缓存算法的流媒体协作缓存管理方法及系统,用于解决现有的协作缓存技术中存在的系统性能和协作效率较低、以及当有用户离开或进行VCR操作会造成资源消耗和系统动荡的问题。本发明的目的是通过以下技术方案实现的一种IPTV中基于大雨伞缓存算法的流媒体协作缓存管理方法,包括接入控制节点统计生成服务器集群的服务状态和负载状况信息,建立负载状况表;当用户请求达到时,接入控制节点根据已有信息确定用户请求数据的缓存是否命中以及在哪个缓存节点中命中;如果命中,则将用户请求分配给命中的缓存节点,并且将后续请求转发到该缓存节点;若未命中,则接入控制节点查找所述负载状况表,并将请求调度到当前负载最轻的一台缓存节点,该缓存节点从服务器的磁盘中获取相应的数据进行缓存并向用户提供服务;接入控制节点将用户请求分配给预定服务器后,该服务器对用户请求进行服务, 并构建共用缓存,采用大雨伞算法管理缓存;若在服务过程中,用户进行VCR操作或离开后使得共用缓存发生改变,则由接入控制节点进行全局调度,或该服务器向其它服务器上的缓存板查询,若能与其他缓存节点上的已有缓存形成共用缓存,则动态迁移服务到该缓存节点。一种IPTV中基于大雨伞缓存算法的流媒体协作缓存管理系统,包括负载状况表建立单元,用于统计生成服务器集群的服务状态和负载状况信息,建立负载状况表;命中确定单元,用于当用户请求达到时,根据已有信息确定用户请求数据的缓存是否命中以及在哪个缓存节点中命中;缓存节点分配单元,用于如果命中,则将用户请求分配给命中的缓存节点,并且将后续请求转发到该缓存节点;若未命中,则查找所述负载状况表,并将请求调度到当前负载最轻的一台缓存节点,该缓存节点从服务器的磁盘中获取相应的数据进行缓存并向用户提供服务;管理缓存单元,用于将用户请求分配给预定服务器后,该服务器对用户请求进行服务,并构建共用缓存,采用大雨伞算法管理缓存;动态迁移单元,用于若在服务过程中,用户进行VCR操作或离开后使得共用缓存发生改变,则进行全局调度,或该服务器向其它服务器上的缓存板查询,若能与其他缓存节点上的已有缓存形成共用缓存,则动态迁移服务到该缓存节点。本发明的有益效果本发明方案中通过协作缓存与大雨伞缓存算法的结合,使用户聚合,可以显著降低IO负载,增大系统的最大并发能力;根据集群中各服务器的缓存信息和负载信息来调度任务以及在服务过程中采用动态迁移用户的策略,可以提高缓存效率,增强系统的服务能力;本发明中的接入控制策略可以实现各个服务器间的负载均衡。
图1为本发明的具体实施方式
提供的大雨伞法原理示意图;图2为本发明的具体实施方式
提供的对大雨伞算法的相同序列采用间隔缓存的示意图;图3为本发明的具体实施方式
提供的大雨伞算法中因用户集中度的变化而进行的调整示意图;图4为本发明的具体实施方式
提供的IPTV中基于大雨伞缓存算法的流媒体协作缓存管理方法的集群结构示意图;图5为本发明的具体实施方式
提供的接入控制节点结构示意图;图6为本发明的具体实施方式
提供的IPTV中基于大雨伞缓存算法的流媒体协作缓存管理方法的流程示意图;图7为本发明的具体实施方式
提供的迁移服务的流程示意图;图8为本发明的具体实施方式
提供的IPTV中基于大雨伞缓存算法的流媒体协作缓存管理系统的结构示意图。
具体实施例方式本具体实施方式
在单服务器中采用大雨伞算法,下面对其原理及功能进行介绍。如附图1所示,在考虑很多人观看同一部影片时,按照其到达时间的先后顺序,这里写作A、B、C、D、E和F,若不考虑缓存共用,则一般情况下需要给上述6个用户,每人分配一块缓存区域,用于存储读取(预读取)的数据;而考虑到每个用户(如A用户)所分配的数据块,其本身是可以服务一段时间的,比如10秒钟,若其他用户(如B或E)访问该影片的数据偏移地址在10秒钟之内,则可以让A用户的数据块同时给B和E用户服务;超过该时段的用户(如F),则另行开辟一段新的缓存用户。这个算法就如下雨天,如果A用户打伞要到一个地方去,则A可以用这把伞协助其他用户与其一起离开。与大雨伞算法最接近的缓存算法是间隔缓存,若用间隔缓存方式来处理这个请求,则上述相同的访问序列,会有3个配对,如附图2所示。则当其中某个用户进行VCR操作时,间隔缓存需要及时调整缓存策略,这将给系统带来动荡,同时其需要缓存的数据量也比较大,且管理更加复杂。在A用户的数据块之内,若其他用户跳转或快进、快退到该该数据块可服务范围, 则进行其他操作以确保其可以获得后继数据,A数据块支撑的其他用户则无需做改变。当A 用户自身离开时,则可以让B用户取代A的位置,同时计算其他用户与其距离,如F小于该时间段,则可以让B到F用户共用一把大伞,如附图3所示。下表中的符号定义说明了相应符号表示的单位T请求到达时刻,单位sP预定大小的缓存区的可服务时间,单位sW流的码率,单位Mb/s
Rij流媒体文件i的第j个请求Tij流媒体文件i的第j个请求Rij的到达时刻Iij流媒体文件i的第j个时间间隔,单位sARAI平均时间间隔,单位sBij流媒体文件i分配的第j块缓存,单位MBSij流媒体文件i分配的第j块缓存Bij的开始时间Eij流媒体文件i分配的第j块缓存Bij的结束时间Li流媒体文件i的持续时间,指该节目的片长,单位sDij缓存Bij与Bij-I开始时间的差值,单位s为详细描述该算法,则先引入两个概念时间间隔和缓存状态。时间间隔是连续两个请求到达时间的差值。符号Iij作为流媒体文件i的第j个时间间隔,请求的到达时刻为T,若流媒体文件i请求的总数量η = 1,那么Iil将会被定义为⑴,否则通过式(1)计算Iik = Tij+1-Tij, 1 < j < nT-Tin,j = η (1)其中,Tij表示流媒体文件i的第j个请求Rij的到达时间,等待时间Iin表示了最后一个请求与T的关系,而平均时间间隔ARAI可以由式(2)获得ARAI = k = ln-llikn-l, η > 1 ⑴,η = 1 O)缓存状态主要分为构建状态、运行状态和空闲状态三种。构建状态是缓存被分配之后,缓存大小需要调整的状态;当缓存大小被固定之后,缓存以滑动窗口形式对外服务的状态称为运行状态;而滑动窗口停止向前滑动时,缓存就进入了空闲状态。假设在T时刻有流媒体文件i请求到达,大雨伞算法首先考虑所有处于构建状态的缓存,如果其中有包含文件i前缀的,这个请求将直接由i的所有现有的动态缓存来服务,然后更新该缓存的平均时间间隔;否则,(a)如果有足够的内存,将分配一个按预定可服务时间P的大小设置新的动态缓存区,这个请求将由这个新的动态缓存和所有已存的文件i的动态缓存来服务;(b)如果没有足够的内存,大雨伞算法将运用缓存替代算法来重新分配一个缓存区或者直接由服务器提供服务。接着根据公式C3)来更新流媒体文件i现有缓存的结束时间。Eji = Sij+Li, j = ITilatest+Dij, j > 1(3)其中,Eij表示为流媒体文件i分配的第j块缓存Bij的结束时间,即缓存Bij进入空闲状态的时间,Sij则表示Bij的开始时间,即缓存Bij服务的最后一个请求的到达时间,Li是流媒体文件i的持续时间,Tilatest是为流媒体文件i最新分配的缓存的开始时间,Di j为缓存Bij与Bij-I (第j-Ι缓存块和第j块缓存是缓存了文件i的不同内容的相邻的缓存块,内容上不一定相连)开始时间的差值,由式(4)可以得到Dij = Li, j = ISij-Sij-l, j > 1 (4)大雨伞算法根据缓存的状态对所有的缓存进行管理。如果缓存处于构建状态, 则分三种情况处理1)若ARAIij =⑴,释放缓存,由服务器直接提供服务;幻若Iin> ARAIi j,释放多余缓存,缓存进入运行状态;;3)若Iin < ARAIi j,缓存保持构建状态,将P延长到P’ = P-Iin+ARAIij,更新平均时间间隔ARAIij,等待下一次的管理;如果缓存处于运行状态,滑动窗口继续向前移动;如果缓存处于空闲状态,大雨伞算法转入缓存回收阶段, 分两种情况处理1)若缓存是文件的唯一缓存,等待所有请求结束,然后释放;2)否则,缓存进入空闲状态,保持内容到结束时间释放。大雨伞缓存的替换算法采用的是基于流行度的缓存替换策略。当一个请求到来后,若发现没有足够的缓存空间,这时将各个缓存块,按照过去一段时间的流行度来排序, 最少点播次数的那个缓存块将被替换出去,释放的空间用来服务新的请求。本具体实施方式
提供的IPTV中基于大雨伞缓存算法的流媒体协作缓存管理方法的集群结构图如图4所示,该图的结构中每个流化服务器都带有一个缓存板,各个缓存板以协作的方式对用户的请求进行服务。接入控制节点的结构如附图5所示,它根据各个服务器的缓存和负载情况来进行任务调度,分配用户的请求。这种结构下,接入控制节点通过对集群内部的服务器查询或者统计,形成一个服务表,这各表中包含每个服务节点的服务状态(即每个服务节点的负载状况表、当前服务的节目ID)和缓存状况(每个ID当前缓存长度和位置、缓存空间利用率),以便对用户的请求进行调度。由于接入控制节点的负载状况表中包含节点的缓存对象利用率和空间利用率等信息,接入控制节点可以依据其进行全局置换调度。集群中每个缓存节点都是相对独立的流媒体缓存服务器。它们通过控制节点接收客户端请求并返回响应,同时,经由交换机直接将流媒体数据发送给客户端。流媒体缓存节点由控制节点根据媒体对象定位表来对整个系统缓存的流媒体对象进行统一管理。如图6所示,本具体实施方式
提供的IPTV中基于大雨伞缓存算法的流媒体协作缓存管理方法的步骤如下步骤61,接入控制节点统计生成服务器集群的服务状态和负载状况信息,建立负载状况表;步骤62,当用户请求达到时,接入控制节点根据已有信息确定用户请求数据的缓存是否命中以及在哪个缓存节点中命中;步骤63,如果命中,则将用户请求分配给命中的缓存节点,并且将后续请求转发到该缓存节点;若未命中,则接入控制节点查找所述负载状况表,并将请求调度到当前负载最轻的一台缓存节点,该缓存节点从服务器的磁盘中获取相应的数据进行缓存并向用户提供服务;步骤64,接入控制节点将用户请求分配给预定服务器后,该服务器对用户请求进行服务,并构建共用缓存,采用大雨伞算法管理缓存;步骤65,若在服务过程中,用户进行VCR操作或离开后使得共用缓存发生改变,则由接入控制节点进行全局调度,或该服务器向其它服务器上的缓存板查询,若能与其他缓存节点上的已有缓存形成共用缓存,则动态迁移服务到该缓存节点。上述步骤61中接入控制节点中集群的服务状态等统计信息的形成方式有两种统计所有以前接入的请求的信息(接入时间、影片ID、持续时间等)和各个缓存节点的状态信息都在接入控制节点内保存,请求到达后,根据所保存的信息来分配任务。这种方式下接入控制节点的负载较重。
查询当有请求到来时,接入控制节点向各个缓存节点实时查询是否缓存有请求的数据,根据各个缓存节点所返回的信息来进行任务调度。上述步骤64中,当服务器接收到接入控制节点分配的流媒体文件i的请求时,大雨伞缓存算法的管理如下首先考虑所有处于构建状态的缓存,如果其中有包含文件i前缀的,这个请求将直接由文件i的所有现有的缓存来服务,然后更新该缓存的平均时间间隔;否则,分如下两种情况讨论(a)如果有足够的内存,将分配一个按预定可服务时间P的大小设置新的缓存区, 这个请求将由这个新的缓存和所有已存的文件i的缓存来服务;(b)如果没有足够的内存,大雨伞算法将运用缓存替代算法来重新分配一个缓存区或者直接由服务器提供服务。上述步骤65中的迁移服务的过程(附图7所示)如下在服务器A对某用户服务过程中,该用户进行跳转操作或因为一些原因使得在服务器A的缓存板上无法形成共用缓存,则由接入控制节点进行全局调度或该服务器A其他服务器上的缓存板查询,如果服务器B上缓存有用户所需的数据,那么,将用户服务从服务器A迁移到服务器B,形成新的共用缓存,迁移步骤如下服务器A得到迁移命令后,向客户端发送一个当前节目ID的发送位置offset和将要迁移到的服务器B的IP;客户端向该IP所在服务器B请求数据,包含节目ID和offset等必要信息;服务器B从该ID的offset处开始向客户端发送请求的数据。在服务器B中的缓存管理同步骤64中所述。本具体实施方式
采用的方案中通过协作缓存与大雨伞缓存算法的结合,使用户聚合,可以显著降低IO负载,增大系统的最大并发能力;根据集群中各服务器的缓存信息和负载信息来调度任务以及在服务过程中采用动态迁移用户的策略,可以提高缓存效率,增强系统的服务能力;本发明中的接入控制策略可以实现各个服务器间的负载均衡。本发明的具体实施方式
还提供了一种IPTV中基于大雨伞缓存算法的流媒体协作缓存管理系统,如图8所示,具体可以包括负载状况表建立单元81,用于统计生成服务器集群的服务状态和负载状况信息, 建立负载状况表;命中确定单元82,用于当用户请求达到时,根据已有信息确定用户请求数据的缓存是否命中以及在哪个缓存节点中命中;缓存节点分配单元83,用于如果命中,则将用户请求分配给命中的缓存节点,并且将后续请求转发到该缓存节点;若未命中,则查找所述负载状况表,并将请求调度到当前负载最轻的一台缓存节点,该缓存节点从服务器的磁盘中获取相应的数据进行缓存并向用户提供服务;管理缓存单元84,用于将用户请求分配给预定服务器后,该服务器对用户请求进行服务,并构建共用缓存,采用大雨伞算法管理缓存;动态迁移单元85,用于若在服务过程中,用户进行VCR操作或离开后使得共用缓存发生改变,则进行全局调度,或该服务器向其它服务器上的缓存板查询,若能与其他缓存节点上的已有缓存形成共用缓存,则动态迁移服务到该缓存节点。可选的,在负载状况表建立单元81中可以包括任务分配子单元,用于所有已经接入的请求的信息和各个缓存节点的状态信息都在接入控制节点内保存,请求到达后,根据所保存的信息来分配任务;或者任务调度子单元,用于当有请求到来时,接入控制节点向各个缓存节点实时查询是否缓存有请求的数据,根据各个缓存节点所返回的信息来进行任务调度。可选的,在管理缓存单元84中可以包括状态划分子单元,用于将缓存状态分为构建状态、运行状态和空闲状态三种构建状态,缓存被分配之后,缓存大小需要调整的状态;运行状态,当缓存大小被固定之后,缓存以滑动窗口形式对外服务的状态;空闲状态,滑动窗口停止向前滑动的状态;缓存分配子单元,用于当请求到达时,考虑所有处于构建状态的缓存,如果其中有包含文件i前缀的,这个请求将直接由文件i的现有的缓存来服务,然后更新该缓存的平均时间间隔;否则,如果有足够的内存,将分配一个按预定可服务时间P的大小设置新的缓存区,这个请求将由这个新的缓存和所有已存的文件i的缓存来服务;如果没有足够的内存, 大雨伞算法将运用缓存替代算法来重新分配一个缓存区或者直接由服务器提供服务。可选的,在动态迁移单元85中可以包括信息发送子单元,用于当相应的服务器得到迁移命令后,向客户端发送一个当前节目ID的发送位置offset和将要迁移到的服务器的IP ;请求发送子单元,用于客户端向该IP所在的将要迁移到的服务器请求数据,所述请求数据包含节目ID和位置offset ;迁移子单元,用于将要迁移到的服务器从该ID的位置offset处开始向客户端发送请求的数据。本具体实施方式
采用的方案中通过协作缓存与大雨伞缓存算法的结合,使用户聚合,可以显著降低IO负载,增大系统的最大并发能力;根据集群中各服务器的缓存信息和负载信息来调度任务以及在服务过程中采用动态迁移用户的策略,可以提高缓存效率,增强系统的服务能力;本发明中的接入控制策略可以实现各个服务器间的负载均衡。上述IPTV中基于大雨伞缓存算法的流媒体协作缓存管理系统中包含的各单元的处理功能的实施方式在之前的方法具体实施方式
中已经描述,在此不再重复描述。以上所述,仅为本发明较佳的具体实施方式
,但本发明的保护范围并不局限于此, 任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换, 都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求书的保护范围为准。
权利要求
1.一种IPTV中基于大雨伞缓存算法的流媒体协作缓存管理方法,其特征在于,包括 接入控制节点统计生成服务器集群的服务状态和负载状况信息,建立负载状况表;当用户请求达到时,接入控制节点根据已有信息确定用户请求数据的缓存是否命中以及在哪个缓存节点中命中;如果命中,则将用户请求分配给命中的缓存节点,并且将后续请求转发到该缓存节点; 若未命中,则接入控制节点查找所述负载状况表,并将请求调度到当前负载最轻的一台缓存节点,该缓存节点从服务器的磁盘中获取相应的数据进行缓存并向用户提供服务;接入控制节点将用户请求分配给预定服务器后,该服务器对用户请求进行服务,并构建共用缓存,采用大雨伞算法管理缓存;若在服务过程中,用户进行VCR操作或离开后使得共用缓存发生改变,则由接入控制节点进行全局调度,或该服务器向其它服务器上的缓存板查询,若能与其他缓存节点上的已有缓存形成共用缓存,则动态迁移服务到该缓存节点。
2.根据权利要求1所述的方法,其特征在于,所述统计生成服务器集群的服务状态和负载状况信息包括所有已经接入的请求的信息和各个缓存节点的状态信息都在接入控制节点内保存,请求到达后,根据所保存的信息来分配任务;或者当有请求到来时,接入控制节点向各个缓存节点实时查询是否缓存有请求的数据,根据各个缓存节点所返回的信息来进行任务调度。
3.根据权利要求1所述的方法,其特征在于,所述采用大雨伞算法管理缓存包括 将缓存状态分为构建状态、运行状态和空闲状态三种构建状态,缓存被分配之后,缓存大小需要调整的状态;运行状态,当缓存大小被固定之后,缓存以滑动窗口形式对外服务的状态;空闲状态,滑动窗口停止向前滑动的状态;当请求到达时,考虑所有处于构建状态的缓存,如果其中有包含文件i前缀的,这个请求将直接由文件i的现有的缓存来服务,然后更新该缓存的平均时间间隔;否则,如果有足够的内存,将分配一个按预定可服务时间P的大小设置新的缓存区,这个请求将由这个新的缓存和所有已存的文件i的缓存来服务;如果没有足够的内存,大雨伞算法将运用缓存替代算法来重新分配一个缓存区或者直接由服务器提供服务。
4.根据权利要求1所述的方法,其特征还在于,所述的大雨伞缓存为一个随观看时间流逝而滑动的可调节大小的缓存数据,所有需要读取该数据段内数据的用户,均由该缓存数据段向其服务,而无需为每个用户建立各自的缓存块。
5.根据权利要求1所述的方法,其特征在于,所述动态迁移服务到该缓存节点包括 相应的服务器得到迁移命令后,向客户端发送一个当前节目ID的发送位置offset和将要迁移到的服务器的IP ;客户端向该IP所在的将要迁移到的服务器请求数据,所述请求数据包含节目ID和位置 offset ;将要迁移到的服务器从该ID的位置offset处开始向客户端发送请求的数据。
6.一种IPTV中基于大雨伞缓存算法的流媒体协作缓存管理系统,其特征在于,包括 负载状况表建立单元,用于统计生成服务器集群的服务状态和负载状况信息,建立负载状况表;命中确定单元,用于当用户请求达到时,根据已有信息确定用户请求数据的缓存是否命中以及在哪个缓存节点中命中;缓存节点分配单元,用于如果命中,则将用户请求分配给命中的缓存节点,并且将后续请求转发到该缓存节点;若未命中,则查找所述负载状况表,并将请求调度到当前负载最轻的一台缓存节点,该缓存节点从服务器的磁盘中获取相应的数据进行缓存并向用户提供服务;管理缓存单元,用于将用户请求分配给预定服务器后,该服务器对用户请求进行服务, 并构建共用缓存,采用大雨伞算法管理缓存;动态迁移单元,用于若在服务过程中,用户进行VCR操作或离开后使得共用缓存发生改变,则进行全局调度,或该服务器向其它服务器上的缓存板查询,若能与其他缓存节点上的已有缓存形成共用缓存,则动态迁移服务到该缓存节点。
7.根据权利要求6所述的系统,其特征在于,在所述负载状况表建立单元中包括任务分配子单元,用于所有已经接入的请求的信息和各个缓存节点的状态信息都在接入控制节点内保存,请求到达后,根据所保存的信息来分配任务;或者任务调度子单元,用于当有请求到来时,接入控制节点向各个缓存节点实时查询是否缓存有请求的数据,根据各个缓存节点所返回的信息来进行任务调度。
8.根据权利要求6所述的系统,其特征在于,在所述管理缓存单元中包括状态划分子单元,用于将缓存状态分为构建状态、运行状态和空闲状态三种构建状态,缓存被分配之后,缓存大小需要调整的状态;运行状态,当缓存大小被固定之后,缓存以滑动窗口形式对外服务的状态;空闲状态,滑动窗口停止向前滑动的状态;缓存分配子单元,用于当请求到达时,考虑所有处于构建状态的缓存,如果其中有包含文件i前缀的,这个请求将直接由文件i的现有的缓存来服务,然后更新该缓存的平均时间间隔;否则,如果有足够的内存,将分配一个按预定可服务时间P的大小设置新的缓存区, 这个请求将由这个新的缓存和所有已存的文件i的缓存来服务;如果没有足够的内存,大雨伞算法将运用缓存替代算法来重新分配一个缓存区或者直接由服务器提供服务。
9.根据权利要求6所述的系统,其特征在于,在所述动态迁移单元中包括信息发送子单元,用于当相应的服务器得到迁移命令后,向客户端发送一个当前节目 ID的发送位置offset和将要迁移到的服务器的IP ;请求发送子单元,用于客户端向该IP所在的将要迁移到的服务器请求数据,所述请求数据包含节目ID和位置offset ;迁移子单元,用于将要迁移到的服务器从该ID的位置offset处开始向客户端发送请求的数据。
全文摘要
本发明提供了一种IPTV中基于大雨伞缓存算法的流媒体协作缓存管理方法,包括统计生成服务器集群的服务状态和负载状况信息,建立负载状况表;根据已有信息确定用户请求数据的缓存是否命中以及在哪个缓存节点中命中;命中则将用户请求分配给命中的缓存节点,并且将后续请求转发到该缓存节点;未命中则接入控制节点查找负载状况表,并将请求调度到当前负载最轻的一台缓存节点;将用户请求分配给预定服务器后,该服务器对用户请求进行服务,并构建共用缓存,采用大雨伞算法管理缓存;用户进行VCR操作或离开后使得共用缓存发生改变,若能与其他缓存节点上的已有缓存形成共用缓存,则动态迁移服务到该缓存节点。
文档编号H04L29/08GK102497389SQ201110357920
公开日2012年6月13日 申请日期2011年11月11日 优先权日2011年11月11日
发明者万敏, 奚宏生, 李俊, 洪爽 申请人:中国科学技术大学