流媒体片段注入缓存系统的方法、设备及缓存系统的制作方法

文档序号:7781050阅读:307来源:国知局
流媒体片段注入缓存系统的方法、设备及缓存系统的制作方法
【专利摘要】本发明公开了一种流媒体片段注入缓存系统的方法、设备及缓存系统,用以提供一种支持流媒体片段并发注入到缓存系统中的方案。本发明实施例提供的方案为待注入到缓存系统中的流媒体片段分配了读写锁,使得被分配了读写锁的流媒体片段在同一时间仅能被一个终端执行写操作。由于不同终端对于同一流媒体内容的写操作之间不会发生冲突,因此可以支持流媒体内容的不同流媒体片段并发注入到缓存系统中。
【专利说明】流媒体片段注入缓存系统的方法、设备及缓存系统
【技术领域】
[0001]本发明涉及通信【技术领域】,尤其涉及一种流媒体片段注入缓存系统的方法、设备及缓存系统。
【背景技术】
[0002]随着智能终端的普及以及移动宽带(Mobile Broadband,MBB)业务的迅猛发展,移动视频业务,即通过移动网络观看或下载视频信息的业务成为当前互联网增长最迅速的业务,现网中的视频信息流量首次超过移动环球网(Web)业务(即通过移动网络访问Web的业务)的信息流量。据权威专业机构预测,移动网络中的视频信息流量在未来的10年内仍将保持100%?400%的增长速度。由于视频信息传输对于移动网络的带宽消耗大、且占空比高、时延要求极高,而无线网络本身的传输带宽却非常有限、且网络稳定性差、传输时延大,从而当前的无线网络并不适合传输视频信息。
[0003]基于当前的无线网络的上述缺陷,目前MBB业务的发展主要会面对下述问题:
[0004]1、用户初始播放视频时,需要等待较长时间;
[0005]2、视频在终端上播放时,停顿现象严重;
[0006]3、视频信息流量浪费现象严重;
[0007]4、热点视频重复下载率高,不仅增加了运营商网间结算费用,也加重了终端到终端(End to End,E2E)的网络负载,忙时甚至会加剧网络拥塞,降低用户体验。
[0008]为了解决上述问题,目前通用的解决方案是在靠近终端的中间节点部署缓存系统,从而实现基于缓存系统中存储的视频信息等对MBB业务进行优化。其中,这里所说的缓存系统可以但不限于是包含高速缓冲存储器(Cache)的Cache服务器等。
[0009]实现现有技术的一种系统的结构示意图如图1所示。该系统主要由客户端、缓存系统和原始服务器构成,缓存系统又由服务模块、内容分析模块、存储管理模块、存储器以及下载模块构成。
[0010]现有技术中实现将匹配于客户端的访问请求的信息注入到存储器中的过程主要包括下述步骤:
[0011]步骤1,服务模块接收到客户端的访问请求;
[0012]步骤2,内容分析模块通过分析服务模块接收到的访问请求,确定该访问请求所请求访问的流媒体片段(一般是流媒体内容的部分或全部内容),并向存储管理模块查询该流媒体片段;如果查询命中,则本地回送包含该内容的响应给客户端,如果查询未命中,则内容分析模块控制下载模块向原始服务器获取该内容,并继续执行步骤3 ;
[0013]步骤3,当下载模块从原始服务器获取到该内容后,服务模块在内容分析模块的控制下将该内容发送给客户端,同时,存储管理模块在内容分析模块的控制下将下载模块获得的该内容保存到存储器,以实现将该内容注入到存储器中。
[0014]该现有技术的缺点在于:主要适用于针对单个客户端的内容串行注入的场景,而并不适用于单个或多个客户端并发访问的情况,即难以实现视频内容的并发注入。
【发明内容】

[0015]本发明实施例提供一种流媒体片段注入缓存系统的方法、设备及缓存系统,用以提供一种支持视频内容的流媒体片段并发注入到缓存系统中的方案。
[0016]本发明实施例采用以下技术方案:
[0017]第一方面,一种流媒体片段注入缓存系统的方法,包括:确定待注入缓存系统的至少一个流媒体片段;向缓存系统发送包含注入范围信息的读写锁分配请求,以使所述缓存系统根据所述读写锁分配请求,为所述注入范围信息所指示的一个或多个流媒体片段分配读写锁;其中,所述注入范围信息包括待注入所述缓存系统的各个流媒体片段在其所属的流媒体内容中的位置或位置区间;利用所述缓存系统与至少一个终端之间的传输链路,将所述至少一个流媒体片段中分配了读写锁的流媒体片段注入所述缓存系统;其中,被分配了读写锁的流媒体片段在同一时间仅能被一个终端执行写操作。
[0018]结合第一方面,在第一种可能的实现方式中,在将所述至少一个流媒体片段中分配了读写锁的流媒体片段注入所述缓存系统之前,还包括:根据各个终端与所述缓存系统之间的传输链路的注入上下文信息,从所有传输链路中选取出目标传输链路;所述利用所述缓存系统与至少一个终端之间的传输链路,将所述至少一个流媒体片段中分配了读写锁的流媒体片段注入所述缓存系统,包括:利用所述目标传输链路,将所述至少一个流媒体片段中分配了读写锁的流媒体片段注入所述缓存系统。
[0019]结合第一方面的第一种可能的实现方式,在第二种可能的实现方式中,所述注入上下文信息至少包括下述信息中的一种:传输速率信息;信息传输性能的信息;额定带宽的信息。
[0020]结合第一方面,在第三种可能的实现方式中,确定待注入缓存系统的至少一个流媒体片段,具体包括:接收终端发送的流媒体内容访问请求;其中,所述流媒体内容访问请求用于请求访问流媒体内容;向所述缓存系统查询与所述流媒体内容访问请求相对应的元数据;根据所述缓存系统反馈的查询结果,从服务提供方SP处获得所述流媒体内容访问请求所请求的流媒体内容的至少一个流媒体片段;其中,所述查询结果用于表示是否在所述缓存系统中查询到所述元数据,以及在所述缓存系统中查询到的所述元数据所对应的流媒体内容的片段流媒体片段。
[0021]结合第一方面的第三种可能的实现方式,在第四种可能的实现方式中,根据所述查询结果,从所述SP处获得所述至少一个流媒体片段,具体包括:当所述查询结果表示没有在所述缓存系统中查询到所述元数据时,从所述SP处获得所述流媒体内容访问请求所请求的流媒体内容的全部流媒体片段。
[0022]结合第一方面的第四种可能的实现方式,在第五种可能的实现方式中,所述方法还包括:当所述查询结果表示在所述缓存系统中查询到所述元数据,且所述元数据对应所述流媒体内容访问请求所请求的所述流媒体内容中的部分流媒体片段时,从所述SP处获得所述流媒体内容访问请求所请求的流媒体内容中,所述元数据未能对应的流媒体片段。
[0023]结合第一方面的第五种可能的实现方式,在第六种可能的实现方式中,所述方法还包括:判断所述流媒体内容访问请求所请求的流媒体内容中,所述元数据未能对应的流媒体片段的占比是否小于预设比例阈值,以及所述元数据未能对应的流媒体片段注入到所述缓存系统所需的时间是否小于预设时间阈值;在判断出所述占比小于预设比例阈值,且所述时间小于预设时间阈值时,在将从所述SP处获得的所述元数据未能对应的流媒体片段注入所述缓存系统后,从所述缓存系统处获取所述流媒体内容访问请求所请求的流媒体内容的流媒体片段;将从所述缓存系统处获取的所述流媒体内容访问请求所请求的流媒体内容的流媒体片段提供给发送所述流媒体内容访问请求的终端。
[0024]结合第一方面的第三种至第六种可能的实现方式中的任意一种实现方式,在第七种可能的实现方式中,所述方法还包括:当所述查询结果表示在所述缓存系统中查询到所述元数据,且所述元数据对应所述流媒体内容访问请求所请求的流媒体内容中的全部流媒体片段时,若确定所述缓存系统未存储所述流媒体内容访问请求所请求的流媒体内容的所有流媒体片段,则从所述SP处获得所述流媒体内容访问请求所请求的流媒体内容中未存储于所述缓存系统中的流媒体片段。
[0025]结合第一方面的第七种可能的实现方式,在第八种可能的实现方式中,从所述SP处获得所述流媒体内容访问请求所请求的流媒体内容中的未存储于所述缓存系统中的流媒体片段,具体包括:根据所述流媒体内容访问请求所请求的流媒体内容的所有流媒体片段中,已注入所述缓存系统的流媒体片段的占比,和/或当前注入流媒体片段到所述缓存系统的注入速率信息,判断是否需要从所述SP处获得所述流媒体内容访问请求所请求的流媒体内容的未存储于所述缓存系统中的流媒体片段;在判断结果为需要时,从所述SP处获得所述流媒体内容访问请求所请求的流媒体内容的未存储于所述缓存系统中的流媒体片段。
[0026]结合第一方面的第三种至第八种可能的实现方式中的任意一种实现方式,在第九种可能的实现方式中,将所述分配了所述读写锁的流媒体片段注入所述缓存系统后,所述方法还包括:触发所述缓存系统释放所述读写锁,并更新所述元数据。
[0027]第二方面,一种流媒体片段注入缓存系统的方法,包括:缓存系统接收读写锁分配请求;其中,读写锁分配请求中包含注入范围信息;所述注入范围信息包括待注入所述缓存系统的一个或多个流媒体片段在其所属的流媒体内容中的位置或位置区间;根据所述注入范围信息,从待注入所述缓存系统的流媒体片段中,确定出能够被分配读写锁的流媒体片段,并为确定出的流媒体片段分配读写锁;发送读写锁分配响应消息给终端,以使终端将被分配了读写锁的流媒体片段注入所述缓存系统;其中,被分配了所述读写锁的流媒体片段在同一时间仅能被一个终端执行写操作;所述缓存系统接收并存储所述被分配了读写锁的流媒体片段。
[0028]结合第二方面,在第一种可能的实现方式中,所述缓存系统存储所述被分配了读写锁的流媒体片段之前,所述方法还包括:所述缓存系统接收用于查询是否能向所述缓存系统注入所述被分配了读写锁的流媒体片段的注入查询请求;所述缓存系统根据所述缓存系统所在的网络的拥塞情况,和/或所述缓存系统的磁盘的拥塞情况,判断是否能向所述缓存系统注入所述被分配了读写锁的流媒体片段;所述缓存系统在判断出能向所述缓存系统注入所述被分配了读写锁的流媒体片段时,发送用于通知可以向所述缓存系统注入所述被分配了读写锁的流媒体片段的响应消息。
[0029]结合第二方面或第二方面的第一种可能的实现方式,在第二种可能的实现方式中,所述缓存系统接收所述读写锁分配请求之前,所述方法还包括:所述缓存系统接收元数据查询请求;所述元数据查询请求用于查询与待注入所述缓存系统的流媒体片段相对应的元数据;所述缓存系统发送查询结果;其中,所述查询结果用于表示是否在所述缓存系统中查询到所述元数据,以及在所述缓存系统中查询到的所述元数据所对应的流媒体片段。
[0030]结合第二方面的第二种可能的实现方式,在第三种可能的实现方式中,所述缓存系统存储所述被分配了读写锁的流媒体片段后,所述方法还包括:所述缓存系统接收读写锁释放指令;所述缓存系统释放所述读写锁,并更新所述元数据。
[0031]第三方面,一种流媒体片段注入缓存系统的设备,包括:流媒体片段确定单元,用于确定待注入缓存系统的至少一个流媒体片段;请求发送单元,用于向缓存系统发送包含注入范围信息的读写锁分配请求,以使所述缓存系统根据所述读写锁分配请求,为所述注入范围信息所指示的一个或多个流媒体片段分配读写锁;其中,所述注入范围信息包括待注入所述缓存系统的各个流媒体片段在其所属的流媒体内容中的位置或位置区间;流媒体片段注入单元,用于利用所述缓存系统与至少一个终端之间的传输链路,将所述至少一个流媒体片段中分配了读写锁的流媒体片段注入所述缓存系统;其中,被分配了读写锁的流媒体片段在同一时间仅能被一个终端执行写操作。
[0032]结合第三方面,在第一种可能的实现方式中,所述设备还包括:目标传输链路选取单元,用于根据各个终端分别与所述缓存系统之间的传输链路的注入上下文信息,从所有传输链路中选取出目标传输链路;所述流媒体片段注入单元具体用于:利用所述目标传输链路,将所述至少一个流媒体片段中分配了读写锁的流媒体片段注入所述缓存系统。
[0033]结合第三方面,在第二种可能的实现方式中,所述流媒体片段确定单元,具体包括:接收子单元,用于接收终端发送的流媒体内容访问请求;其中,所述流媒体内容访问请求用于请求访问流媒体内容;查询子单元,用于向所述缓存系统查询与所述流媒体内容访问请求相对应的元数据;获得子单元,用于根据所述缓存系统反馈的查询结果,从服务提供方SP处获得所述流媒体内容访问请求所请求的至少一个流媒体片段;其中,所述查询结果用于表示是否在所述缓存系统中查询到所述元数据,以及在所述缓存系统中查询到的所述元数据所对应的流媒体内容的流媒体片段。
[0034]结合第三方面的第二种可能的实现方式,在第三种可能的实现方式中,所述接收子单元具体用于:当所述查询结果表示没有在所述缓存系统中查询到所述元数据时,从所述SP处获得所述流媒体内容访问请求所请求的流媒体内容的全部流媒体片段。
[0035]结合第三方面的第三种可能的实现方式,在第四种可能的实现方式中,所述接收子单元还用于:当所述查询结果表示在所述缓存系统中查询到所述元数据,且所述元数据对应所述流媒体内容访问请求所请求的所述流媒体内容中的部分流媒体片段时,从所述SP处获得所述流媒体内容访问请求所请求的流媒体内容中,所述元数据未能对应的流媒体片段。
[0036]结合第三方面的第四种可能的实现方式,在第五种可能的实现方式中,所述设备还包括:判断单元,用于判断所述流媒体内容访问请求所请求的流媒体内容中,所述元数据未能对应的流媒体片段的占比是否小于预设比例阈值,以及所述元数据未能对应的流媒体片段注入到所述缓存系统所需的时间是否小于预设时间阈值;内容获取单元,用于在判断出所述占比小于预设比例阈值,且所述时间小于预设时间阈值时,在将从所述SP处获得的所述元数据未能对应的流媒体片段注入所述缓存系统后,从所述缓存系统处获取所述流媒体内容访问请求所请求的流媒体内容的流媒体片段;内容发送单元,用于将从所述缓存系统处获取的所述流媒体内容访问请求所请求的流媒体内容的流媒体片段提供给发送所述流媒体内容访问请求的终端。
[0037]结合第三方面的第二种至第五种可能的实现方式中的任意一种实现方式,在第六种可能的实现方式中,所述接收子单元还用于:当所述查询结果表示在所述缓存系统中查询到所述元数据,且所述元数据对应所述流媒体内容访问请求所请求的流媒体内容中的全部流媒体片段时,若确定所述缓存系统未存储所述流媒体内容访问请求所请求的流媒体内容的所有流媒体片段,则从所述SP处获得所述流媒体内容访问请求所请求的流媒体内容中未存储于所述缓存系统中的流媒体片段。
[0038]结合第三方面的第六种可能的实现方式,在第七种可能的实现方式中,所述接收子单元具体用于:根据所述流媒体内容访问请求所请求的流媒体内容的所有流媒体片段中,已注入所述缓存系统的流媒体片段的占比,和/或当前注入流媒体片段到所述缓存系统的注入速率信息,判断是否需要从所述SP处获得所述流媒体内容访问请求所请求的流媒体内容的未存储于所述缓存系统中的流媒体片段;在判断结果为需要时,从所述SP处获得所述流媒体内容访问请求所请求的流媒体内容的未存储于所述缓存系统中的流媒体片段。
[0039]第四方面,一种缓存系统,包括:分配请求接收单元,用于接收读写锁分配请求;其中,读写锁分配请求中包含注入范围信息;所述注入范围信息包括待注入所述缓存系统的一个或多个流媒体片段在其所属的流媒体内容中的位置或位置区间;流媒体片段确定单元,用于根据所述注入范围信息,从待注入所述缓存系统的流媒体片段中,确定出能够被分配读写锁的流媒体片段;锁分配单元,用于为确定出的流媒体片段分配读写锁;信息发送单元,用于在为确定出的流媒体片段分配读写锁后,发送读写锁分配响应消息给终端,以使终端将被分配了读写锁的流媒体片段注入所述缓存系统;其中,被分配了所述读写锁的流媒体片段在同一时间仅能被一个终端执行写操作;流媒体片段接收单元,用于接收所述被分配了读写锁的流媒体片段;存储单元,用于存储所述被分配了读写锁的流媒体片段。
[0040]结合第四方面,在第一种可能的实现方式中,所述缓存系统还包括:注入查询请求接收单元,用于在流媒体片段接收单元接收所述被分配了读写锁的流媒体片段之前,接收用于查询是否能向所述缓存系统注入所述被分配了读写锁的流媒体片段的注入查询请求;判断单元,用于根据所述缓存系统所在的网络的拥塞情况,和/或所述缓存系统的磁盘的拥塞情况,判断是否能向所述缓存系统注入所述被分配了读写锁的流媒体片段;消息发送单元,用于在所述判断单元判断出能向所述缓存系统注入所述被分配了读写锁的流媒体片段时,发送用于通知可以向所述缓存系统注入所述被分配了读写锁的流媒体片段的响应消肩、O
[0041]结合第四方面或第四方面的第一种可能的实现方式,在第二种可能的实现方式中,所述缓存系统还包括:元数据查询请求接收单元,用于在接收所述读写锁分配请求之前,接收元数据查询请求;所述元数据查询请求用于查询与待注入所述缓存系统的流媒体片段相对应的元数据;结果发送单元,用于发送查询结果;其中,所述查询结果用于表示是否在所述缓存系统中查询到所述元数据,以及在所述缓存系统中查询到的所述元数据所对应的流媒体内容的流媒体片段。[0042]结合第四方面,在第三种可能的实现方式中,所述缓存系统还包括:释放指令接收单元,用于在所述存储单元存储所述被分配了读写锁的流媒体片段后,接收读写锁释放指令;释放单元,用于根据所述读写锁释放指令,释放所述读写锁;更新单元,用于根据所述读写锁释放指令,更新所述元数据。
[0043]本发明实施例的有益效果如下:
[0044]本发明实施例提供的方案由于为待注入到缓存系统中的流媒体片段分配了读写锁,从而使得被分配了读写锁的流媒体片段在同一时间仅能被一个终端执行写操作,由于本发明实施例提供的该方案可以使得不同终端对于同一流媒体内容的写操作之间不会发生冲突,因此可以支持流媒体内容的不同流媒体片段并发注入到缓存系统中。
【专利附图】

【附图说明】
[0045]图1为现有技术中用于实现移动视频业务的一种系统示意图;
[0046]图2为本发明实施例提供的一种流媒体片段注入缓存系统的方法的具体流程示意图;
[0047]图3为本发明实施例提供的另一种流媒体片段注入缓存系统的方法的具体流程示意图;
[0048]图4为实施本发明的实施例一、实施例二和实施例三的系统架构示意图;
[0049]图5为改进后的系统架构所包含的主要设备的示意图;
[0050]图6为Proxy Cache的内部结构示意图;
[0051]图7为实施例一的具体实现流程图;
[0052]图8为实施例二的具体实现流程图;
[0053]图9为实施例三的具体实现流程图;
[0054]图10为本发明实施例提供的一种流媒体片段注入缓存系统的设备的具体结构示意图;
[0055]图11为本发明实施例提供的一种缓存系统的具体结构示意图;
[0056]图12为本发明实施例提供的另一种流媒体片段注入缓存系统的设备的具体结构示意图;
[0057]图13为本发明实施例提供的另一种缓存系统的具体结构示意图。
【具体实施方式】
[0058]以下结合说明书附图对本发明的实施例进行说明,应当理解,此处所描述的实施例仅用于说明和解释本发明,并不用于限制本发明。并且在不冲突的情况下,本说明中的实施例及实施例中的特征可以互相结合。
[0059]首先,本发明实施例提供一种流媒体片段注入缓存系统的方法,该方法的主要流程示意图如图2所示,包括下述步骤:
[0060]步骤21,确定待注入缓存系统的至少一个流媒体片段;
[0061]其中,当该流媒体片段是终端所请求获取的流媒体片段时,步骤21的具体实现过程可以包括:
[0062]首先,获得终端发送的流媒体内容访问请求;[0063]然后,向缓存系统查询与该流媒体内容访问请求所对应的元数据;
[0064]最后,根据缓存系统反馈的查询结果,从SP处获得所述至少一个流媒体片段。其中,这里所说的查询结果用于表示是否在缓存系统中查询到该元数据,以及在缓存系统中查询到的该元数据所对应的流媒体内容的流媒体片段。
[0065]一般说来,查询结果可以有下述几种:
[0066]1、没有在缓存系统中查询到该元数据;
[0067]2、在缓存系统中查询到该元数据,但该元数据对应流媒体内容访问请求所请求的流媒体内容中的部分流媒体片段;
[0068]3、在缓存系统中查询到该元数据,且该元数据对应流媒体内容访问请求所请求的流媒体内容中的全部流媒体片段。
[0069]针对第I种查询结果,可以直接从SP处获得流媒体内容访问请求所请求的流媒体内容的全部流媒体片段。
[0070]针对第2种查询结果,可以从SP处获得流媒体内容访问请求所请求的流媒体内容中,该元数据未能对应的流媒体片段。
[0071]针对第3种查询结果,若还进一步确定出缓存系统未存储流媒体内容访问请求所请求的该流媒体内容的所有流媒体片段,则可以从SP处获得流媒体内容访问请求所请求的流媒体内容中未存储于缓存系统中的流媒体片段。
[0072]可选的,针对第3种查询结果,从SP处获得流媒体内容访问请求所请求的流媒体内容中的未存储于缓存系统中的流媒体片段的过程具体可以包括:
[0073]首先,根据该流媒体内容访问请求所请求的流媒体内容的所有流媒体片段中,已注入缓存系统的流媒体片段的占比,和/或当前流媒体片段到缓存系统的注入速率信息,判断是否需要从SP处获得流媒体内容访问请求所请求的流媒体内容的未存储于缓存系统中的流媒体片段;
[0074]然后,在判断结果为需要时,从SP处获得流媒体内容访问请求所请求的流媒体内容的未存储于缓存系统中的流媒体片段。
[0075]步骤22,向缓存系统发送包含注入范围信息的读写锁分配请求,以使缓存系统根据读写锁分配请求,为注入范围信息所指示的一个或多个流媒体片段分配读写锁;
[0076]其中,注入范围信息包括待注入缓存系统的各个流媒体片段在其所属的流媒体内容中的位置或位置区间。
[0077]步骤23,利用缓存系统与至少一个终端之间的传输链路,将所述至少一个流媒体片段中的分配了读写锁的流媒体片段注入缓存系统。其中,被分配读写锁的流媒体片段在同一时间仅能被一个终端执行写操作。
[0078]本发明实施例中,在执行步骤23之前,可以根据各个终端分别与缓存系统之间的传输链路的注入上下文信息,从所有传输链路中选取出目标传输链路。从而步骤23的具体实现方式可以包括:利用目标传输链路,将所述至少一个流媒体片段中分配了读写锁的流媒体片段注入缓存系统。
[0079]其中,注入上下文信息可以但不限于是传输速率信息、信息传输性能的信息和/或额定带宽的信息。
[0080]需要说明的是,当前文所述的查询结果表示第2种查询结果时,本发明实施例提供的该方法还可以进一步包括步骤:
[0081]首先,判断流媒体内容访问请求所请求的流媒体内容中,所述元数据未能对应的流媒体片段的占比是否小于预设比例阈值,以及所述元数据未能对应的流媒体片段注入到缓存系统所需的时间是否小于预设时间阈值;
[0082]在判断出所述占比小于预设比例阈值,且所述时间小于预设时间阈值时,在将从SP处获得的所述元数据未能对应的流媒体片段注入缓存系统后,从缓存系统处获取流媒体内容访问请求所请求的流媒体内容的流媒体片段;
[0083]将从缓存系统处获取的流媒体内容访问请求所请求的流媒体内容的流媒体片段提供给发送流媒体内容访问请求的终端。
[0084]此外还需要说明的是,在通过执行步骤23,实现将待注入缓存系统的所述至少一个流媒体片段中的分配了读写锁的流媒体片段注入缓存系统后,本发明实施例提供的该方法还可以进一步包括步骤:触发缓存系统释放读写锁,并更新相应的元数据。
[0085]通过本发明实施例提供的上述方案,由于使得不同终端对于同一流媒体内容的写操作之间不会发生冲突,因此可以支持流媒体内容的不同流媒体片段并发注入到缓存系统中。
[0086]出于与本发明实施例提供的上述流媒体流媒体片段注入缓存系统的方法的发明构思,本发明实施例还提供另一种流媒体流媒体片段注入缓存系统的方法,该方法的具体流程示意图如图3所示,主要包括下述步骤:
[0087]步骤31,缓存系统接收读写锁分配请求;
[0088]其中,读写锁分配请求中包含注入范围信息。
[0089]注入范围信息包括待注入缓存系统的一个或多个流媒体片段在其所属的流媒体内容中的位置或位置区间。
[0090]步骤32,缓存系统根据注入范围信息,从待注入缓存系统的流媒体片段中,确定出能够被分配读写锁的流媒体片段,并为确定出的流媒体片段分配读写锁;
[0091]步骤33,缓存系统发送读写锁分配响应消息给终端,以使终端将被分配了读写锁的流媒体片段注入缓存系统;
[0092]其中,被分配了读写锁的流媒体片段在同一时间仅能被一个终端执行写操作。
[0093]步骤34,缓存系统接收并存储被分配了读写锁的流媒体片段。
[0094]可选的,本发明实施例提供的该缓存系统还可以自主判断是否允许流媒体内容的流媒体片段的注入。为了达到该目的,缓存系统存储注入缓存系统的、被分配了所述读写锁的流媒体片段之前,上述方法还可以进一步包括下述步骤:
[0095]首先,缓存系统接收用于查询是否能向该缓存系统注入被分配了读写锁的流媒体片段的注入查询请求;
[0096]然后,缓存系统根据该缓存系统所在的网络的拥塞情况,和/或该缓存系统的磁盘的拥塞情况的信息,判断是否能向该缓存系统注入被分配了读写锁的流媒体片段;
[0097]最后,缓存系统在判断出能向缓存系统注入被分配了读写锁的流媒体片段时,发送用于通知可以向缓存系统注入被分配了读写锁流媒体内的流媒体片段的响应消息。
[0098]可选的,本发明实施例中的该缓存系统还可以支持对元数据的查询。具体地,在上述步骤31之前,本发明实施例提供的该方法还可以进一步包括:[0099]缓存系统接收元数据查询请求,该元数据查询请求用于查询与待利用传输链路注入缓存系统的流媒体片段相对应的元数据;
[0100]缓存系统发送查询结果;其中,该查询结果用于表示是否在缓存系统中查询到该元数据,以及在缓存系统中查询到的该元数据所对应的、存储于缓存系统中的流媒体内容的流媒体片段。
[0101]可选的,为了实现对元数据的更新和读写锁的释放,本发明实施例提供的该方法中,在步骤33执行完毕后,还可以进一步执行下述步骤:
[0102]缓存系统接收读写锁释放指令;缓存系统释放读写锁,并更新与注入的流媒体内容的流媒体片段相对应的元数据。
[0103]以下通过对3个实施例的介绍,详细说明本发明实施例提供的上述方案在实际中的应用。需要说明的是,下述3个实施例主要以视频内容这种流媒体为例,说明如何采用本发明实施例提供的上述方案实现将视频内容的流媒体片段注入缓存系统。本领域技术人员可以了解,采用本发明实施例提供的上述方案并不仅限于实现将视频内容的流媒体片段注入缓存系统,其还实现对其他类型的流媒体的注入。
[0104]在介绍3个实施例之前,先对实施这3个实施例的系统架构进行以下简单说明。
[0105]请参见图4,其为在用户终端和SP之间部署Cache的示意图。其中,该Cache可以是部署在GGSN或SAE-GW中。基于如图4所示的该结构,用户终端(User Equipment, UE)通过接入RAN,可以实现对GGSN/SAE-GW中设置的Cache所存储的流媒体内容的访问。当Cache本地命中用户终端请求访问的流媒体片段时,可以直接响应用户终端;而当Cache本地未命中用户终端请求访问的流媒体片段时,则可以从SP处获取相应的流媒体片段并进行反馈。
[0106]基于如图4所示的该系统架构,可以实现避免UE从SP处重复下载相同的流媒体片段,从而节省骨干网的流量和对SP的冲击,降低UE获取流媒体片段的时延。
[0107]本发明实施例中,进一步对上述系统架构进行了改进,使得其能够实现流媒体内容的流媒体片段的并发注入。具体地,改进后的上述系统架构所包含的主要设备的示意图如图5所示。需要说明的是,为了使得本发明实施例的发明重点更为直观和突出,图5中省略了图4中的RAN以及SGSN/MME。
[0108]由图5可知,相比于图4而言,其主要增加了代理服务器(Proxy Server)和代理客户端(Proxy Client)这两个设备。其可以是用软件实现的虚拟设备,也可以是物理设备。其中,Proxy Server与UE侧可以建立连接,Proxy Client则可以与图4中的Cache建立连接。Proxy Server、Proxy Client和Cache可以视为同属一个代理高速缓冲存储器(ProxyCache)的设备。
[0109]以下重点说明Proxy Cache的内部结构。
[0110]请参照图6,其为Proxy Cache的内部结构示意图。由图6可知,Proxy Cache除了包含Proxy Server、Proxy Client和Cache这几个主要设备之外,还包括视频高速缓冲存储器(Video Cache)、决策(Policy)设备。同时,Cache包括分布式锁服务(DistributeFile Lock Service, DFLS)、元数据服务器(Metadata Server, MDS)和对象存储设备(Object-Store Device, 0SD)。上述各设备之间的连接关系也请参照图6。
[0111]基于如图6所示的结构和设备之间的连接关系,以下简单介绍上述各设备的主要功能:
[0112]Proxy Server,用于接收和解析UE发送的视频内容访问请求,并在获得与该视频内容访问请求所匹配的流媒体片段后,向UE反馈该流媒体片段。
[0113]Video Cache,用于根据Proxy Server对UE发送的视频内容访问请求的解析结果,向MDS查询UE所请求访问的流媒体片段的元数据是否能在Cache本地全部命中。如果查询到该流媒体片段的元数据能在Cache本地全部命中,且判断出Cache本地保存的该流媒体片段是完整的,则从Cache获取该流媒体片段并发送给UE ;如果该流媒体片段的元数据在Cache本地仅能部分命中,则向Policy设备查询视频内容访问请求转发策略,并在Policy设备反馈的该策略表示的是需要从SP获取流媒体片段时,通知Proxy Client从SP处获取与该视频内容访问请求相匹配的流媒体片段;而如果该流媒体片段的元数据在Cache本地完全不能命中,则通知Proxy Client从SP处获取与该视频内容访问请求相匹配的流媒体片段。
[0114]此外,Video Cache还用于:接收Proxy Client从SP处获取的匹配于视频内容访问请求的流媒体片段并转发给UE ;向MDS申请为Video Cache接收的流媒体片段分配读写锁,其中,这里的读写锁可称为第一读写锁,被分配了第一读写锁的流媒体片段满足:其在同一时间能被多个设备执行读操作,从而避免了不同设备读取同一流媒体片段而产生的读冲突;在Video Cache接收的流媒体片段被分配了第一读写锁之后,向Policy设备查询流媒体片段的注入策略,并在Policy设备确定出可向Cache注入流媒体片段后,向DFLS查询允许注入Cache的流媒体片段的流媒体片段的信息,并基于相应的查询结果,向DFLS请求为待注入Cache的流媒体片段分配第二读写锁,并将被分配了第二读写锁的待注入Cache的流媒体片段注入Cache。其中,该第二读写锁即后文所说的“内容锁”,若某流媒体片段被分配了内容锁,则表明该内容在同一时间仅允许被一个设备执行写操作,从而避免了不同设备对该内容的写冲突。
[0115]进一步地,Video Cache还用于在完成对流媒体片段的注入后,向OSD发送用于指示OSD对注入完成的流媒体片段所对应的元数据进行修改的触发消息。
[0116]Policy设备,用于在接收到Video Cache发送的视频内容访问请求转发策略查询请求后,根据用于表征该视频内容的注入情况的信息,判断是否需要将视频内容访问请求转发给SP,并在判断出需要将视频内容访问请求转发给SP时,通知Proxy Client从SP处获取匹配于该视频内容访问请求的流媒体片段。此外,还用于在Video Cache查询流媒体片段的注入策略时,向Video Cache反馈相应的注入策略。其中,这里所说的用于表征视频内容的注入情况的信息可以但不限于包括:当前正在注入缓存系统中的流媒体片段中,是否有该视频内容的流媒体片段;和/或该视频内容的流媒体片段中,当前已有哪些流媒体片段已注入缓存系统;等等。比如当该用于表征视频内容的注入情况的信息为“当前正在注入缓存系统中的流媒体片段中有该视频内容的流媒体片段”时,Policy设备可以做出“无需将视频内容访问请求转发给SP”的策略;反之,当该用于表征视频内容的注入情况的信息为“当前正在注入缓存系统中的流媒体片段中没有该视频内容的流媒体片段”时,Policy设备则可以做出“需要将视频内容访问请求转发给SP”的策略。
[0117]Proxy Client,用于在接收到的从SP处获取流媒体片段的通知后,从SP处获取流媒体片段,并将获取到的流媒体片段提供给Video Cache。[0118]DFLS,用于根据Video Cache的查询,向Video Cache反馈允许注入Cache流媒体片段的信息,并根据Video Cache的请求,为待注入Cache的流媒体片段分配内容锁。
[0119]MDS,用于存储对应于OSD所存储的流媒体片段的元数据,并提供第一读写锁分配服务。具体而言,其可以在接收到Video Cache发送的用于请求为流媒体片段分配第一读写锁的消息后,为与该消息匹配的流媒体片段分配第一读写锁。
[0120]0SD,主要用于存储流媒体片段以及更新元数据。具体地,其可以接收并存储VideoCache向Cache中注入的流媒体片段,并在接收到Video Cache发送的用于指示OSD对注入完成的流媒体片段所对应的元数据进行修改的触发消息后,对由Video Cache完成注入的流媒体片段所对应的、由MDS进行保存的元数据进行更新。
[0121]基于上述系统架构,以下分别介绍3个具体的实施例。
[0122]实施例一
[0123]实施例一的实施场景为:多个UE并发访问同一视频内容,且Cache本地未命中该视频内容所对应的元数据。
[0124]该实施例场景下,可以采用如图7所示的步骤实现将该视频内容的流媒体片段注入Cache中。具体地,该些步骤包括:
[0125]步骤71,多个UE向Cache并发发送用于请求获取同一视频内容的流媒体片段的视频内容访问请求;
[0126]其中,不同UE发送的视频内容访问请求所请求获取的该视频内容的流媒体片段可能完全不同,或者也可能部分或完全相同。
[0127]步骤72,位于UE和Cache之间的Proxy Server对UE发送的视频内容访问请求进行拦截,并将拦截到的视频内容访问请求发送给Video Cache ;
[0128]步骤73, Video Cache根据Proxy Server发送的上述拦截到的视频内容访问请求,向MDS查询与该些拦截到的视频内容访问请求所请求获取的流媒体片段相对应的元数据;
[0129]其中,以视频内容的任意流媒体片段为例,其所对应的元数据可以为该流媒体片段的描述信息,该描述信息一般用于描述该流媒体片段的摘要。
[0130]步骤74,MDS在未查询到与视频内容访问请求所请求获取的流媒体片段相对应的元数据时,向Video Cache返回元数据未命中通知消息;
[0131]步骤75, Video Cache在接收到未命中通知消息后,将拦截到的视频内容访问请求通过Proxy Client转发给SP ;
[0132]步骤76, SP在接收到Proxy Client所转发的视频内容访问请求后,获取并通过Proxy Client向Video Cache发送与SP接收到的各视频内容访问请求所分别匹配的流媒体片段;
[0133]步骤77,Video Cache在接收到SP发送的流媒体片段后,将接收到的流媒体片段对应发送给步骤71中所述的各个UE ;
[0134]其中,Video Cache向上述各个UE中的每个UE发送流媒体片段的方式均可以包括:根据UE发送的视频内容访问请求所请求获取的流媒体片段的标识,将SP发送来的与该标识相匹配的流媒体片段发送给UE。其中,流媒体片段的标识可以但不限于是预先针对不同流媒体片段所设置的片段标识,也可以是用于表示流媒体片段在其所属的视频内容的中所处位置或位置区间的信息。
[0135]需要说明的是,由于一个流媒体片段往往是以一个视频图像帧序列的形式存在的,因此,流媒体片段在其所属的视频内容中所处的位置可以是视频图像帧序列的第η帧至第m帧视频图像在该视频图像帧序列中所在位置等。
[0136]步骤78,Video Cache将接收到的流媒体片段分别对应发送给步骤71中所述的各个UE的同时(或之后),Video Cache向MDS申请为该视频内容分配第一读写锁,即申请为该视频内容的所有流媒体片段分配第一读写锁,以允许该视频内容的每个流媒体片段都可被不同设备同时执行读操作;
[0137]步骤79, Video Cache在该视频内容被分配第一读写锁之后,向Policy设备查询注入策略;
[0138]可选的,Video Cache可以携带注入上下文信息,向Policy设备查询注入策略。
[0139]其中,这里所述的注入上下文信息可以但不限于是下述信息中的一种或多种:
[0140]1、步骤71中所述的多个UE中的每个UE分别与Cache之间的传输链路的传输速
率信息;
[0141]2、表征所述多个UE中的每个UE的信息传输性能的信息;
[0142]3、表征所述多个UE中的每个UE分别与Cache之间的传输链路的额定带宽的信
肩、O
[0143]需要说明的是,传输链路的传输速率一般是指传输链路平均每秒钟能够传输的最多字节数,其单位可以为kbps ;UE的信息传输性能一般也可以用UE平均每秒钟能够传输的最多字节数,和/或UE每传输IM大小的数据流需要耗费的处理资源(这里的处理资源可以但不限于为电量)等进行衡量,UE平均每秒钟能够传输的最多字节数越多,和/或UE每传输IM大小的数据流需要耗费的处理资源越少,UE的信息传输性能越高,反之则UE的信息传输性能越低;而UE与Cache之间的传输链路的额定带宽一般是指UE与Cache之间的传输链路的最大带宽,单位可以为M。
[0144]步骤710,Policy设备根据表征上述多个UE和Cache所在的无线网络的拥塞情况的信息,和/或表征Cache中待存储该视频内容的流媒体片段的磁盘拥塞情况的信息等,判断是否允许向Cache中注入流媒体片段;
[0145]比如,若Policy设备根据表征上述多个UE和Cache所在的无线网络的拥塞情况的信息,判断出该无线网络拥塞;或根据表征Cache中待存储该流媒体片段的磁盘拥塞情况的信息,判断出该磁盘拥塞,则都可以判定注入策略为“当前不允许向Cache中注入流媒体片段”,而若判断出不存在网络拥塞和磁盘拥塞,则判定注入策略为“当前允许向Cache中注入流媒体片段”。
[0146]可选的,在Policy设备判定注入策略为“当前允许向Cache中注入流媒体片段”后,可以根据Video Cache所发送来的注入上下文信息,选取与Cache之间的传输链路的传输速率比较高、且与Cache之间的传输链路的额定带宽比较大、且信息传输性能比较高的UE所对应的传输链路,作为用于向Cache Server注入流媒体片段的传输链路。或者,Policy设备判定注入策略为“当前允许向Cache中注入流媒体片段”后,也可以根据VideoCache所发送来的注入上下文信息,直接选取与Cache之间的传输链路的传输速率最高的传输链路,作为用于向Cache Server注入流媒体片段的流媒体片段的传输链路。[0147]步骤711, Policy设备向Video Cache发送Policy设备确定出的注入策略;
[0148]需要说明的是,当注入策略为“当前允许向Cache中注入流媒体片段”,且Policy设备还选取了用于注入流媒体片段的传输链路时,Policy设备还可以将选取的传输链路的信息也发送给Video Cache。
[0149]步骤712, Video Cache在接收到“当前允许向Cache中注入流媒体片段”这样的注入策略时,利用不同UE与Cache Server之间的传输链路,向DFLS申请为待注入Cache的流媒体片段分配内容锁;
[0150]其中需要说明的是,若视频内容的某流媒体片段被分配了内容锁,则表明用于存储该流媒体片段的存储空间进行了锁定,并且,该流媒体片段在同一时间仅允许被一个设备执行写操作。在该内容锁被释放之前,该存储空间仅能被写入该流媒体片段,且在该内容锁被释放之前,该存储空间仅能被不重复地写入一次该流媒体片段。
[0151]具体地,Video Cache可以将待注入Cache的流媒体片段的信息提供给DFLS。DFLS在接收到Video Cache提供的该信息后,会判断当前是否正在向Cache中注入该视频内容。进而DFLS可以根据判断结果,进一步判断是否为该视频内容的流媒体分片分配内容锁。比如,若判断出当前正在向Cache中注入该视频内容,则不再为该视频内容的流媒体片段分配内容锁;或者,虽然判断出当前正在向Cache中注入该视频内容,但仅仅是会将该视频内容的一部分流媒体片段注入Cache,则可以为该视频内容中的当前不会被注入Cache的一部分流媒体片段分配内容锁。
[0152]可选的,若Policy设备将选取的传输链路的信息发送给了 Video Cache,则VideoCache提供给DFLS的流媒体片段的信息可以是=Policy设备选取的传输链路所对应的UE在步骤71中所请求的流媒体片段的信息。而对于未被Policy设备选取的传输链路而言,由于Video Cache可以不对相应的流媒体片段进行注入,因此也就可以不用将未被Policy设备选取的传输链路所对应的流媒体片段的信息提供给DFLS以请求分配内容锁。
[0153]可选的,若Video Cache分多次将待注入Cache的流媒体片段的信息提供给DFLS,且Video Cache在先后提供给DFLS的待注入Cache的流媒体片段的信息中,有分别对应不同传输链路的相同的待注入Cache的流媒体片段的信息,那么,DFLS可以为先接收到的该待注入Cache的流媒体片段的信息所表示的流媒体片段分配内容锁,而不再为在后重复接收到的该待注入Cache的流媒体片段的信息所表示的流媒体片段分配内容锁。
[0154]步骤713,DFLS在完成为Video Cache所申请分配内容锁的待注入Cache的流媒体片段分配内容锁后,向Video Cache反馈被分配了内容锁的流媒体片段的信息,即向VideoCache反馈可以写入被锁定的存储空间中的流媒体片段的信息;
[0155]按照前文的描述可知,DFLS可能只会为待注入Cache的视频内容中的部分流媒体片段分配内容锁。需要说明的是,无论DFLS是为待注入Cache的视频内容中的全部还是部分流媒体片段分配了内容锁,其在向Video Cache进行反馈时,反馈的可以仅是被分配了内容锁的流媒体片段的信息,对于未被分配内容锁的待注入Cache的流媒体片段的信息,则可以不用进行反馈。
[0156]步骤714, Video Cache根据DFLS反馈的被分配了内容锁的流媒体片段的信息,利用UE与Cache Server之间的传输链路,向OSD中注入与DFLS反馈的被分配了内容锁的流媒体片段的信息相对应流媒体片段;[0157]步骤715,Video Cache在完成将被分配了内容锁的流媒体片段完全注入OSD后,向MDS发送元数据更新触发消息,以指示MDS:完成对被分配给流媒体片段的第一读写锁的释放;更新与被分配了内容锁的流媒体片段所属的视频内容相对应的元数据;协助完成对被分配给流媒体片段的内容锁的释放;
[0158]比如,针对内容锁的释放而言,MDS在接收到上述元数据更新触发消息后,向DFLS发送内容锁释放请求,以请求对当前已经完全注入OSD的被分配了内容锁的流媒体片段的内容锁进行释放。
[0159]实施例二
[0160]实施例二的实施场景为:多个UE并发访问同一视频内容,且Cache本地部分命中该视频内容所对应的元数据。
[0161]该实施例场景下,可以采用如图8所示的步骤实现将该视频内容的流媒体片段注入Cache中。具体地,该些步骤包括:
[0162]步骤81,多个UE向Cache并发发送用于请求获取同一视频内容的视频内容访问请求;
[0163]其中,不同UE发送的视频内容访问请求所请求获取的该视频内容的流媒体片段可能完全不同,或者也可能部分或完全相同。
[0164]步骤82,位于UE和Cache之间的Proxy Server对UE发送的视频内容访问请求进行拦截,并将拦截到的视频内容访问请求发送给Video Cache ;
[0165]步骤83, Video Cache根据Proxy Server发送的上述拦截到的视频内容访问请求,向MDS查询与该些拦截到的视频内容访问请求所请求获取的视频内容相对应的元数据;
[0166]步骤84,假设MDS查询到当前Cache中存在与上述拦截到的视频内容访问请求所请求获取的视频内容相对应的元数据,但该元数据仅能与请求获取的视频内容中的一部分流媒体片段相对应时,即查询到Cache中的与该视频内容对应的元数据不完整时,MDS向Video Cache返回用于通知元数据部分本地命中的通知消息;
[0167]步骤85, Video Cache在接收到上述通知消息后,向Policy设备查询是否向SP转发拦截到的视频内容访问请求;
[0168]步骤86, Policy设备根据Video Cache的查询,判断视频内容访问请求所请求的视频内容中的、与元数据的不完整部分相对应的流媒体片段在该视频内容的所有流媒体片段中的占比是否小于预设比例阈值,并判断元数据的不完整部分所对应的流媒体片段注入到Cache所需的时间是否小于预设时间阈值;
[0169]步骤87,假设Policy设备判断出所述占比小于预设比例阈值,且元数据的不完整部分所对应的流媒体片段注入到Cache所需的时间小于预设时间阈值,则确定执行“断点续传策略”,从而将该“断点续传策略”的信息指示给VideoCache ;
[0170]需要说明的是,这里所说的“断点续传策略”是指:首先从SP处获取视频内容访问请求所请求的视频内容中的、与元数据的不完整部分相对应的流媒体片段;然后再将该流媒体片段注入Cache ;最后,在完成将该流媒体片段注入Cache后,再从Cache获取视频内容访问请求所请求的视频内容的流媒体片段,并反馈给UE。
[0171]此外还需要说明的是,若Policy设备判断出所述占比不小于预设比例阈值,或元数据的不完整部分所对应的内容注入到Cache所需的时间不小于预设时间阈值,则确定执行“非断点续传策略”。其中,“非断点续传策略”是指:从SP处获取视频内容访问请求所请求的视频内容中的、与元数据的不完整部分相对应的流媒体片段;然后再将从SP处获取到的该流媒体片段,以及视频内容访问请求所请求的视频内容的其他流媒体片段反馈给UE ;最后,再将从SP处获取到的流媒体片段注入Cache。
[0172]比如,当确定出视频内容访问请求所请求的视频内容中的、与元数据的不完整部分相对应的流媒体片段在该视频内容所包含的所有流媒体片段中的占比仅为20%,其小于预设比例阈值30% ;且确定出该视频内容中的、与元数据的不完整部分相对应的流媒体片段注入到Cache所需的时间为0.08s,其小于预设时间阈值0.1s时,就可以确定执行“断点续传策略”。
[0173]步骤88,Video Cache在接收到Policy设备发送的“断点续传策略”的信息后,将拦截到的视频内容访问请求通过Proxy Client转发给SP ;
[0174]步骤89, SP在接收到Proxy Client所转发的视频内容访问请求后,获取并通过Proxy Client向Video Cache发送与SP接收到的各视频内容访问请求所分别匹配的流媒体片段;
[0175]步骤810,由于前文假设Policy设备向Video Cache发送的是“断点续传策略”的信息,从而Video Cache在接收到SP发送的视频信息的流媒体片段后,根据Policy设备发送的“断点续传策略”的信息,确定并执行操作:向MDS申请为该视频内容分配第一读写锁;
[0176]而若Video Cache所接收到的由Policy设备发送的信息为“非断点续传策略”的信息,则Video Cache在接收到SP发送的流媒体片段后,根据Policy设备发送的该“非断点续传策略”的信息,确定并执行操作:向MDS申请为该视频内容分配第一读写锁;
[0177]步骤811,Video Cache在该视频内容被分配第一读写锁之后,携带注入上下文信息,向Policy设备查询注入策略;
[0178]可选的,Video Cache也不携带注入上下文信息而直接向Policy设备查询注入策略。
[0179]步骤812,Policy设备根据表征上述多个UE和Cache所在的无线网络的拥塞情况的信息,和/或表征Cache中待存储该视频内容的流媒体片段的磁盘拥塞情况的信息等,判断是否允许向Cache中注入视频信息;
[0180]比如,若Policy设备根据表征上述多个UE和Cache所在的无线网络的拥塞情况的信息,判断出该无线网络拥塞;或根据表征Cache中待存储该视频内容的流媒体片段的磁盘拥塞情况的信息,判断出该磁盘拥塞,则都可以判定注入策略为“当前不允许向Cache中注入流媒体片段”,而若判断出不存在网络拥塞和磁盘拥塞,则判定注入策略为“当前允许向Cache中注入流媒体片段”。
[0181]可选的,在Policy设备判定注入策略为“当前允许向Cache中注入流媒体片段”后,可以根据Video Cache所发送来的注入上下文信息,选取与Cache之间的传输链路的传输速率比较高、且与Cache之间的传输链路的额定带宽比较大、且信息传输性能比较高的UE所对应的传输链路,作为注入流媒体片段的传输链路。
[0182]步骤813, Policy设备向Video Cache发送Policy设备确定出的注入策略;
[0183]需要说明的是,当注入策略为“当前允许向Cache中注入流媒体片段”,且Policy设备还选取了用于注入流媒体片段的传输链路时,Policy设备还可以将选取的传输链路的信息也发送给Video Cache。
[0184]步骤814, Video Cache在接收到“当前允许向Cache中注入流媒体片段”这样的注入策略时,利用不同UE与Cache Server之间的传输链路,向DFLS申请为待注入Cache的流媒体片段分配内容锁;
[0185]步骤815,DFLS从Video Cache所申请分配内容锁的待注入Cache的流媒体片段中确定出能够被分配内容锁的流媒体片段,并为确定出的流媒体片段分配内容锁后,向VideoCache反馈被分配了内容锁的流媒体片段的信息;
[0186]步骤816,Video Cache根据DFLS反馈的被分配了内容锁的流媒体片段的信息,利用UE与Cache Server之间的传输链路,向OSD中注入与DFLS反馈的被分配了内容锁的流媒体片段的信息相对应的视频信息的流媒体片段;
[0187]步骤817,Video Cache在完成将被分配了内容锁的流媒体片段完全注入OSD后,向MDS发送元数据更新触发消息,以指示MDS:完成对被分配给待注入Cache的该视频内容的第一读写锁的释放;更新与待注入Cache的视频内容相对应的元数据;协助完成对被分配给该视频内容的流媒体片段的内容锁的释放;
[0188]针对内容锁的释放而言,MDS在接收到上述元数据更新触发消息后,向DFLS发送内容锁释放请求,以请求对当前已经完全注入OSD的被分配了内容锁的流媒体片段所被分配的内容锁进行释放。
[0189]步骤818, Video Cache将从Cache处获取到的、对应于拦截到的视频内容访问请求的流媒体片段发送给相应的UE。
[0190]实施例二中,由于将对应于元数据的不完整部分的流媒体片段注入到了 Cache,从而在步骤818中,Video Cache从Cache处获取到的流媒体片段就可以与拦截到的视频内容访问请求完全匹配,可以满足UE的需求。
[0191]实施例三
[0192]实施例三的实施场景为:多个UE并发访问同一视频内容,且Cache本地完全命中该视频内容所对应的元数据,但该元数据所表示的存储于Cache中视频内容不完整。
[0193]该实施例场景下,可以采用如图9所示的步骤实现将该视频内容的流媒体片段注入Cache中。具体地,该些步骤包括:
[0194]步骤91,多个UE向Cache并发发送用于请求获取同一视频内容的视频内容访问请求;
[0195]步骤92,位于UE和Cache之间的Proxy Server对UE发送的视频内容访问请求进行拦截,并将拦截到的视频内容访问请求发送给Video Cache ;
[0196]步骤93, Video Cache根据Proxy Server发送的上述拦截到的视频内容访问请求,向MDS查询与该些拦截到的视频内容访问请求所请求获取的视频信息相对应的元数据;
[0197]步骤94,假设MDS查询到当前Cache中存在与上述拦截到的视频内容访问请求所请求获取的视频内容对应的元数据,但Cache保存的该视频内容的流媒体片段不完整,则向Video Cache返回用于通知元数据本地完全命中的通知消息,并在该通知消息中携带Cache保存的、与上述拦截到的视频内容访问请求所请求获取的流媒体片段;[0198]此外,该通知消息中还可以携带用于表示Cache保存的该视频内容的流媒体片段不完整的信息。
[0199]步骤95,Video Cache在接收到上述通知消息后,将该通知消息中携带的所有流媒体片段发送给相应的UE ;
[0200]步骤96, Video Cache根据通知消息中携带的用于表示Cache保存的该视频内容的流媒体片段不完整的信息,向Policy设备查询是否获取Cache保存的该视频内容的不完整的流媒体片段,即查询内容获取策略;
[0201]步骤97,Policy设备根据Cache中已注入的该视频内容的流媒体片段在该视频内容所包含的所有流媒体片段中的占比,和/或当前注入Cache的该视频内容的流媒体片段的注入速率信息,判断是否需要从SP处获得该视频内容的未保存于Cache中的流媒体片段,即确定内容获取策略;
[0202]比如,当Policy设备判断出已注入的该视频内容的流媒体片段在该视频内容所包含的所有流媒体片段中的占比小于预先规定的比例阈值,比如50%时;或判断出当前注入Cache的该视频内容的流媒体片段的注入速率小于预先规定的速率阈值时,都可以判断需要从SP处获得该视频内容的未保存于Cache中的流媒体片段;
[0203]步骤98,Policy设备向Video Cache发送确定出的内容获取策略;
[0204]实施例三中,假设Policy设备发送的内容获取策略为“需要从SP处获得该视频内容的未保存于Cache中的流媒体片段”。
[0205]步骤99,UE接收Policy设备发送的内容获取策略,并在该内容获取策略为“需要从SP处获得该视频内容的未保存于Cache中的流媒体片段”时,通过Proxy Client向SP请求获取该视频内容的未保存于Cache中的流媒体片段;
[0206]步骤910, SP获取Proxy Client所请求的该视频内容的未保存于Cache中的流媒体片段,并通过Proxy Client向Video Cache发送该视频内容的未保存于Cache中的流媒体片段;
[0207]步骤911, Video Cache向MDS申请为该视频内容分配第一读写锁;
[0208]步骤912,Video Cache在该视频内容被分配第一读写锁之后,向DFLS申请为上述的该视频内容的未保存于Cache中的流媒体片段分配内容锁;
[0209]步骤913,DFLS在完成为该视频内容的未保存于Cache中的流媒体片段分配内容锁后,向Video Cache反馈被分配了内容锁的该视频内容的未保存于Cache中的流媒体片段的息;
[0210]步骤914, Video Cache根据DFLS反馈的被分配了内容锁的该视频内容的未保存于Cache中的流媒体片段,利用UE与Cache Server之间的传输链路,向OSD中注入与DFLS反馈的被分配了内容锁的该视频内容的流媒体片段;
[0211]步骤915,Video Cache在完成将被分配了内容锁的该视频内容的流媒体片段完全注入OSD后,向MDS发送元数据更新触发消息,以指示MDS:完成对被分配给待注入Cache的视频内容的第一读写锁的释放;更新与待注入Cache的视频内容相对应的元数据;协助完成对被分配给流媒体片段的内容锁的释放。
[0212]上述实施例一、实施例二和实施例三可以带来以下有益效果:
[0213]实现了流媒体片段的分布式并行注入,大大提升了视频热点变化快、视频特殊行为和复杂场景下的注入效率和成功率,缓解了视频长尾效应带来的影响,进而提升了视频内容在Cache的命中率,节省上行骨干网的流量,降低了用户访问时延,提升了用户体验。
[0214]出于本发明实施例提供的一种流媒体片段注入缓存系统的方法的发明构思,本发明实施例还提供一种流媒体片段注入缓存系统的设备,该设备的具体结构示意图如图10所示,包括下述功能单元:
[0215]流媒体片段确定单元101,用于确定待注入缓存系统的至少一个流媒体片段;
[0216]请求发送单元102,用于向缓存系统发送包含注入范围信息的读写锁分配请求;以使缓存系统根据读写锁分配请求,为注入范围信息所指示的一个或多个流媒体片段分配读写锁;其中,注入范围信息包括待注入缓存系统的各个流媒体片段在其所属的流媒体内容中的位置或位置区间;
[0217]流媒体片段注入单元103,用于利用缓存系统与至少一个终端之间的传输链路,将所述至少一个流媒体片段中的分配了读写锁的流媒体片段注入缓存系统。
[0218]其中,被分配了读写锁的流媒体片段在同一时间仅能被一个终端执行写操作。
[0219]可选的,本发明实施例提供的该设备还包括:目标传输链路选取单元,用于根据各个终端分别与缓存系统之间的传输链路的注入上下文信息,从所有传输链路中选取出目标传输链路。
[0220]基于该传输链路选取单元的功能,流媒体片段注入单元103具体可以用于:利用目标传输链路,将所述至少一个流媒体片段中分配了读写锁的流媒体片段注入缓存系统。
[0221]对应于流媒体片段确定单元101功能的一种实现方式,可以将该流媒体片段确定单元101进一步划分为以下功能子单元:
[0222]接收子单元,用于接收终端发送的流媒体内容访问请求;其中,流媒体内容访问请求用于请求访问流媒体内容;
[0223]查询子单元,用于向缓存系统查询与终端发送的流媒体内容访问请求相对应的元数据;
[0224]接收子单元,用于根据缓存系统反馈的查询结果,从服务提供方SP处获得所述至少一个流媒体片段。
[0225]其中,上述查询结果用于表示是否在缓存系统中查询到元数据,以及在缓存系统中查询到的所述元数据所对应的流媒体内容的流媒体片段。
[0226]可选的,上述接收子单元具体可以用于:当查询结果表示没有在缓存系统中查询到该元数据时,从SP处获得流媒体内容访问请求所请求的流媒体内容的全部流媒体片段。
[0227]进一步地,接收子单元还可以用于:当查询结果表示在缓存系统中查询到元数据,且元数据对应流媒体内容访问请求所请求的流媒体内容中的内容流媒体片段时,从SP处获得流媒体内容访问请求所请求的流媒体内容中,该元数据未能对应的流媒体片段。
[0228]进一步地,接收子单元还可以用于:在查询结果表示在缓存系统中查询到元数据,且元数据对应流媒体内容访问请求所请求的流媒体内容的流媒体片段中的全部内容时,若确定出缓存系统未存储流媒体内容访问请求所请求的流媒体内容的所有流媒体片段,则从SP处获得流媒体内容访问请求所请求的流媒体内容的未存储于缓存系统中的流媒体片段。
[0229]可选的,接收子单元可以根据流媒体内容访问请求所请求的流媒体内容的所有流媒体片段中,已注入缓存系统的流媒体片段的占比,和/或当前注入流媒体片段到缓存系统中的注入速率信息,判断是否需要从SP处获得流媒体内容访问请求所请求的流媒体内容的未存储于缓存系统中的流媒体片段;在判断结果为需要时,从SP处获得流媒体内容访问请求所请求的流媒体内容的未存储于缓存系统中的流媒体片段。
[0230]可选的,本发明实施例提供的该设备还可以包括:
[0231 ] 判断单元,用于判断流媒体内容访问请求所请求的流媒体内容的流媒体片段中,所述元数据未能对应的流媒体片段的占比是否小于预设比例阈值,以及所述元数据未能对应的流媒体片段注入到缓存系统所需的时间是否小于预设时间阈值;
[0232]内容获取单元,用于在判断出所述占比小于预设比例阈值,且所述时间小于预设时间阈值时,在将从SP处获得的所述元数据未能对应的流媒体片段注入缓存系统后,从缓存系统处获取流媒体内容访问请求所请求的流媒体内容的流媒体片段;
[0233]内容发送单元,用于将从缓存系统处获取的流媒体内容访问请求所请求的流媒体内容的流媒体片段提供给发送该流媒体内容访问请求的终端。
[0234]出于本发明实施例提供的第二种流媒体流媒体片段注入缓存系统的方法,本发明实施例还提供一种缓存系统,该缓存系统的具体结构示意图如图11所示,包括下述功能单元:
[0235]分配请求接收单元111,用于接收读写锁分配请求;其中,读写锁分配请求中包含注入范围信息;注入范围信息包括待注入缓存系统的一个或多个流媒体片段在其所属的流媒体内容中的位置或位置区间;
[0236]流媒体片段确定单元112,用于根据注入范围信息,从待注入缓存系统的流媒体内容的流媒体片段中,确定出能够被分配读写锁的流媒体片段;
[0237]锁分配单元113,用于为确定出的流媒体片段分配读写锁;
[0238]信息发送单元114,用于在为确定出的流媒体片段分配读写锁后,发送读写锁分配响应消息给终端,以使终端将被分配了读写锁的流媒体片段注入缓存系统;其中,被分配了读写锁的流媒体片段在同一时间仅能被一个终端执行写操作;
[0239]流媒体片段接收单元115,用于接收被分配了读写锁的流媒体片段;
[0240]存储单元116,用于存储被分配了读写锁的流媒体片段。
[0241]可选的,本发明实施例提供的该缓存系统还可以包括:
[0242]注入查询请求接收单元,用于在流媒体片段接收单元115接收被分配了读写锁的流媒体片段之前,接收用于查询是否能向缓存系统注入被分配了读写锁的流媒体片段的注入查询请求;
[0243]判断单元,用于根据缓存系统所在的无线网络的拥塞情况的,和/或缓存系统的磁盘的拥塞情况息,判断是否能向缓存系统注入被分配了读写锁的流媒体片段;
[0244]消息发送单元,用于在判断出能向缓存系统注入被分配了读写锁的流媒体片段时,发送用于通知可以向缓存系统注入被分配了读写锁的流媒体片段的响应消息。
[0245]可选的,图11所示的缓存系统,或者在图11所示结构的基础上还进一步包括注入查询请求接收单元、判断单元和消息发送单元的缓存系统,还可以进一步包括下述功能单元:
[0246]元数据查询请求接收单元,用于在接收读写锁分配请求之前,接收元数据查询请求;元数据查询请求用于查询与待注入缓存系统的流媒体片段相对应的元数据;[0247]结果发送单元,用于发送查询结果;其中,查询结果用于表示是否在缓存系统中查询到元数据,以及在缓存系统中查询到的元数据所对应的流媒体内容的流媒体片段。
[0248]可选的,上述各缓存系统还可以进一步包括下述功能单元:
[0249]释放指令接收单元,用于在存储单元存储被分配了读写锁的流媒体片段后,接收读写锁释放指令;
[0250]释放单元,用于根据读写锁释放指令,释放读写锁;
[0251]更新单元,用于根据读写锁释放指令,更新元数据。
[0252]出于本发明实施例提供的第一种流媒体片段注入缓存系统的方法的发明构思,本发明实施例还提供一种流媒体片段注入缓存系统的设备。该设备的具体结构示意图如图12所示,包括下述功能实体:
[0253]处理器121,用于确定待注入缓存系统的至少一个流媒体片段;
[0254]信号收发器122,用于向缓存系统发送包含注入范围信息的读写锁分配请求,以使缓存系统根据读写锁分配请求,为所述注入范围信息所指示的一个或多个流媒体片段分配读写锁;并利用缓存系统与至少一个终端之间的传输链路,将所述至少一个流媒体片段中分配了读写锁的流媒体片段注入缓存系统;
[0255]其中,注入范围信息包括待注入缓存系统的各个流媒体片段在其所属的流媒体内容中的位置或位置区间。
[0256]其中,被分配了读写锁的流媒体片段在同一时间仅能被一个终端执行写操作。
[0257]可选的,所述处理器121还可以用于根据各个终端分别与缓存系统之间的传输链路的注入上下文信息,从有传输链路中选取出目标传输链路。则信号收发器122具体可以用于利用目标传输链路,将所述至少一个流媒体片段中被分配了读写锁的流媒体片段注入缓存系统。
[0258]可选的,信号收发器122具体可以用于获得终端发送的流媒体内容访问请求(其中,流媒体内容访问请求用于请求访问所述流媒体内容);并向缓存系统查询与终端发送的流媒体内容访问请求相对应的元数据;而处理器121则具体可以用于根据缓存系统反馈的查询结果,控制信号收发器122从服务提供方SP处获得所述至少一个流媒体片段。其中,上述查询结果用于表示是否在缓存系统中查询到元数据,以及在缓存系统中查询到的元数据所对应的流媒体内容的流媒体片段。
[0259]可选的,处理器121可以在查询结果表示没有在缓存系统中查询到元数据时,控制控制信号收发器122从SP处获得流媒体内容访问请求所请求的流媒体内容的全部流媒体片段。
[0260]进一步地,处理器121还可以在查询结果表示在缓存系统中查询到元数据,且元数据对应流媒体内容访问请求所请求的流媒体内容中的部分流媒体片段时,控制控制信号收发器122从SP处获得流媒体内容访问请求所请求的流媒体内容中,该元数据未能对应的流媒体片段。
[0261]进一步地,处理器121还可以在查询结果表示在缓存系统中查询到元数据,且元数据对应流媒体内容访问请求所请求的流媒体内容中的全部流媒体片段时,若确定出缓存系统未存储流媒体内容访问请求所请求的流媒体内容的所有流媒体片段,则控制控制信号收发器122从SP处获得流媒体内容访问请求所请求的流媒体内容的未存储于缓存系统中的流媒体片段。
[0262]具体而言,处理器121控制信号收发器122从SP处获得流媒体内容访问请求所请求的流媒体内容的未存储于缓存系统中的流媒体片段的过程可以包括:
[0263]处理器121根据流媒体内容访问请求所请求的流媒体内容的所有流媒体片段中,已注入缓存系统的流媒体片段的占比,和/或当前注入流媒体片段到缓存系统的注入速率信息,判断是否需要从SP处获得流媒体内容访问请求所请求的流媒体内容的未存储于缓存系统中的流媒体片段;
[0264]处理器121在判断结果为需要时,控制信号收发器122从SP处获得流媒体内容访问请求所请求的流媒体内容的未存储于缓存系统中的流媒体片段。
[0265]可选的,处理器121还可以用于判断流媒体内容访问请求所请求的流媒体内容中,所述元数据未能对应的流媒体片段的占比是否小于预设比例阈值,以及元数据未能对应的流媒体片段注入到缓存系统所需的时间是否小于预设时间阈值;并在判断出占比小于预设比例阈值,且时间小于预设时间阈值时,控制信号收发器122将从SP处获得元数据未能对应的流媒体片段注入缓存系统后,处理器121可以控制信号收发器122从缓存系统处获取流媒体内容访问请求所请求的流媒体内容的流媒体片段,并控制信号收发器122将从缓存系统处获取的流媒体内容访问请求所请求的流媒体内容的流媒体片段提供给发送流媒体内容访问请求的终端。
[0266]可选的,本发明实施例提供的缓存系统中的处理器121可以在控制信号收发器122将分配了读写锁的流媒体内容的流媒体片段注入缓存系统后,进一步执行释放读写锁并更新元数据的操作。
[0267]出于本发明实施例提供的第二种流媒体流媒体片段注入缓存系统的方法的发明构思,本发明实施例还提供一种缓存系统。该缓存系统的具体结构示意图如图13所示,包括信号收发器131、处理器132和存储器133。该些功能实体的功能介绍如下:
[0268]信号收发器131,用于接收读写锁分配请求;并在处理器132为确定出的流媒体片段分配读写锁后,发送读写锁分配响应消息给终端,以使终端将被分配了读写锁的流媒体片段注入缓存系统;此外还用于接收被分配了读写锁的流媒体片段。需要说明的是,将流媒体片段注入缓存系统并不限于是由终端完成的,而可能是终端与缓存系统之间的可拦截终端发送的请求消息的一个第三方设备来将流媒体片段注入缓存系统,在这种情形下,读写锁分配响应消息应发送给上述第三方设备。
[0269]被分配了读写锁的流媒体片段在同一时间仅能被一个终端执行写操作。
[0270]其中,读写锁分配请求中包含注入范围信息。注入范围信息包括待注入缓存系统的一个或多个流媒体片段在其所属的流媒体内容中的位置或位置区间。
[0271]处理器132,用于根据注入范围信息,从待注入缓存系统的流媒体片段中,确定出能够被分配读写锁的流媒体片段,并为确定出的流媒体片段分配读写锁;此外处理器132还用于将信号收发器131获得的通过传输链路注入缓存系统的、被分配了读写锁的流媒体片段存储到存储器133中。
[0272]存储器133,用于存储信号收发器131接收的被分配了读写锁的流媒体片段。
[0273]可选的,信号收发器131还可以用于在存储器133存储注入缓存系统的、被分配了读写锁的流媒体内容的流媒体片段之前,接收用于查询是否能向缓存系统注入所述被分配了读写锁的流媒体片段的注入查询请求;处理器132还可以用于根据缓存系统所在的网络的拥塞情况,和/或缓存系统的磁盘的拥塞情况,判断是否能向缓存系统注入被分配了读写锁的流媒体片段;并在判断出能向缓存系统注入被分配了读写锁的流媒体片段时,控制信号收发器131发送用于通知可以向缓存系统注入被分配了读写锁的流媒体片段的响应消息。
[0274]可选的,信号收发器131还可以用于在接收读写锁分配请求之前,接收元数据查询请求;并发送查询结果。其中,元数据查询请求用于查询与待利用传输链路注入缓存系统的流媒体内容的流媒体片段相对应的元数据;而查询结果则用于表示是否在缓存系统中查询到元数据,以及在缓存系统中查询到的元数据所对应的流媒体内容的流媒体片段。
[0275]可选的,信号收发器131还可以用于在存储器133存储被分配了读写锁的流媒体内容的流媒体片段后,接收读写锁释放指令。处理器132还可以用于根据信号收发器131接收的该读写锁释放指令释放读写锁,并更新元数据。
[0276]本发明实施例提供的方案由于为待注入到缓存系统中的流媒体内容的流媒体片段分配了读写锁,从而使得被分配了读写锁的流媒体内容的流媒体片段在同一时间仅能被一个终端执行写操作,由于本发明实施例提供的该方案可以使得对于同一流媒体内容的分别被分配了读写锁的不同流媒体片段的写操作之间不会发生冲突,因此可以支持流媒体内容的不同流媒体片段并发注入到缓存系统中。
[0277]本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
[0278]本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的设备。
[0279]这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令设备的制造品,该指令设备实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0280]这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0281]尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
[0282]显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
【权利要求】
1.一种流媒体片段注入缓存系统的方法,其特征在于,包括: 确定待注入缓存系统的至少一个流媒体片段; 向缓存系统发送包含注入范围信息的读写锁分配请求,以使所述缓存系统根据所述读写锁分配请求,为所述注入范围信息所指示的一个或多个流媒体片段分配读写锁;其中,所述注入范围信息包括待注入所述缓存系统的各个流媒体片段在其所属的流媒体内容中的位置或位置区间; 利用所述缓存系统与至少一个终端之间的传输链路,将所述至少一个流媒体片段中分配了读写锁的流媒体片段注入所述缓存系统; 其中,被分配了读写锁的流媒体片段在同一时间仅能被一个终端执行写操作。
2.如权利要求1所述的方法,其特征在于,在将所述至少一个流媒体片段中分配了读写锁的流媒体片段注入所述缓存系统之前,还包括: 根据各个终端与所述缓存系统之间的传输链路的注入上下文信息,从所有传输链路中选取出目标传输链路; 所述利用所述缓存系统与至少一个终端之间的传输链路,将所述至少一个流媒体片段中分配了读写锁的流媒体片段注入所述缓存系统,包括: 利用所述目标传输链路,将所述至少一个流媒体片段中分配了读写锁的流媒体片段注入所述缓存系统。
3.如权利要求2所述的方法,其特征在于,所述注入上下文信息至少包括下述信息中的一种: 传输速率信息;` 信息传输性能的信息; 额定带宽的信息。
4.如权利要求1所述的方法,其特征在于,确定待注入缓存系统的至少一个流媒体片段,具体包括: 接收终端发送的流媒体内容访问请求;其中,所述流媒体内容访问请求用于请求访问流媒体内容; 向所述缓存系统查询与所述流媒体内容访问请求相对应的元数据; 根据所述缓存系统反馈的查询结果,从服务提供方SP处获得所述流媒体内容访问请求所请求的流媒体内容的至少一个流媒体片段; 其中,所述查询结果用于表示是否在所述缓存系统中查询到所述元数据,以及在所述缓存系统中查询到的所述元数据所对应的流媒体内容的片段流媒体片段。
5.如权利要求4所述的方法,其特征在于,根据所述查询结果,从所述SP处获得所述至少一个流媒体片段,具体包括: 当所述查询结果表示没有在所述缓存系统中查询到所述元数据时,从所述SP处获得所述流媒体内容访问请求所请求的流媒体内容的全部流媒体片段。
6.如权利要求5所述的方法,其特征在于,还包括: 当所述查询结果表示在所述缓存系统中查询到所述元数据,且所述元数据对应所述流媒体内容访问请求所请求的所述流媒体内容中的部分流媒体片段时,从所述SP处获得所述流媒体内容访问请求所请求的流媒体内容中,所述元数据未能对应的流媒体片段。
7.如权利要求6所述的方法,其特征在于,所述方法还包括: 判断所述流媒体内容访问请求所请求的流媒体内容中,所述元数据未能对应的流媒体片段的占比是否小于预设比例阈值,以及所述元数据未能对应的流媒体片段注入到所述缓存系统所需的时间是否小于预设时间阈值; 在判断出所述占比小于预设比例阈值,且所述时间小于预设时间阈值时,在将从所述SP处获得的所述元数据未能对应的流媒体片段注入所述缓存系统后,从所述缓存系统处获取所述流媒体内容访问请求所请求的流媒体内容的流媒体片段; 将从所述缓存系统处获取的所述流媒体内容访问请求所请求的流媒体内容的流媒体片段提供给发送所述流媒体内容访问请求的终端。
8.如权利要求4~7任一所述的方法,其特征在于,所述方法还包括: 当所述查询结果表示在所述缓存系统中查询到所述元数据,且所述元数据对应所述流媒体内容访问请求所请求的流媒体内容中的全部流媒体片段时,若确定所述缓存系统未存储所述流媒体内容访问请求所请求的流媒体内容的所有流媒体片段,则从所述SP处获得所述流媒体内容访问请求所请求的流媒体内容中未存储于所述缓存系统中的流媒体片段。
9.如权利要求8所述的方法,其特征在于,从所述SP处获得所述流媒体内容访问请求所请求的流媒体内容中的未存储于所述缓存系统中的流媒体片段,具体包括: 根据所述流媒体内容访问请求所请求的流媒体内容的所有流媒体片段中,已注入所述缓存系统的流媒体片段的占比,和/或当前注入流媒体片段到所述缓存系统的注入速率信息,判断是否需要从所述SP处 获得所述流媒体内容访问请求所请求的流媒体内容的未存储于所述缓存系统中的流媒体片段; 在判断结果为需要时,从所述SP处获得所述流媒体内容访问请求所请求的流媒体内容的未存储于所述缓存系统中的流媒体片段。
10.如权利要求4~9任一所述的方法,其特征在于,将所述分配了所述读写锁的流媒体片段注入所述缓存系统后,所述方法还包括: 触发所述缓存系统释放所述读写锁,并更新所述元数据。
11.一种流媒体片段注入缓存系统的方法,其特征在于,包括: 缓存系统接收读写锁分配请求;其中,读写锁分配请求中包含注入范围信息;所述注入范围信息包括待注入所述缓存系统的一个或多个流媒体片段在其所属的流媒体内容中的位置或位置区间; 根据所述注入范围信息,从待注入所述缓存系统的流媒体片段中,确定出能够被分配读写锁的流媒体片段,并为确定出的流媒体片段分配读写锁; 发送读写锁分配响应消息给终端,以使终端将被分配了读写锁的流媒体片段注入所述缓存系统;其中,被分配了所述读写锁的流媒体片段在同一时间仅能被一个终端执行写操作; 所述缓存系统接收并存储所述被分配了读写锁的流媒体片段。
12.如权利要求11所述的方法,其特征在于,所述缓存系统存储所述被分配了读写锁的流媒体片段之前,所述方法还包括: 所述缓存系统接收用于查询是否能向所述缓存系统注入所述被分配了读写锁的流媒体片段的注入查询请求;所述缓存系统根据所述缓存系统所在的网络的拥塞情况,和/或所述缓存系统的磁盘的拥塞情况,判断是否能向所述缓存系统注入所述被分配了读写锁的流媒体片段; 所述缓存系统在判断出能向所述缓存系统注入所述被分配了读写锁的流媒体片段时,发送用于通知可以向所述缓存系统注入所述被分配了读写锁的流媒体片段的响应消息。
13.如权利要求11或12所述的方法,其特征在于,所述缓存系统接收所述读写锁分配请求之前,所述方法还包括: 所述缓存系统接收元数据查询请求;所述元数据查询请求用于查询与待注入所述缓存系统的流媒体片段相对应的元数据; 所述缓存系统发送 查询结果;其中,所述查询结果用于表示是否在所述缓存系统中查询到所述元数据,以及在所述缓存系统中查询到的所述元数据所对应的流媒体片段。
14.如权利要求13所述的方法,其特征在于,所述缓存系统存储所述被分配了读写锁的流媒体片段后,所述方法还包括: 所述缓存系统接收读写锁释放指令; 所述缓存系统释放所述读写锁,并更新所述元数据。
15.一种流媒体片段注入缓存系统的设备,其特征在于,包括: 流媒体片段确定单元,用于确定待注入缓存系统的至少一个流媒体片段; 请求发送单元,用于向缓存系统发送包含注入范围信息的读写锁分配请求,以使所述缓存系统根据所述读写锁分配请求,为所述注入范围信息所指示的一个或多个流媒体片段分配读写锁;其中,所述注入范围信息包括待注入所述缓存系统的各个流媒体片段在其所属的流媒体内容中的位置或位置区间; 流媒体片段注入单元,用于利用所述缓存系统与至少一个终端之间的传输链路,将所述至少一个流媒体片段中分配了读写锁的流媒体片段注入所述缓存系统;其中,被分配了读写锁的流媒体片段在同一时间仅能被一个终端执行写操作。
16.如权利要求15所述的设备,其特征在于,所述设备还包括: 目标传输链路选取单元,用于根据各个终端分别与所述缓存系统之间的传输链路的注入上下文信息,从所有传输链路中选取出目标传输链路; 所述流媒体片段注入单元具体用于:利用所述目标传输链路,将所述至少一个流媒体片段中分配了读写锁的流媒体片段注入所述缓存系统。
17.如权利要求15所述的设备,其特征在于,所述流媒体片段确定单元,具体包括: 接收子单元,用于接收终端发送的流媒体内容访问请求;其中,所述流媒体内容访问请求用于请求访问流媒体内容; 查询子单元,用于向所述缓存系统查询与所述流媒体内容访问请求相对应的元数据;获得子单元,用于根据所述缓存系统反馈的查询结果,从服务提供方SP处获得所述流媒体内容访问请求所请求的至少一个流媒体片段; 其中,所述查询结果用于表示是否在所述缓存系统中查询到所述元数据,以及在所述缓存系统中查询到的所述元数据所对应的流媒体内容的流媒体片段。
18.如权利要求17所述的设备,其特征在于,所述接收子单元具体用于: 当所述查询结果表示没有在所述缓存系统中查询到所述元数据时,从所述SP处获得所述流媒体内容访问请求所请求的流媒体内容的全部流媒体片段。
19.如权利要求18所述的设备,其特征在于,所述接收子单元还用于: 当所述查询结果表示在所述缓存系统中查询到所述元数据,且所述元数据对应所述流媒体内容访问请求所请求的所述流媒体内容中的部分流媒体片段时,从所述SP处获得所述流媒体内容访问请求所请求的流媒体内容中,所述元数据未能对应的流媒体片段。
20.如权利要求19所述的设备,其特征在于,所述设备还包括: 判断单元,用于判断所述流媒体内容访问请求所请求的流媒体内容中,所述元数据未能对应的流媒体片段的占比是否小于预设比例阈值,以及所述元数据未能对应的流媒体片段注入到所述缓存系统所需的时间是否小于预设时间阈值; 内容获取单元,用于在判断出所述占比小于预设比例阈值,且所述时间小于预设时间阈值时,在将从所述SP处获得的所述元数据未能对应的流媒体片段注入所述缓存系统后,从所述缓存系统处获取所述流媒体内容访问请求所请求的流媒体内容的流媒体片段;内容发送单元,用于将从所述缓存系统处获取的所述流媒体内容访问请求所请求的流媒体内容的流媒体片段提供给发送所述流媒体内容访问请求的终端。
21.如权利要求17~20任一所述的设备,其特征在于,所述接收子单元还用于: 当所述查询结果表示在所述缓存系统中查询到所述元数据,且所述元数据对应所述流媒体内容访问请求所请求的流媒体内容中的全部流媒体片段时,若确定所述缓存系统未存储所述流媒体内容访问请求所请求的流媒体内容的所有流媒体片段,则从所述SP处获得所述流媒体内容访问请求所请求的流媒体内容中未存储于所述缓存系统中的流媒体片段。
22.如权利要求21所述的设备,其特征在于,所述接收子单元具体用于: 根据所述流媒体内容访问请求所请求的流媒体内容的所有流媒体片段中,已注入所述缓存系统的流媒体片段的占比,和/或当前注入流媒体片段到所述缓存系统的注入速率信息,判断是否需要从所述SP处获得所述流媒体内容访问请求所请求的流媒体内容的未存储于所述缓存系统中的流媒体片段; 在判断结果为需要时,从所述SP处获得所述流媒体内容访问请求所请求的流媒体内容的未存储于所述缓存系统中的流媒体片段。
23.一种缓存系统,其特征在于,包括: 分配请求接收单元,用于接收读写锁分配请求;其中,读写锁分配请求中包含注入范围信息;所述注入范围信息包括待注入所述缓存系统的一个或多个流媒体片段在其所属的流媒体内容中的位置或位置区间; 流媒体片段确定单元,用于根据所述注入范围信息,从待注入所述缓存系统的流媒体片段中,确定出能够被分配读写锁的流媒体片段; 锁分配单元,用于为确定出的流媒体片段分配读写锁; 信息发送单元,用于在为确定出的流媒体片段分配读写锁后,发送读写锁分配响应消息给终端,以使终端将被分配了读写锁的流媒体片段注入所述缓存系统;其中,被分配了所述读写锁的流媒体片段在同一时间仅能被一个终端执行写操作; 流媒体片段接收单元,用于接收所述被分配了读写锁的流媒体片段; 存储单元,用于存储所述被分配了读写锁的流媒体片段。
24.如权利要求23所述的缓存系统,其特征在于,所述缓存系统还包括: 注入查询请求接收单元,用于在流媒体片段接收单元接收所述被分配了读写锁的流媒体片段之前,接收用于查询是否能向所述缓存系统注入所述被分配了读写锁的流媒体片段的注入查询请求; 判断单元,用于根据所述缓存系统所在的网络的拥塞情况,和/或所述缓存系统的磁盘的拥塞情况,判断是否能向所述缓存系统注入所述被分配了读写锁的流媒体片段; 消息发送单元,用于在所述判断单元判断出能向所述缓存系统注入所述被分配了读写锁的流媒体片段时,发送用于通知可以向所述缓存系统注入所述被分配了读写锁的流媒体片段的响应消息。
25.如权利要求23或24所述的缓存系统,其特征在于,所述缓存系统还包括: 元数据查询请求接收单元,用于在接收所述读写锁分配请求之前,接收元数据查询请求;所述元数据查询请求用于查询与待注入所述缓存系统的流媒体片段相对应的元数据; 结果发送单元,用于发送查询结果;其中,所述查询结果用于表示是否在所述缓存系统中查询到所述元数据,以及在所述缓存系统中查询到的所述元数据所对应的流媒体内容的流媒体片段。
26.如权利要求23所述的缓存系统,其特征在于,所述缓存系统还包括: 释放指令接收单元,用于在所述存储单元存储所述被分配了读写锁的流媒体片段后,接收读写锁释放指令; 释放单元,用于根据所述读写锁释放指令,释放所述读写锁; 更新单元,用于根据所述读写锁释放指令,更新所述元数据。
【文档编号】H04L29/08GK103701883SQ201310699021
【公开日】2014年4月2日 申请日期:2013年12月18日 优先权日:2013年12月18日
【发明者】杨军, 韩霆军 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1