协作式缓存集群中面向视频点播服务的协作式缓存方法及系统技术方案

技术编号:8686006 阅读:233 留言:0更新日期:2013-05-09 05:32
本发明专利技术协作式缓存集群中面向视频点播服务的协作式缓存方法和系统。其中,将每个视频文件的数据分片与缓存节点的索引号相关联,将每个数据分片缓存在与其关联的缓存节点上。收到访问数据分片的请求时将其定向到与要访问的数据分配关联的缓存节点,并且可以指示其他缓存节点预取下一个数据分片。该方法使得每个视频文件只放置一份数据,提高了缓存的空间利用率和读取命中率,同时避免了单台服务器出现热点,增强了缓存系统整体的扩展性。此外,通过协作式数据预取技术,避免了在仅进行简单数据分片情况下可能影响视频点播服务质量的播放抖动问题,不影响视频点播的服务质量。

【技术实现步骤摘要】

本专利技术涉及网络存储中的协作式缓存,尤其涉及面向视频点播服务的全局缓存空间利用率改善方法。
技术介绍
随着社会的不断发展,需要保存和处理的信息量飞速增长。根据IDC “数字宇宙”的研究,2009年全球数字信息总量已达到800EB,而且还以每年60%速度高速增长,2010年达到1.2ZB,而2020年将达到35ZB。数字信息的爆炸式增长,对存储系统在存储容量、数据可用性以及IO性能等方面提出了越来越高的要求。在互联网上,以多媒体数据为代表的较大文件数据大概占总数据量的50%,而且近年来,该比例有进一步提高的趋势。以视频为代表的多媒体数据是一种非常重要的数据类型,在三网融合的趋势下,视频点播也成为网络存储系统的一种重要的数据访问模式。视频这类数据的特点是每个文件占用空间相对较大(几百MB到几十GB)。视频点播对服务质量有个要求,就是开始点播前可以允许有适当的初始延迟,但点播一旦开始,则不希望发生播放抖动,也就是说希望需要播放的视频数据能够及时到达。在现有的支持视频点播的网络存储系统中,通常包括用于存储视频数据的后端存储服务器,用于提高视频数据的访问速度和质量的多个中间缓存节点。当用户通过终端设备进行视频点播时,收到用户点播请求的缓存节点先检查是否具有所请求的视频数据,如果有,则直接将所请求的视频数据返回给用户,如果没有,可以从后端存储服务器或其他缓存节点取得该视频数据并且将该数据缓存在本地并返回给用户。所采用的多个缓存节点有时也被称为缓存集群。对这类视频数据的访问,存在着两个基本特点:a)对不同文件的访问频率不一致(skew in access pattern):对不同文件的访问频率符合齐普夫(Zipf)分布。图1给出了 100个视频文件的访问频率分布。b)随着时间的推移,文件流行度的演变没有规律性。图2显示了音乐类视频上线之后的流行度演变。在协作式缓存环境下,每个缓存节点同时也是一个视频点播服务器。如果每个文件在多个缓存节点上都放置副本,那么访问频率较低的文件,就会浪费大量的缓存空间。但是如果每个文件只放置一个副本,那么热点文件所在的视频点播服务器,又可能出现性能瓶颈。为了解决视频热点问题(即视频点播服务器的性能瓶颈问题),现有的动态多副本方法在当某些热点文件的访问数量较大时,为这些文件产生多个副本并放置到多个服务器上以分担热点访问的压力。但是,该方法以视频文件整体为单位,每个文件或者全部缓存在同一个服务器上或者全部不缓存在某个服务器上,缓存空间的利用率较差,达不到单副本效果。此外,对于视频文件副本的需求没有很好的预测算法,这样就导致动态多副本方法不能很好地解决热点问题。也可以采用数据分片方法,将视频数据分成固定大小的分片,然后把同一个视频的多个分片分散到不同的服务器节点上,以分散较热视频文件的带宽需求。虽然在一定程度上提高了缓存空间的利用率,但是处于不同缓存节点上的视频数据在跨节点访问时可能发生抖动,不能满足对视频点播服务质量的要求。
技术实现思路
因此,本专利技术的目的在于克服上述现有技术的缺陷,提供一种协作式缓存集群中面向视频点播服务的协作式缓存方法。本专利技术的目的是通过以下技术方案实现的:一方面,本专利技术提供了一种协作式缓存集群中面向视频点播服务的协作式缓存方法,包括:步骤I)为所有参与协作的缓存节点分配唯一的缓存节点索引号;步骤2)将每个视频文件在逻辑上分成大小相等的数据分片;步骤3)将每个视频文件的数据分片与缓存节点索引号相关联;步骤4)将每个数据分片缓存在与其关联的缓存节点上。在上述方法中,所述方法还可包括:将对每个数据分片的访问请求定向到与该数据分片所关联的缓存节点。在上述方法中,所述方法还可包括:接收到对数据分片的访问请求的缓存节点检索本地缓存,如果不存在要访问的数据分片,则从后端存储服务器读取该数据分片将其保存在本地缓存中;否则, 直接从本地缓存中读取该数据分片。在上述方法中,所述步骤3)中对于视频文件A,可以将该视频文件的第i个数据分片与缓存节点索引号为j的缓存节点相关联,其中j = i modN,0^j^N-l,0^ i^MA-l,N为参与协作的缓存节点的个数,Ma为视频文件A的数据分片的个数。在上述方法中,所述方法还可包括:在每个缓存节点中保存后继数据分片缓存信息,所述后继数据分片缓存信息是指关于在该缓存节点上缓存的数据分片的后继数据分片是否已经被缓存在与其关联的缓存节点上的信息。在上述方法中,所述方法还可包括: 步骤A,当缓存节点X上的第η个数据分片An被访问时,在该缓存节点X本地查询后继数据分片缓存信息,判断第η+1个数据分片Αη+1是否已经被缓存在与数据分片Αη+1关联的缓存节点Y上,如果没有,则向缓存节点Y发送预取通知,指示缓存节点Y从后端服务器预先读取数据分片Αη+1 ;否则,不发送预取通知;步骤B,缓存节点Y在成功读取数据分片Αη+1后,给数据分片An所在缓存节点X发送预取成功消息;步骤C,缓存节点X在收到缓存节点发送的预取成功的消息之后,更新本地的后继数据分片缓存信息。又一方面,本专利技术提供了一种协作式缓存集群中面向视频点播服务的协作式缓存系统,包括:用于存储视频文件的存储服务器,每个视频文件在逻辑上分成大小相等的数据分片;一个或多个缓存节点,每个缓存节点具有唯一的缓存节点索引号并且被配置为缓存与其关联的数据分片;调度器,用于将每个视频文件的数据分片与缓存节点索引号相关联以及用于将对每个数据分片的访问请求定向到与该数据分片所关联的缓存节点。上述系统中,所述缓存节点还可被配置为:在接收到对数据分片的访问请求时,检索本地缓存,如果不存在要访问的数据分片,则从后端存储服务器读取该数据分片将其保存在本地缓存中;否则,直接从本地缓存中读取该数据分片。在上述系统中,所述调度器可被配置为:对于视频文件A,将该视频文件的第i个数据分片与缓存节点索引号为j的缓存节点相关联,其中j=i mod N,O ( j ( N-1,0 ( i ( Ma-1, N为参与协作的缓存节点的个数,Ma为视频文件A的数据分片的个数。在上述系统中,每个缓存节点还可被配置为:保存后继数据分片缓存信息,所述后继数据分片缓存信息是指关于在该缓存节点上缓存的数据分片的后继数据分片是否已经被缓存在与其关联的缓存节点上的信息。在上述系统中,每个缓存节点还可被配置为:当该缓存节点上的数据分片被访问时,在本地查询后继数据分片缓存信息,判断该数据分片的后继数据分片是否已经被缓存在与该后继数据分片关联的缓存节点上,如果没有,则向与该后继数据分片关联的缓存节点发送预取通知,以指示其从后端服务器预先读取该后继数据分片;否则,不发送预取通知;当该缓存节点在收到与该后继数据分片关联的缓存节点发送的预取成功的消息之后,更新本地的后继数据分片缓存信息。在上述系统中,每个缓存节点还可被配置为:当该缓存节点收到来自其他缓存节点的预取通知时,从后端服务器预先读取该预取通知中指定的数据分片,并向发出该预取通知的缓存节点发送预取成功消息。与现有技术相比,本专利技术的优点在于:采用了协作式数据分片结合协作式数据预取方法,通过协作式分片,使得视频文件的访问压力由所有服务节点均摊,这样解决了视频的热点问题,从而消除了以文件为单位时,热点文件需要多份的问题,本文档来自技高网
...

【技术保护点】
一种协作式缓存集群中面向视频点播服务的协作式缓存方法,该方法包括:步骤1)为所有参与协作的缓存节点分配唯一的缓存节点索引号;步骤2)将每个视频文件在逻辑上分成大小相等的数据分片;步骤3)将每个视频文件的数据分片与缓存节点索引号相关联;步骤4)将每个数据分片缓存在与其关联的缓存节点上。

【技术特征摘要】
1.一种协作式缓存集群中面向视频点播服务的协作式缓存方法,该方法包括: 步骤1)为所有参与协作的缓存节点分配唯一的缓存节点索引号; 步骤2)将每个视频文件在逻辑上分成大小相等的数据分片; 步骤3)将每个视频文件的数据分片与缓存节点索引号相关联; 步骤4)将每个数据分片缓存在与其关联的缓存节点上。2.根据权利要求1所述的方法,所述方法还包括: 将对每个数据分片的访问请求定向到与该数据分片所关联的缓存节点。3.根据权利要求2所述的方法,所述方法还包括: 接收到对数据分片的访问请求的缓存节点检索本地缓存,如果不存在要访问的数据分片,则从后端存储服务器读取该数据分片将其保存在本地缓存中;否则,直接从本地缓存中读取该数据分片。4.根据权利要求1所述的方法,所述步骤3)中对于视频文件A,将该视频文件的第i个数据分片与缓存节点索引号为j的缓存节点相关联,其中j=i mod N,O ^ j ^ N-1,Ma-1, N为参与协作的缓存节点的个数,Ma为视频文件A的数据分片的个数。5.根据权利要求1所述的方法,所述方法还包括: 在每个缓存节点中保存后继数据分片缓存信息,所述后继数据分片缓存信息是指关于在该缓存节点上缓存的数据分片的后继数据分片是否已经被缓存在与其关联的缓存节点上的信息。6.根据权利要求5所述的方法,所述方法还包括: 步骤A,当缓存节点X上的第η个数据分片An被访问时,在该缓存节点X本地查询后继数据分片缓存信息,判断第η+1个数据分片Αη+1是否已经被缓存在与数据分片Αη+1关联的缓存节点Y上,如果没有,则向缓存节点Y发送预取通知,指示缓存节点Y从后端服务器预先读取数据分片Αη+1 ;否则,不发送预取通知; 步骤B,缓存节点Y在成功读取数据分片Αη+1后,给数据分片An所在缓存节点X发送预取成功消息; 步骤C,缓存节点X在收到缓存节点发送的预取成功的消息之后,更新本地的后继数据分片缓存信息。7.一种协作式缓存集群中面向视频点播服务的协作...

【专利技术属性】
技术研发人员:石刘张军伟刘振军韩晓明许鲁
申请(专利权)人:中国科学院计算技术研究所天津中科蓝鲸信息技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1