一种内容缓存、查询方法及点对点媒体传输系统的制作方法

文档序号:7669455阅读:141来源:国知局
专利名称:一种内容缓存、查询方法及点对点媒体传输系统的制作方法
技术领域
本发明涉及点对点媒体传输技术,尤其设计一种内容緩存、查找方法及 点对点媒体传输系统。
背景技术
视频点播是指在根据用户的需要随时提供交互式视频服务的业务,在实 际的系统中,由于受系统容量的限制,服务提供者一般会事先提供一定数量 的视频节目,然后用户就可以随时选择其中的一个节目进行观看,并且点播 系统还可以提供暂停、快进和快退等功能,以方便用户观看。视频点播技术 也成为业界研发的重点。
传统的视频点播有两种解决方案 一种是用户观看时只在内存中记录数 据,对于超出内存緩存限制的部分采取抛弃的策略,用户本机硬盘不提供存 储服务; 一种是在用户的本机硬盘上存储用户观看的内容,以便后续的用户 观看时可以为之提供相关数据。
在内存中记录数据,对于超出内存緩存限制的部分采取抛弃的策略, 一个播 放时间点离当前节点较远的客户端,无法给该节点提供需要的数据。而点播 系统由于内容数量众多,用户的兴趣不同,除少数热门的内容外,大部分内 容收看的用户数量都不大,而且观看时间点分散,因此很难充分利用用户节 点的资源来互相协助,对减低内容服务器的负载帮助有限。对于在用户本机 硬盘上存储用户观看的内容,以便后续的用户观看时可以提供相关数据的方 法,在其他用户进行此类内容搜索时一般针对的是完整文件的搜索,而且对 及时性要求不高,搜索效率低,由于用户拖动、快进等操作,节点很少能緩存整个文件,只能是观看一部分就緩存一部分,根据完整文件搜索的内容实 际上查找不到需要查找的完整内容。

发明内容
有鉴于此,实有必要提供一种内容緩存方法,用于解决现有技术中搜索 效率低的问题。
同时,提供一种内容查找方法,用于解决现有技术中搜索效率低的问题。 同时,提供一种点对点媒体传输系统,用于解决现有技术中搜索效率低 的问题。
同时,提供一种管理节点,用于解决现有技术中搜索效率低的问题。
一种内容緩存方法,包括如下步骤 将获取的媒体数据内容以内容分块的形式緩存; 根据所述内容将普通用户节点聚簇;
选择一个或多个管理节点管理緩存同一内容的普通用户节点的聚簇,并
记录聚簇中各节点的地址信息和拥有该内容的分块信息。 一种内容查找方法,其特征在于,该方法包括 接收普通用户节点发送的查询媒体数据的特定的内容分块的请求; 查询记录的缓存的或管理的普通用户节点緩存的内容分块信息,或向其
他相连的管理节点查询拥有该内容分块的节点的地址信息;
向普通用户节点发送所述内容分块信息或所述内容分块节点的地址信

一种点对点媒体传输系统,包括
普通用户节点,用于将获取的媒体数据内容以内容分块的形式緩存; 管理节点,用于管理根据所述内容将普通用户节点聚簇,并记录该内容 的内容分块信息和地址信息。 一种管理节点,包括
查询请求接收单元,用于接收普通用户节点发送的查询媒体数据的特定的内容分块的请求;
查询处理单元,用于查询查询普通节点緩存的内容分块信息,或向其他 相连的管理节点查询拥有该内容分块的节点的地址信息;
查询结果发送单元,用于向普通用户节点发送所述内容分块信息或所述 内容分块节点的地址信息。
一种管理节点,包括
聚簇管理单元,用于管理緩存同一内容的普通用户节点的聚簇; 存储处理单元,用于处理该内容的内容分块信息和地址信息的记录。 与现有技术相比,本发明实施例通过普通用户节点将接收媒体传输过程 中的获取的媒体数据内容以内容分块的形式緩存,并根据内容将普通用户节 点聚簇,选择一个或多个管理节点管理緩存同一内容的普通用户节点的聚 簇,使得普通用户节点能够方便、高效地利用其他用户存储的内容,提高了 用户查找的准确率和查找效率,克服了现有技术中搜索效率低的缺点,降低 了服务器的负担。


图1为本发明实施例一点对点媒体传输系统结构示意图。
图2为本发明实施例二点对点媒体传输系统结构示意图。
图3为本发明实施例三点对点媒体传输系统结构示意图。
图4为本发明实施例四点对点媒体传输系统结构示意图。
图5为本发明实施例五管理节点内部结构示意图。
图6为本发明实施例六管理节点内部结构示意图。
图7为本发明实施例七内容緩存方法流程图。
图8为本发明实施例八内容查找方法流程图。
图9为本发明实施例九普通用户节点启动时加入网络的流程图。
图IO为本发明实施例十簇分裂流程图。
具体实施例方式
以下结合实施例说明,本发明实施例提出了一种点对点媒体传输系统,
通过将用户节点组织成特定的网络结构来索引客户端硬盘上緩存的部分内
六 谷。
本实施例中,将接收获取的媒体数据内容以内容分块的形式緩存,将媒 体数据分块,以分块的形式进行存储,媒体数据包括视频帧和音频帧等。本 实施例中以视频文件为例,视频文件一般可简单分为内容元数据和实际媒体 数据。元数据包括整个媒体文件的整体信息和时间定位信息等,而媒体数据
主要指特定的视频帧和音频帧的数据。例如在asf文件格式中,位于文件头 中的Header Object (文件整体信息)和位于文件尾部的索引对象(用于进行 时间定位,如Simple Index Object)可以看作内容元数据。在一个实施例中, 用户节点不緩存内容元数据,用户点播时需要向CS (内容服务器,Content Server)请求,以方便对用户的点播行为进行准入控制和其他管理。
在用户硬盘上进行緩存通常要控制緩存的大小,以免占据用户过多的存 储资源,在一个实施例中,用一个单一文件来进行緩存,可以事先分配固定 大小的空间,也可以在緩存过程中逐渐扩大文件大小直到设定的值。在一个 实施例中,每緩存一块内容数据就新建一个文件来记录数据,并控制所有数 据文件总的大小,由于緩存空间受限,随着用户不断点播收看,需要清除老 的内容数据的空间来緩存新的内容数据。单一文件緩存适合用来緩存固定大 小的内容分块,可以方便的执行分块替换;多文件緩存适合用来緩存不固定 大小的内容分块。
例如,asf格式媒体文件的data object (数据对象)由头部和数量众多的 固定大小的data packet组成。Simple Index Obj ect中记录了时间(典型的时 间间隔是1秒)和packet的对应关系。例如[30, 145]就表明要拖动到第30 秒的视频,需要从第145个packet开始请求数据。而由于每个packet大小 相同,因此只要知道第 一个packet在内容文件中的地址偏移就可以计算出需要请求的packet在文件中的偏移。在单一文件緩存的实施例中,可以预先设 置每个内容分块的固定大小,然后将特定编号范围的packet存储到特定编号 的内容分块中。例如,设定单一緩存文件的大小为lGBytes,内容分块大小 为4Mbytes (所以一个用户节点最多能緩存256个内容分块)。例如,如果 某个packet的大小为6250Bytes,那么一个分块存放4*1024*1024/6250=671 个packet (分块尾部还有554个字节没有利用,不过相比分块的大小,这点 浪费不很严重)。因此从第0个packet开始的连续671个packet存储在编 号为O的分块上,以此类推。随着视频节目的播放,客户端每收取一个完整 分块的数据,就緩存在硬盘上,可以用以下的三元组就可以索引硬盘緩存的 数据
例如,[6,点播节目名称(或内容文件名、特定内容的hash值),123] 表示本地緩存文件中顺序第6块文件块的空间緩存的是某个内容的编号为 123的内容分块。
当用户节点需要某个特定packet开始的数据时,首先将packet号(3533 ) 映射成分块号(3533/671 = 5余178,对应该内容第5个分块上的第178个 packet),然后搜索緩存有该内容分块的节点。向返回的节点请求数据时, 请求的消息中要包含如下信息 由于用户节点不緩存内容元数据,因此节点不了解内容分块内部的结 构,因此节点请求数据时要指明在分块内的偏移(178*6250),而不能仅仅 给出packet号。
请结合参看图1,本发明实施例点对点媒体传输系统100包括簇管理器 102、聚簇104、内容(普通节点ON, OrdinaryNode) C4和内容C5。普通 用户节点将媒体传输过程中的获取的媒体数据以内容分块的形式緩存,内容 C4和内容C5分别为两个内容,本发明实施例中按内容聚簇緩存了相同内容 的用户节点聚集在一起。聚簇104包含包括内容C4和内容C5的用户节点。簇管理器102管理根据内容C4和C5将普通用户节点的聚簇104,并记录内 容C4和内容C5的分块信息和地址信息。本实施例中,簇管理器102管理 器CM管理用户节点,CM—般部署在服务提供商提供的服务器上,因此在 线时间有保证,在一个实施例中,采用内容分发网络CDN的两层结构,部 署服务时将服务区域按地理位置隔离成各自独立的区域(边缘网络)。在边 缘网络中的关键位置上部署一个或多个内容服务器CS和CM,然后由中心 节点分发内容并按特定策略(一般采用地理位置就近原则)调度用户请求到 边缘网络。CS根据用户请求提供特定内容的数据;CM执行用户节点管理 功能,当用户节点找不到特定内容的用户管理节点时,就先加入CM由CM 管理用户节点的内容分块信息,并负责查询该内容。
请结合参看图2,本发明实施例点对点媒体传输系统200包括管理节 点N1、 N2、 N3、 N4和聚簇208和内容C1。管理节点N2作为管理内容的 节点,例如,对一些热门的节目来说緩存有该内容分块的用户节点和正在观 看该内容的用户节点很多,因此可以从中选择一些节点作为超级节点来管理 内容C1。 一个超级节点SN管理一定数量的普通节点,每个SN和一定数量 的其他SN保持连接成为邻居SN关系。这样,所有提供该内容数据的节点 和需要该内容的节点就构成了 一个网络,通过该网络需要该内容数据的节点 可以很快找到其他能提供数据的节点。
请结合参看图3,本发明实施例点对点媒体传输系统300包括用户管理 节点302、聚簇304、内容C2和内容C3。本实施例中,管理多个内容的用 户节点SN,对于大部分内容来说,同时点播一个内容的用户数量不多,因 此一个SN可以同时管理多个内容的ON。但只要某个内容的节点数量达到 一定值,就要把这部分节点分裂出去,生成新的单一内容的簇。
上述SN和ON表示的是特定内容的SN和ON,节点对某个内容来说可 能是ON,但相对于另一个内容来说可能是SN。整个网络按照内容来进行组 织和管理。
请结合参看图4,本发明实施例点对点媒体传输系统400包括普通用户节点一 402、普通用户节点二404、普通用户节点三406、管理节点410、 备份管理节点412和中心调度服务器408。普通用户管理节点一 402请求访 问普通用户节点二 404和普通用户节点三406,接收媒体传输过程中的获取 的媒体数据内容以内容分块的形式緩存的数据。普通用户节点一 402通过中 心调度服务器408获取特定内容的管理节点410的地址,向管理节点410请 求需要访问的内容分块信息。中心调度服务器408,用于注册管理节点410 记录的内容信息,并提供对应的管理节点的地址信息。中心调度服务器通常 按地理位置进行划分。备份管理节点412,用于在管理节点410异常退出时 接替管理节点410的功能。本实施例中,备份管理节点413是由SN管理的 普通用户节点选择出来的。
请结合参看图5,本发明实施例管理节点500包括查询请求接收单元 502、查询处理单元504、查询结果发送单元506、内容分块存储单元508、 备份请求单元510、注册请求加入单元512。
查询请求接收单元502,用于接收普通用户节点发送的查询媒体数据的 特定的内容分块的请求。查询请求处理单元504,用于查询普通节点緩存的 内容分块信息,或向其他相连的管理节点查询拥有该内容分块的节点的地址 信息。节点查询内容分块时,向SN提交内容标志和分块编号,同时指定要 返回的记录数量。SN首先查找本地记录的节点内容分块数据,如果满足要 求的记录数不足,则SN向邻居SN查询,最后将查询结果一起返回给节点。 可以緩存从邻居SN返回的查询结果,以备后用。查询结果包括多条以下的 数据记录
查询结果发送单元506,用于向普通用户节点发送所述内容分块信息或 所述内容分块节点的地址信息。内容分块存储单元508,用于媒体数据内容 分块信息和地址信息。备份请求单元510,用于在管理节点异常退出时,请 求备份管理节点管理所述内容分块信息。注册请求加入单元512,用于向注 册中心服务器注册管理的内容信息。用户节点启动时注册加入网络,在本实施例中包括以下流程。 与中心调度服务器通讯请求加入,告知自己緩存的内容。内容可能有多个。
调度服务器根据用户节点的地址信息(典型的是指IP/Port)确定它所在 的边缘网络,然后返回属于该边缘网络的CS和CM地址信息。另外针对节 点緩存的每个内容,调度服务器都会返回一定数量SN。如果某个内容没有 特定的SN,节点默认加入到CM。
用户节点以ON的身份向管理不同内容的SN请求加入,消息中要指定 内容标志。
SN同意ON加入。如果SN拒绝,ON可以继续向其他SN请求,如果 都失败则请求加入到某个特定的CM。
ON向SN (或CM)登记特定内容的分块信息。
当用户观看时,经常要緩存新的内容分块,有时还要替换旧的内容分块, 这些本地緩存的变化都要通知自己所属的SN。
SN收到ON的加入请求时,根据自己的负载情况来决定是否接纳ON。 负载情况主要指CPU使用率、带宽占用以及已经接纳的ON的数量。以下 是SN决定是否接纳新ON的条件
自己负载小则接纳;
ON加入请求中加入次数达到一定值则接纳; 其他情况都拒绝;
ON每被SN拒绝一次,则下次它的加入请求中的加入次数就加1,这 个值达到一定次数后,SN无论负载如何都要接纳,必要时分裂簇。 ON登记内容分块的消息中包括一个或多个一下的数据记录 [内容标志,起始分块号,分块数量]
一条记录表示一个分块组,从起始分块开始连续的多个分块。如果某个 内容的有多个分块组,就有多条记录。
ON更新内容分块信息的消息中包括以下信息[内容标志,分块号,添加或是删除]
边缘网络有多个CM的话,可以根据内容标志来确定唯一的CM。比如 内容标志是文件名,则先计算文件名字符串的hash值,然后将hash值除以 CM的数量,^f艮据余数来决定应加入那个CM。 CM ^^艮据特定的规则排序, 比如IP地址的大小。那么緩存同 一 内容的ON找不到SN时都会加入相同的 CM,使得节点按内容聚集在一起。
当节点不再緩存所在簇的内容并且不再观看所在簇的内容时,需要退出 该簇。如果节点在簇内是ON,则发送退出消息给SN, SN删除ON登记的 分块信息;如果是SN,则不再做SN。
请结合参看图6,本发明实施例管理节点600包括聚簇管理单元602, 存储处理单元604和存储单元606。
聚簇管理单元602,用于管理緩存同一内容的普通用户节点的聚簇。聚 簇管理单元可以管理簇的分裂和合并。当SN或CM管理的ON数量过多时, 需要一个新SN来管理一部分ON, /人而降4氐当前SN或CM的负载。簇分 裂有3种情况
1. 当前SN或CM管理一个内容,因此新SN也管理该内容。
2. 当前SN或CM管理多个内容,其中一个内容的ON数量超过一定数 量;因此新SN管理该内容和相关的ON。
3. 当前SN或CM管理多个内容,但是每个内容的ON数量都不多;因 此新SN管理管理其中一部分内容和相关的ON。
簇的分裂流程如下
l.SN选择一个ON,询问它能否成为新的SN。 2.0N返回同意指令。
3.SN发送SN升级所需要的信息给ON,主要包括内容标志信息。 4.0N向调度服务器登记SN,可能登记一个或多个内容。
5. 调度服务器根据ON登记的内容返回其他SN地址信息。
6. 新SN和其他SN建立邻居关系。如果新SN管理多个内容,则不和其他SN建立邻居关系。
7. 如果SN原来管理多个内容,则向调度服务器注销分裂给新SN的内 容,不再管理这些内容。
8. 通知0N切换SN。如果原来管理一个内容,则通知一部分ON切换到 新SN;如果原来管理多个内容,则通知那些已不再管理内容的ON切换到 新SN。
9. 分裂出来的ON加入新SN。
管理同一个内容的SN之间要保持一定的连接度,也就是保持一定的邻 居数量。通过SN之间的心跳消息,SN可以知道邻居SN的连接度。当SN 邻居数量达到上限时,可以根据这些信息决定是否接纳新的SN作为邻居。 如果新SN的连接度小于自己邻居中连接度最大的SN,则接纳新的SN作为 邻居,同时与那个连接度最大的邻居断绝邻居关系。
管理多个内容的SN没有邻居SN,如果发现有其他SN管理相同的内容, 当前SN将不再管理该内容。比如在上图中,如果调度服务器返回其他SN 的地址信息,新SN将向调度服务器注销该内容;同时通知当前该内容的 ON切换到其他SN (服务器返回的SN);以后有该内容的ON加入时,拒 绝加入并返回其他SN (服务器返回的SN)的地址。
SN正常退出时的流程和簇分裂的流程类似,/人ON中选择一个新SN 来管理自己的内容,通知所有的ON都切换到新SN。非正常退出时,它管 理的ON可以直接加入其他SN,或者先向调度服务器查询SN的地址再加 入。如果簇内的ON数量很多,可能会对其他SN (或CM)和调度服务器 造成一定的冲击。
在一个实施例中,SN在自己管理的ON中选择一个作为备份SN,只要 它目前不是管理其他内容的SN或备份SN就同意成为备份SN。 SN将需要 管理的内容标志告诉备份SN,并时时保持与备份SN的同步,使得备份SN 了解簇内所有ON的地址信息(分块信息不用同步)。SN同时将备份SN 的地址通知其他的ON。当SN非正常退出时,ON可以直接加入该备份SN。备份SN只会接受簇内ON的加入请求(它有ON的地址信息),当加入的 簇内ON数量达到一定数量时,可以判断当前SN已经失效,立即升级到SN。 如果在此之前,备份SN主动探测到当前SN失效,也会升级到SN。由于网 络事件的不确定性,SN失效时,不能确定备份SN和其他ON谁先探测到, 所以这两种情况都可能发生。
在有备份SN存在的情况下,簇分裂时SN可以优先选择备份SN,当不 满足情况的条件下再选择其他ON作为新SN。比如要分裂一个新簇来管理 单个内容,但是备份SN没有緩存该内容,因此只能选择有该内容的其他 ON作为新SN。
选择备份SN或新SN的依据是在线达到一定时间(5分钟,相对比 较稳定不会轻易退出),优先选择那些緩存(本内容)分块多的ON,优先 选才奪那些正在观看本内容的ON。
当SN管理的ON数量下降时,需要合并簇。本发明实施例中,合并簇 有两种情况
l.SN和自己的邻居合并。这些SN只管理单个内容。 2.SN和CM合并。这些SN即可能管理多个内容;也可能管理单个内容, 但是没有邻居节点。
当SN4企测到自己管理的ON^:量下降到一定值时,启动簇合并流程。 如果没有邻居SN,则通知ON切换到CM,然后自己也加入CM。有多个 CM时,拥有相同内容的ON会聚簇到同一个CM上。如果有邻居SN,当 前SN选择一个负载最小的SN进行合并,负载信息从心跳消息中获得。通 知ON切换到该SN,然后断开所有的邻居关系,自己也加入该SN。
存储处理单元604,用于处理媒体内容的内容分块信息和地址信息的记 录。存储单元606,用于记录媒体内容的内容分块信息和地址信息。 请结合参看图7,本发明实施例内容緩存方法,包括如下步骤 步骤702,将获取的媒体数据内容以内容分块的形式緩存。将媒体数据 分块,以分块的形式进行存储,媒体数据包括视频帧和音频帧等。本实施例中以视频文件为例,视频文件一般可筒单分为内容元数据和实际Jf某体数据。 元数据包括整个媒体文件的整体信息和时间定位信息等,而媒体数据主要指
特定的^L频帧和音频帧的iL据。例如在asf文件格式中,位于文件头中的 Header Object (文件整体信息)和位于文件尾部的索引对象(用于进行时间 定位,如Simple Index Object)可以看作内容元数据。在一个实施例中,用 户节点不緩存内容元数据,用户点播时需要向CS(内容服务器,Content Server)请求,以方便对用户的点播行为进行准入控制和其他管理。
在用户硬盘上进行緩存通常要控制緩存的大小,以免占据用户过多的存 储资源,在一个实施例中,用一个单一文件来进行緩存,可以事先分配固定 大小的空间,也可以在緩存过程中逐渐扩大文件大小直到设定的值。在一个 实施例中,每緩存一块内容数据就新建一个文件来记录数据,并控制所有数 据文件总的大小,由于緩存空间受限,随着用户不断点播收看,需要清除老 的内容数据的空间来緩存新的内容数据。单一文件緩存适合用来緩存固定大 小的内容分块,可以方便的执行分块替换;多文件緩存适合用来緩存不固定 大小的内容分块。
例如,asf格式媒体文件的data object (数据对象)由头部和数量众多的 固定大小的data packet组成。Simple Index Object中记录了时间(典型的时 间间隔是1秒)和packet的对应关系。例如[30, 145]就表明要拖动到第30 秒的视频,需要从第145个packet开始请求数据。而由于每个packet大小 相同,因此只要知道第 一个packet在内容文件中的地址偏移就可以计算出需 要请求的packet在文件中的偏移。在单一文件緩存的实施例中,可以预先设 置每个内容分块的固定大小,然后将特定编号范围的packet存储到特定编号 的内容分块中。例如,设定单一緩存文件的大小为lGBytes,内容分块大小 为4Mbytes (所以一个用户节点最多能緩存256个内容分块)。例如,如果 某个packet的大小为6250Bytes,那么一个分块存》文4*1024*1024/6250=671 个packet (分块尾部还有554个字节没有利用,不过相比分块的大小,这点 浪费不很严重)。因此从第0个packet开始的连续671个packet存储在编号为O的分块上,以此类推。随着视频节目的播放,客户端每收取一个完整 分块的数据,就緩存在硬盘上,可以用以下的三元组就可以索引硬盘緩存的
数据
例如,[6,点播节目名称(或内容文件名、特定内容的hash值),123] 表示本地緩存文件中顺序第6块文件块的空间緩存的是某个内容的编号为 123的内容分块。
当用户节点需要某个特定packet开始的数据时,首先将packet号(3533 ) 映射成分块号(3533/671 = 5余178,对应该内容第5个分块上的第178个 packet),然后搜索緩存有该内容分块的节点。向返回的节点请求数据时, 请求的消息中要包含如下信息 由于用户节点不緩存内容元数据,因此节点不了解内容分块内部的结 构,因此节点请求数据时要指明在分块内的偏移(178*6250),而不能仅仅 给出packet号。
步骤704,根据内容将普通用户节点聚簇。本实施例中,具有相同内容 分块的普通用户节点可以聚为同一簇。客户端即可以作为管理节点管理一个 或多个内容,也可以作为所述普通用户节点归属于一个或多个管理节点。
步骤706,选择一个或多个管理节点管理緩存同一内容的普通用户节点 的聚簇,并记录聚簇中各节点的地址信息和拥有该内容的分块信息。若有多 个管理节点时,管理同一内容的多个管理节点互相连接。根据普通用户节点 端緩存的内容加入内容特定的管理节点,上传所述普通用户节点緩存的内容 的分块索引信息。所述普通用户节点向所述管理节点登记最新緩存的内容分 块信息,并向所述管理节点注销被替换的内容分块信息。普通用户节点緩存 的某一内容所有的分块全部被替换后,退出所述某一内容的管理节点。若管 理节点的内容分块全部被替换后,不再作为该内容的管理节点。所述管理节 点的数量过多时,通过超级节点来管理普通节点。若所述超级节点管理的管理节点过多时,通过新的超级节点来分担所述超级节点的负载。若所述管理 节异常退出时,也可以通过备份管理节点来接替管理节点的功能。所述管理 节点的记录的内容分块信息注册到中心调度服务器上。
聚簇的管理还包括簇的分裂和合并。当SN或CM管理的ON数量过多 时,需要一个新SN来管理一部分ON,从而降低当前SN或CM的负载。 本发明实施例中,簇分裂有3种情况
1. 当前SN或CM管理一个内容,因此新SN也管理该内容。
2. 当前SN或CM管理多个内容,其中一个内容的ON数量超过一定数 量;因此新SN管理该内容和相关的ON。
3. 当前SN或CM管理多个内容,但是每个内容的ON数量都不多;因 此新SN管理管理其中一部分内容和相关的ON。
簇的分裂流程如下
l.SN选择一个ON,询问它能否成为新的SN。 2.0N返回同意指令。
3.SN发送SN升级所需要的信息给ON,主要包括内容标志信息。 4,ON向调度服务器登记SN,可能登记一个或多个内容。
5. 调度服务器根据ON登记的内容返回其他SN地址信息。
6. 新SN和其他SN建立邻居关系。如果新SN管理多个内容,则不和其 他SN建立邻居关系。
7. 如果SN原来管理多个内容,则向调度服务器注销分裂给新SN的内 容,不再管理这些内容。
8. 通知ON切换SN。如果原来管理一个内容,则通知一部分ON切换到 新SN;如果原来管理多个内容,则通知那些已不再管理内容的ON切换到 新SN。
9. 分裂出来的ON加入新SN。
管理同一个内容的SN之间要保持一定的连接度,也就是保持一定的邻 居数量。通过SN之间的心跳消息,SN可以知道邻居SN的连接度。当SN邻居数量达到上限时,可以根据这些信息决定是否接纳新的SN作为邻居。 如果新SN的连接度小于自己邻居中连接度最大的SN,则接纳新的SN作为 邻居,同时与那个连接度最大的邻居断绝邻居关系。
管理多个内容的SN没有邻居SN,如果发现有其他SN管理相同的内容, 当前SN将不再管理该内容。比如在上图中,如果调度服务器返回其他SN 的地址信息,新SN将向调度月l务器注销该内容;同时通知当前该内容的 ON切换到其他SN (服务器返回的SN);以后有该内容的ON加入时,拒 绝加入并返回其他SN (服务器返回的SN)的地址。
SN正常退出时的流程和簇分裂的流程类似,,人ON中选择一个新SN 来管理自己的内容,通知所有的ON都切换到新SN。非正常退出时,它管 理的ON可以直接加入其他SN,或者先向调度服务器查询SN的地址再加 入。如果簇内的ON数量很多,可能会对其他SN (或CM)和调度服务器 造成一定的冲击。
在一个实施例中,SN在自己管理的ON中选择一个作为备份SN,只要 它目前不是管理其他内容的SN或备份SN就同意成为备份SN。 SN将需要 管理的内容标志告诉备份SN,并时时保持与备份SN的同步,使得备份SN 了解簇内所有ON的地址信息(分块信息不用同步)。SN同时将备份SN 的地址通知其他的ON。当SN非正常退出时,ON可以直接加入该备4分SN。 备份SN只会接受簇内ON的加入请求(它有ON的地址信息),当加入的 簇内ON数量达到一定数量时,可以判断当前SN已经失效,立即升级到SN。 如果在此之前,备份SN主动探测到当前SN失效,也会升级到SN。由于网 络事件的不确定性,SN失效时,不能确定备份SN和其他ON谁先探测到, 所以这两种情况都可能发生。
在有备份SN存在的情况下,簇分裂时SN可以优先选择备份SN,当不 满足情况的条件下再选择其他ON作为新SN。比如要分裂一个新簇来管理 单个内容,但是备份SN没有緩存该内容,因此只能选择有该内容的其他 ON作为新SN。选择备份SN或新SN的依据是在线达到一定时间(5分钟,相对比 较稳定不会轻易退出),优先选择那些緩存(本内容)分块多的ON,优先 选择那些正在观看本内容的ON。
当SN管理的ON数量下降时,需要合并簇。合并簇有两种情况
l.SN和自己的邻居合并。这些SN只管理单个内容。
2.SN和CM合并。这些SN即可能管理多个内容;也可能管理单个内容, 但是没有邻居节点。
当SN检测到自己管理的ON数量下降到一定值时,启动簇合并流程。 如果没有邻居SN,则通知ON切换到CM,然后自己也加入CM。有多个 CM时,拥有相同内容的ON会聚簇到同一个CM上。如果有邻居SN,当 前SN选择一个负载最小的SN进行合并,负载信息从心跳消息中获得。通 知ON切换到该SN,然后断开所有的邻居关系,自己也加入该SN。
请结合参看图8,本发明实施例内容查找方法包括如下步骤
步骤802,接收普通用户节点向注册中心服务器发送的查询媒体数据的 特定的内容分块的请求,本实施例中,用户通过注册中心服务器获得管理节 点的地址,当然用户若知道管理节点的地址也可以不通过注册中心服务器来 获得。
步骤804,注册中心服务器向普通用户节点提供管理节点的地址信息。 步骤806,管理节点接收普通用户节点发送的查询媒体数据的特定的内 容分块的请求。本实施例中以视频文件为例, 一见频文件一般可简单分为内容 元数据和实际媒体数据。元数据包括整个媒体文件的整体信息和时间定位信 息等,而媒体数据主要指特定的视频帧和音频帧的数据。例如在asf文件格 式中,位于文件头中的Header Object (文件整体信息)和位于文件尾部的索 引对象(用于进行时间定位,如Simple Index Object)可以看作内容元数据。 在一个实施例中,用户节点不緩存内容元数据,用户点播时需要向CS (内 容服务器,Content Server )请求,以方便对用户的点播行为进行准入控制和 其他管理。在用户硬盘上进行緩存通常要控制緩存的大小,以免占据用户过多的存 储资源,在一个实施例中,用一个单一文件来进行緩存,可以事先分配固定 大小的空间,也可以在緩存过程中逐渐扩大文件大小直到设定的值。在一个 实施例中,每緩存一块内容数据就新建一个文件来记录数据,并控制所有数 据文件总的大小,由于緩存空间受限,随着用户不断点播收看,需要清除老 的内容数据的空间来緩存新的内容数据。单 一文件緩存适合用来緩存固定大
小的内容分块,可以方便的执行分块替换;多文件緩存适合用来緩存不固定 大小的内容分块。
例如,asf格式媒体文件的data object (数据对象)由头部和数量众多的 固定大小的data packet组成。Simple Index Object中记录了时间(典型的时 间间隔是1秒)和packet的对应关系。例如[30, 145]就表明要拖动到第30 秒的视频,需要从第145个packet开始请求数据。而由于每个packet大小 相同,因此只要知道第 一个packet在内容文件中的地址偏移就可以计算出需 要请求的packet在文件中的偏移。在单一文件緩存的实施例中,可以预先设 置每个内容分块的固定大小,然后将特定编号范围的packet存储到特定编号 的内容分块中。例如,设定单一緩存文件的大小为lGBytes,内容分块大小 为4Mbytes (所以 一个用户节点最多能緩存256个内容分块)。例如,如果 某个packet的大小为6250Bytes,那么一个分块存放4*1024*1024/6250=671 个packet (分块尾部还有554个字节没有利用,不过相比分块的大小,这点 浪费不很严重)。因此从第0个packet开始的连续671个packet存储在编 号为0的分块上,以此类推。随着视频节目的播放,客户端每收取一个完整 分块的数据,就緩存在硬盘上,可以用以下的三元组就可以索引硬盘緩存的 数据
例如,[6,点播节目名称(或内容文件名、特定内容的hash值),123] 表示本地緩存文件中顺序第6块文件块的空间緩存的是某个内容的编号为 123的内容分块。当用户节点需要某个特定packet开始的数据时,首先将packet号(3533 ) 映射成分块号(3533/671 = 5余178,对应该内容第5个分块上的第178个 packet),然后搜索緩存有该内容分块的节点。向返回的节点请求数据时, 请求的消息中要包含如下信息 由于用户节点不緩存内容元数据,因此节点不了解内容分块内部的结 构,因此节点请求数据时要指明在分块内的偏移(178*6250),而不能仅仅 给出packet号。
步骤808,查询记录的緩存的或管理的普通用户节点緩存的内容分块信 息,或向其他相连的管理节点查询拥有该内容分块的节点的地址信息。当用 户节点需要某个特定packet开始的数据时,首先将packet号(3533 )映射 成分块号(3533/671 = 5余178,对应该内容第5个分块上的第178个 packet),然后搜索緩存有该内容分块的节点。向返回的节点请求数据时, 请求的消息中要包含如下信息 由于用户节点不緩存内容元数据,因此节点不了解内容分块内部的结 构,因此节点请求数据时要指明在分块内的偏移(178*6250),而不能仅仅 给出packet号。
步骤810,向普通用户节点发送内容分块信息或所述内容分块节点的地 址信息,若本管理节点存在内容分块信息的记录直接向用户提供,若本管理 节点不存在,并且该内容存储与本管理节点的备份管理节点时,向用户提供 其他备份管理节点的制信息。
请结合参看图9,本发明实施例普通用户节点启动时加入网络的流程包 括'
1、 与中心调度服务器通讯请求加入,告知自己緩存的内容。内容可能 有多个。
2、 调度服务器根据用户节点的地址信息(典型的是指IP/Port)确定它所在的边缘网络,然后返回属于该边缘网络的CS和CM地址信息。另外针 对节点緩存的每个内容,调度服务器都会返回一定数量SN。如果某个内容 没有特定的SN,节点默认加入到CM。
3、 用户节点以ON的身份向管理不同内容的SN请求加入,消息中要 指定内容标志。
4、 SN同意ON加入。如果SN拒绝,ON可以继续向其他SN请求, 如果都失败则请求加入到某个特定的CM。
5、 ON向SN (或CM)登记特定内容的分块信息。
6、 当用户观看时,经常要缓存新的内容分块,有时还要替换旧的内容 分块,这些本地緩存的变化都要通知自己所属的SN。
请结合参看图10,本发明实施例簇分裂包括 l.SN选择一个ON,询问它能否成为新的SN。 2.0N返回同意指令。
3.SN发送SN升级所需要的信息给ON,主要包括内容标志信息。 4,ON向调度服务器登记SN,可能登记一个或多个内容。
5. 调度服务器根据ON登记的内容返回其他SN地址信息。
6. 新SN和其他SN建立邻居关系。如果新SN管理多个内容,则不和其 他SN建立邻居关系。
7. 如果SN原来管理多个内容,则向调度服务器注销分裂给新SN的内 容,不再管理这些内容。
8. 通知ON切换SN。如果原来管理一个内容,则通知一部分ON切换到 新SN;如果原来管理多个内容,则通知那些已不再管理内容的ON切换到 新SN。
9. 分裂出来的ON加入新SN。
本领域普通技术人员可以理解,上述方法中的全部或部分步骤可以通过 程序指令相关的硬件完成,所述程序可以存储于一计算机可读的存储介质 中,该计算机可读存储介质,如ROM、 RAM和光盘等。本发明实施例通过普通用户节点将接收媒体传输过程中的获取的媒体 数据以内容分块的形式緩存,并根据内容将普通用户节点聚簇,选择一个或 多个管理节点管理緩存同 一 内容的普通用户节点的聚簇,使得普通用户节点 能够方便、高效地利用其他用户存储的内容,提高了用户查找的准确率和查 找效率,克服了现有技术中搜索效率低的缺点,降低了服务器的负担。通过 将聚簇进行合并和分裂防止了管理节点由于负载过大而造成的不稳定,通过 备份管理节点的分块信息,使得在管理节点不在线时,也能够获得请求访问 的分块内容数据。通过将分块信息和聚簇信息注册到中心调度服务器上,可 以使得用户轻松的找到每 一 个管理节点,提高了点对点媒体传输系统的效 率。通过注销被替换的内容分块,节省了系统的资源,提高了系统有效资源 的利用率。通过登记最新缓存的内容分块信息,使得内容分块信息可以得到 更新,使得用户请求时获得的是最新的内容分块信息。通过簇管理器来管理 内容分块信息,使得系统的稳定性得到了加强,保证了系统的有效数据可以 及时提供。通过多个管理节点互相连接,使得系统中的管理节点可以得到负 载均衡,并且提高了系统的处理能力。
综上所述,以上仅为本发明的较佳实施例而已,并非用于限定本发明的 保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改 进等,均应包含在本发明的保护范围之内。
权利要求
1. 一种内容缓存方法,其特征在于,该方法包括将获取的媒体数据内容以内容分块的形式缓存;根据所述内容将普通用户节点聚簇;选择一个或多个管理节点管理缓存同一内容的普通用户节点的聚簇,并记录聚簇中各节点的地址信息和拥有该内容的分块信息。
2. 如权利要求1所述的内容緩存方法,其特征在于,该方法还包括 若有多个管理节点时,管理同一内容的多个管理节点互相连接。
3. 如权利要求1所述的内容緩存方法,其特征在于,该方法还包括 根据普通用户节点端緩存的内容加入内容特定的管理节点,上传所述普通用户节点緩存的内容的分块索引信息。
4. 如权利要求1所述的内容緩存方法,其特征在于,该方法还包括 普通用户节点緩存的某一内容所有的分块全部被替换后,退出所述某一内容的管理节点。
5. 如权利要求1所述的内容緩存方法,其特征在于,所述媒体数据包括 音频帧和/或一见频帧的凄t据。
6. 如权利要求1所述的内容緩存方法,其特征在于,所述以内容分块的 形式緩存包括采用固定大小的内容分块来緩存媒体数据。
7. 如权利要求1所述的内容緩存方法,其特征在于,所述管理节点包括 簇管理器CM和/或超级节点SN,所述簇管理器为设置在服务器上管理簇的 管理工具,所述超级节点为客户端。
8. 如权利要求7所述的内容緩存方法,其特征在于,该方法还包括将 所述SN或CM与内容对应的信息注册到中心调度服务器上。
9. 如权利要求1所述的内容緩存方法,其特征在于,该方法还包括所述普通用户节点向所述管理节点登记最新緩存的内容分块信息,并向 所述管理节点注销被替换的内容分块信息。
10. 如权利要求1所述的内容緩存方法,其特征在于,该方法还包括若管理节点的内容分块全部被替换后,不再作为该内容的管理节点。
11. 如权利要求IO所述的内容緩存方法,其特征在于,该方法还包括 通过超级节点SN来管理普通节点,若所述超级节点SN管理的管理节点过多时,进行簇分裂,产生新的簇和SN来分组管理。
12. 如权利要求1所述的内容緩存方法,其特征在于,该方法还包括 若所述管理节点负载过大时,通过簇分裂,通过选择一个普通节点来管理分裂后的新的簇。
13. 如权利要求1所述内容緩存方法,其特征在于,所述内容分块包括 緩存分块号、内容标识和内容分块号。
14. 如权利要求1所述的内容緩存方法,其特征在于,该方法还包括 根据所述内容分块将普通用户节点聚簇进行簇合并和/或簇分裂。
15. 如权利要求1所述的内容緩存方法,其特征在于,该方法还包括 客户端即可以作为管理节点管理一个或多个内容,也可以作为所述普通用户节点归属于一个或多个管理节点。
16. —种内容查找方法,其特征在于,该方法包括接收普通用户节点发送的查询媒体数据的特定的内容分块的请求; 查询记录的緩存的或管理的普通用户节点緩存的内容分块信息,或向其 他相连的管理节点查询拥有该内容分块的节点的地址信息;向普通用户节点发送所述内容分块信息或所述内容分块节点的地址信白
17. 如权利要求16所述的内容查找方法,其特征在于,所述媒体数据包 括音频帧和/或视频帧的数据。
18. 如权利要求16所述的内容查找方法,其特征在于,所述查询媒体数 据的特定的内容分块的请求包括内容标识和分块编号。
19. 如权利要求16所述的内容查找方法,其特征在于,所述向普通用户 节点发送所述内容分块节点的地址信息包括节点地址信息、内容分块号和 分块数量。
20. 如权利要求16所述的内容查找方法,其特征在于,该方法还包括 普通用户通过中心调度服务器确定管理节点的地址信息。
21. —种点对点媒体传输系统,其特征在于,该系统包括普通用户节点,用于将获取的媒体数据内容以内容分块的形式緩存; 管理节点,用于管理根据所述内容将普通用户节点聚簇,并记录该内容 的内容分块信息和地址信息。
22. 如权利要求21所述的点对点媒体传输系统,其特征在于,该系统还 包括中心调度服务器,用于注册超级节点管理的内容,根据内容返回特定区 域内的超级节点信息。
23. 如权利要求22所述的点对点媒体传输系统,其特征在于,该系统还 包括备份管理节点,用于在管理节点异常退出时接替所述管理节点的功能。
24. —种管理节点,其特征在于,所述管理节点包括 查询请求接收单元,用于接收普通用户节点发送的查询媒体数据的特定的内容分块的请求;查询处理单元,用于查询查询普通节点緩存的内容分块信息,或向其他 相连的管理节点查询拥有该内容分块的节点的地址信息;查询结果发送单元,用于向普通用户节点发送所述内容分块信息或所述 内容分块节点的地址信息。
25. 如权利要求24所述的管理节点,其特征在于,所述管理节点还包括 内容分块存储单元,用于媒体数据内容分块信息和地址信息。
26. 如权利要求24所述的管理节点,其特征在于,所述管理节点还包括 注册请求加入单元,用于向注册中心服务器注册记录的内容分块信息。
27. 如权利要求24所述的管理节点,其特征在于,所述管理节点还包括 备份请求单元,用于在管理节点异常退出时,请求备份管理节点管理所述内容分块信息。
28. —种管理节点,其特征在于,该管理节点包括 聚簇管理单元,用于管理緩存同一内容的普通用户节点的聚簇; 存储处理单元,用于处理该内容的内容分块信息和地址信息的记录。
29. 如权利要求28所述的管理节点,其特征在于,所述管理节点还包括: 存储单元,用于记录该内容的内容分块信息和地址信息。
全文摘要
本发明实施例提供一种内容缓存方法,包括将获取的媒体数据内容以内容分块的形式缓存;根据内容将普通用户节点聚簇;选择一个或多个管理节点管理缓存同一内容的普通用户节点的聚簇,并记录聚簇中各节点的地址信息和拥有该内容的分块信息。同时,本发明实施例还提供一种内容查找方法、点对点媒体传输系统和管理节点。本发明实施例使得普通用户节点能够方便、高效地利用其他用户存储的内容,提高了用户查找的准确率和查找效率,克服了现有技术中搜索效率低的缺点,降低了服务器的负担。
文档编号H04N7/173GK101472166SQ200710305850
公开日2009年7月1日 申请日期2007年12月26日 优先权日2007年12月26日
发明者严哲峰, 陈浩华 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1