著录项信息
专利名称 | 一种提供点播内容的方法、系统和装置 |
申请号 | CN200810007659.4 | 申请日期 | 2008-03-04 |
法律状态 | 权利终止 | 申报国家 | 中国 |
公开/公告日 | 2008-07-30 | 公开/公告号 | CN101232600 |
优先权 | 暂无 | 优先权号 | 暂无 |
主分类号 | H04N7/173 | IPC分类号 | H;0;4;N;7;/;1;7;3;;;H;0;4;N;7;/;2;4查看分类表>
|
申请人 | 华为技术有限公司 | 申请人地址 | 广东省深圳市龙岗区坂田华为总部办公楼
变更
专利地址、主体等相关变化,请及时变更,防止失效 |
权利人 | 华为技术有限公司 | 当前权利人 | 华为技术有限公司 |
发明人 | 罗泽文;王子钟 |
代理机构 | 北京挺立专利事务所 | 代理人 | 皋吉甫 |
摘要
本发明实施例公开了一种提供点播内容的方法、系统和装置,所述提供点播内容的方法包括:统计点播内容的热度;根据所述统计的热度将所述点播内容存入闪存,所述存入闪存的点播内容在媒体服务器收到点播请求时优先被提供。本发明实施例通过将热片存入流媒体服务器的闪存中,提高了I/O的读写速度,从而提高了单台流媒体服务器的性能。并且由于闪存有断电数据不丢失的特点,因此重启也无需从硬盘中读取热片的数据到闪存中,可以提高启动速度。
1.一种提供点播内容的方法,其特征在于,包括:
统计点播内容的热度,所述统计过程是根据点播内容的点播时长对点播内容进行等级划分,统计划分的各等级的点播内容的点播次数;
设置一个定时器,定时启动按所述热度把影片或片头分发到闪存中的任务,具体为:根据所述统计的热度将所述点播内容存入闪存,所述存入闪存的过程是预先设定各等级的存储容量的比例,根据各等级的存储容量、点播内容的排名和差异比较算法将各等级的点播内容存入闪存,可以只将影片的片头放进闪存,存放多长时间的片头由统计出的用户点播时长来决定,采用分等级的策略,根据实际情况决定,所述存入闪存的点播内容在流媒体服务器收到点播请求时优先被提供。
2.如权利要求1所述提供点播内容的方法,其特征在于,所述点播内容包括:点播的整部影片或点播影片的片头。
3.如权利要求2所述提供点播内容的方法,其特征在于,当所述点播内容为点播影片的片头时,
在所述根据统计的热度将所述点播内容存入闪存之后,还包括:
将所述点播影片的全部内容存放在磁盘阵列中;或者,
将所述点播影片中除所述点播影片的片头之外的其他内容存放在磁盘阵列中。
4.如权利要求1所述提供点播内容的方法,其特征在于,所述统计点播内容的热度具体包括:根据预定时间之内的点播记录统计所述点播内容的热度,所述点播记录至少包括内容标识、点播时间和点播时长。
5.如权利要求1所述提供点播内容的方法,其特征在于,在所述统计所述划分的各等级的点播内容的点播次数之后,还包括:根据所述点播次数按等级对所述点播内容进行排名,
所述根据点播次数按等级对所述点播内容进行排名包括:
等级高的点播内容的排名高于等级低的点播内容的排名,当所述点播内容的等级相同时,点播次数多的点播内容的排名高于点播次数低的点播内容的排名;或者,设置各等级的权重,根据所述各等级的点播次数的加权和进行排名。
6.如权利要求1所述提供点播内容的方法,其特征在于,所述根据差异比较算法将所述各等级的点播内容存入闪存包括:
对闪存中已存的点播内容与新统计出来的热片或热片头进行差异比较;
如果所述闪存中已存的点播内容不在所述新统计出来的热片或热片头的范围之内,则清除所述闪存中已存的点播内容,并将所述新统计出来的热片或热片头中未存入所述闪存中的点播内容,存入闪存。
7.如权利要求6所述提供点播内容的方法,其特征在于,所述对闪存中已存的点播内容与新统计出来的热片或热片头进行差异比较包括:
如果所述闪存中已存的点播内容和等级与所述新统计出来的热片或热片头的内容和等级一致,则所述闪存中已存的点播内容和等级与所述新统计出来的热片或热片头为同一点播内容。
8.如权利要求1所述提供点播内容的方法,其特征在于,在所述根据统计的热度将所述点播内容存入闪存之后,还包括:将所述点播内容的更新结果通知负载均衡器。
9.一种提供点播内容的方法,其特征在于,包括:
缓冲预定分块大小的数据,定时启动按热度把影片或片头分发到闪存中的任务,将点播内容存入闪存,可以只将影片的片头放进闪存,存放多长时间的片头由统计出的用户点播时长来决定,采用分等级的策略,根据实际情况决定;
接收用户的点播请求;
根据所述用户的点播请求,优先读取所述流媒体服务器中的闪存中存储的所述点播内容。
10.如权利要求9所述提供点播内容的方法,其特征在于,还包括:
当所述流媒体服务器中的闪存中没有符合用户点播请求的内容时,从磁盘阵列中读取符合用户点播请求的点播内容;或者,
当所述流媒体服务器的闪存中仅存有点播影片的片头时,在读取完所述点播影片的片头之后,从所述磁盘阵列中读取所述点播影片除片头之外的其他内容。
11.一种提供点播内容的系统,其特征在于,包括:流媒体服务器、内容管理器,所述内容管理器,用于统计点播内容的热度,所述统计过程是根据点播内容的点播时长对点播内容进行等级划分,统计划分的各等级的点播内容的点播次数,定时启动按所述热度把影片或片头分发到闪存中的任务,根据所述统计的热度将所述点播内容存入所述流媒体服务器的闪存中,所述存入闪存的过程是预先设定各等级的存储容量的比例,根据各等级的存储容量、点播内容的排名和差异比较算法将各等级的点播内容存入闪存,可以只将影片的片头放进闪存,存放多长时间的片头由统计出的用户点播时长来决定,采用分等级的策略,根据实际情况决定;
所述流媒体服务器,用于在所述流媒体服务器的闪存中保存所述点播内容,在收到点播请求时优先读取所述存入闪存的点播内容。
12.如权利要求11所述提供点播内容的系统,其特征在于,所述流媒体服务器包括一块或多块闪存,所述闪存插接于所述流媒体服务器的后插板上或插接于所述流媒体服务器的主板插槽上。
13.如权利要求11所述提供点播内容的系统,其特征在于,进一步包括:磁盘阵列,用于保存所述点播影片的全部内容或者所述点播影片中除所述点播影片的片头之外的其他内容。
14.如权利要求11所述提供点播内容的系统,其特征在于,进一步包括:负载均衡器,用于根据所述点播内容选择流媒体服务器,优先选择在闪存中存有所述点播内容的流媒体服务器。
15.如权利要求14所述提供点播内容的系统,其特征在于,所述内容管理器还用于将所述点播内容的更新结果通知所述负载均衡器,则所述负载均衡器在进行点播内容的调度时,优先选择在闪存中存有所述点播内容的流媒体服务器。
16.一种内容管理器,其特征在于,包括:
热度统计模块,用于统计点播内容的热度,所述统计过程是根据点播内容的点播时长对点播内容进行等级划分,统计划分的各等级的点播内容的点播次数;
存储模块,用于根据所述统计模块统计的热度将所述点播内容存入流媒体服务器的闪存中,定时启动按热度把影片或片头分发到闪存中的任务,可以只将影片的片头放进闪存,存放多长时间的片头由统计出的用户点播时长来决定,采用分等级的策略,根据实际情况决定,所述存入闪存的过程是预先设定各等级的存储容量的比例,根据各等级的存储容量、点播内容的排名和差异比较算法将各等级的点播内容存入闪存。
17.如权利要求16所述内容管理器,其特征在于,所述热度统计模块包括:
记录管理子模块,用于管理点播记录,所述点播记录至少包括内容标识、点播时间和点播时长;
等级划分子模块,用于根据记录管理子模块管理的点播纪录中的点播时长对所述点播内容进行等级划分;
统计子模块,用于统计所述等级划分子模块划分的各等级的点播内容的点播次数。
18.如权利要求17所述内容管理器,其特征在于,所述存储模块包括:
排名子模块,用于根据所述统计子模块统计的点播次数按所述等级划分子模块划分的等级对所述点播内容进行排名;
内容存储子模块,用于根据所述排名子模块的排名和存入闪存的原则将所述各等级的点播内容存入闪存。
19.如权利要求16所述内容管理器,其特征在于,还包括:
通知模块,用于在所述存储模块将点播内容存入流媒体服务器的闪存中之后,将所述点播内容的更新结果通知负载均衡器。
20.一种流媒体服务器,其特征在于,包括:
闪存控制和驱动模块,用于缓冲预定分块大小的数据,定时启动按热度把影片或片头分发到闪存中的任务,再将点播内容存入内存,可以只将影片的片头放进闪存,存放多长时间的片头由统计出的用户点播时长来决定,采用分等级的策略,根据实际情况决定。
至少一块闪存,用于存储点播内容,所述闪存插接于所述流媒体服务器的后插板上或插接于所述流媒体服务器的主板插槽上;
媒体请求接收模块,用于接收用户的点播请求;
媒体提供模块,用于在所述媒体请求接收模块接收到用户的点播请求时,优先读取所述流媒体服务器中的闪存中的点播内容。
21.如权利要求20所述流媒体服务器,其特征在于,所述媒体提供模块还用于当所述流媒体服务器中的闪存中没有符合用户点播请求的内容时,从磁盘阵列中读取符合用户点播请求的点播内容;或者,当所速流媒体服务器的闪存中仅存有点播影片的片头时,在读取完所述点播影片的片头之后,从所述磁盘阵列中读取所述点播影片除片头之外的其他内容。
一种提供点播内容的方法、系统和装置 \n技术领域\n[0001] 本发明实施例涉及通信技术领域,特别涉及一种提供点播内容的方法、系统和装置。 \n背景技术\n[0002] 随着多媒体技术、通信技术以及硬件存储技术的发展,为了满足用户不同层次的需求,VOD(Video On Demand,视频点播)业务应运而生。运营商预先准备大量影片存储在视频点播系统中,用户可以向视频点播系统发出点播请求,随意地控制节目的播放。视频点播占用的服务器成本和网络带宽成本很高,在对这两个业务互相取长补短后,融合出一些全新的业务,例如:nPVR(network Personal Video Recording,网络个人视频录像)、TSTV(TimeShift Television,时移电视)。TVOD(Television On Demand,电视点播)、VOD和TSTV这类业务都需要服务器向用户提供流媒体服务。 \n[0003] 随着服务质量要求的不断提高,以及业务和用户的不断增加导致业务的并发流量暴增,对流媒体服务的性能要求也就越来越高了。单台服务器的性能主要受限于CPU(Central Processing Unit,中央处理器)速度、内存、网络带宽、I/O读写速度等关键因素。目前单个CPU的主频已经提升到了3G以上,一台服务器可以配多个CPU,因此,CPU速度问题还没有成为瓶颈;内存目前可以配置到十几个GB,一般使用4GB或8GB也就足够了;\n流媒体服务器已经支持多个网卡绑定聚合增加带宽,如3个GE(Gigabit Ethernet,以太网接口)口绑定聚合可达到接近3G的带宽了,并且10GE网卡也已经开始投产,因此网络的带宽问题也不是影响流媒体服务性能的主要问题。 \n[0004] 目前,流媒体服务器多采用磁盘阵列作为存储,受硬盘机械固有特性的严重限制,即使采用了把数据分散到多块磁盘中而提升整体I/O读写速度的技术,但提升的速度也不太明显,传统的SAN(Storage Area Network,存储区域网络)、DAS(Direct Access Storage,直接访问存储)、NAS(Network Attached Storage,网络附加存储)存储I/O读写速度一般在1GBit/S左右。因此,相对而言,磁盘的I/O读写速度成为了制约流媒体服务器性能的关键因素,是业界面临的一个技术难题。 \n[0005] 现有技术是预先把用户点播最多的影片缓冲到内存中,用户点播这些热片时,直接从内存中读出提供服务,利用内存比硬盘具有更高速的读写速度的特点,从而避免频繁访问磁盘,缓解磁盘I/O读写速度慢的压力。流媒体系统通过统计请求次数、请求频率这两个指标对流内容的缓存优先级进行排序,以决定把哪些文件放入缓存区,同时把哪些文件剔出缓存区。但是目前有些流媒体应用系统还是采用32位,这样导致这样的流媒体应用系统的可用内存最大只有4GB,在IPTV(Internet Protocol Television,网络电视)领域中,一部电影一般的容量都在1GB之上,因此最多也只能缓存4部电影节目。新的硬件系统与操作系统已经开始支持64位,32位的流媒体应用系统通过修改代码可以升级到支持64位,理论上可支持17179869184GB内存,但限于主板的内存插槽个数以及单块内存条的容量,一般情况下,一台服务器的最大可配十几GB的内存,最多也只能缓存十几部电影节目,这就存在内存存储影片数量较少的问题。并且,内存成本较高,目前市场1GB的内存条需要几百元甚至更多,某种程度上加大了投资负担。采用把热片放入内存的方法,在每次启动时都需要从硬件中读取热片的数据到缓冲区中,这样很大程度上可能影响启动的速度,降低运转速率。 \n[0006] 在实现本发明的过程中,发明人发现现有技术至少存在以下问题:现有的利用把热片存放在内存中来缓解磁盘读写速度慢的方法,内存可存放影片的数量较少,成本较高,整体启动速率较低。 \n[0007] 发明内容\n[0008] 本发明实施例提供一种提供点播内容的方法、系统和装置,以提高I/O的读写速度和单台流媒体服务器的性能。 \n[0009] 为达到上述目的,本发明实施例一方面提供一种提供点播内容的方法,包括:统计点播内容的热度,所述统计过程是根据点播内容的点播时长对点播内容进行等级划分,统计划分的各等级的点播内容的点播次数;设置一个定时器,定时启动按所述热度把影片或片头分发到闪存中的任务,具体为:根据所述统计的热度将所述点播内容存入闪存,所述存入闪存的过程是预先设定各等级的存储容量的比例,根据各等级的存储容量、点播内容的排名和差异比较算法将各等级的点播内容存入闪存,可以只将影片的片头放进闪存,存放多长时间的片头由统计出的用户点播时长来决定,采用分等级的策略,根据实际情况决定。\n所述存入闪存的点播内容在媒体服务器收到点播请求时优先被提供。 \n[0010] 另一方面,本发明实施例还提供一种提供点播内容的方法,包括:缓冲预定分块大小的数据,定时启动按热度把影片或片头分发到闪存中的任务,将点播内容存入闪存,可以只将影片的片头放进闪存,存放多长时间的片头由统计出的用户点播时长来决定,采用分等级的策略,根据实际情况决定。接收用户的点播请求;根据所述用户的点播请求,优先读取所述流媒体服务器中的闪存中存储的点播内容。 \n[0011] 再一方面,本发明实施例还提供一种提供点播内容的系统,包括:流媒体服务器、内容管理器,所述内容管理器,用于统计点播内容的热度,所述统计过程是根据点播内容的点播时长对点播内容进行等级划分,统计划分的各等级的点播内容的点播次数,定时启动按所述热度把影片或片头分发到闪存中的任务,根据所述统计的热度将所述点播内容存入所述流媒体服务器的闪存中,所述存入闪存的过程是预先设定各等级的存储容量的比例,根据各等级的存储容量、点播内容的排名和差异比较算法将各等级的点播内容存入闪存,可以只将影片的片头放进闪存,存放多长时间的片头由统计出的用户点播时长来决定,采用分等级的策略,根据实际情况决定;所述流媒体服务器,用于在所述流媒体服务器的闪存中保存所述点播内容,在收到点播请求时优先读取所述存入闪存的点播内容。 [0012] 再一方面,本发明实施例还提供一种内容管理器,包括:热度统计模块,用于统计点播内容的热度,所述统计过程是根据点播内容的点播时长对点播内容进行等级划分,统计划分的各等级的点播内容的点播次数;存储模块,用于根据所述统计模块统计的热度将所述点播内容存入流媒体服务器的闪存中,定时启动按热度把影片或片头分发到闪存中的任务,所述存入闪存的过程是预先设定各等级的存储容量的比例,根据各等级的存储容量、点播内容的排名和差异比较算法将各等级的点播内容存入闪存,可以只将影片的片头放进闪存,存放多长时间的片头由统计出的用户点播时长来决定,采用分等级的策略,根据实际情况决定。 \n[0013] 再一方面,本发明实施例还提供一种流媒体服务器,包括:闪存控制和驱动模块,用于缓冲预定分块大小的数据,定时启动按热度把影片或片头分发到闪存中的任务,再将点播内容存入内存。至少一块闪存,用于存储点播内容,可以只将影片的片头放进闪存,存放多长时间的片头由统计出的用户点播时长来决定,采用分等级的策略,根据实际情况决定,所述闪存插接于所述流媒体服务器的后插板上或插接于所述流媒体服务器的主板插槽上;媒体请求接收模块,用于接收用户的点播请求;媒体提供模块,用于在所述媒体请求接收模块接收到用户的点播请求时,优先读取所述流媒体服务器中的闪存中的点播内容。 [0014] 与现有技术相比,本发明实施例具有以下优点:本发明实施例通过将热 片存入流媒体服务器的闪存中,提高了I/O的读写速度,从而提高了单台流媒体服务器的性能。 [0015] 附图说明\n[0016] 图1为本发明实施例提供点播内容的方法的流程图; \n[0017] 图2为本发明实施例后插板式的媒体服务器硬件系统结构的示意图; [0018] 图3为本发明实施例主板插槽式的媒体服务器硬件系统结构的示意图; [0019] 图4为本发明实施例系统网络结构一的示意图; \n[0020] 图5为本发明实施例系统网络结构二的示意图; \n[0021] 图6为本发明实施例用户点播的流程图; \n[0022] 图7为本发明实施例热度统计算法的流程图; \n[0023] 图8为本发明实施例按热度定时分发的流程图; \n[0024] 图9为本发明实施例提供点播内容的系统的结构图; \n[0025] 图10为本发明实施例内容管理器的结构图; \n[0026] 图11为本发明实施例流媒体服务器的结构图。 \n[0027] 具体实施方式\n[0028] 本发明实施例提供一种提供点播内容的方法,通过本发明实施例,利用闪存作为热片的存储器,大大提高了I/O的读写速度,从而提高了单台流媒体服务器的性能。 [0029] 如图1所示,为本发明实施例提供点播内容的方法的流程图,具体包括以下步骤: [0030] 步骤S101,统计点播内容的热度。本发明实施例根据用户的点播次数和点播时长确定点播内容的热度,以确定哪些点播内容为热片。 \n[0031] 步骤S102,根据统计的热度将所述点播内容存入闪存,存入闪存的点播内容在媒体服务器收到点播请求时优先被提供。在确定热片的范围之后,根据流媒体服务器的闪存的大小将热片的全部内容存入闪存或只将热片的片头存入闪存,而将其他内容存入磁盘阵列。 \n[0032] 这样,当流媒体服务器接收到用户的点播请求时,优先读取闪存中存储的点播内容为用户提供服务,如果闪存中没有符合用户点播请求的点播内容,再考虑从磁盘阵列或本地磁盘中读取。如果闪存中只存放了点播内容的片头,那么流媒体服务器在播放完此片头之后,再从磁盘阵列或本地磁盘中找到与该片头对应的点播内容从片头的末尾继续播放。 \n[0033] 本发明实施例在每台流媒体服务器上都配置了一块或多块闪存(即Flash存储),可采用后插板的方式加入。如图2所示,为后插板式的流媒体服务器硬件系统结构的示意图。在图2中只显示了一块闪存,但实际应用不限于一块闪存。还可以采用在主板插槽上加入的方式。如图3所示,为主板插槽式的流媒体服务器硬件系统结构的录意图。图3中只显示了一块闪存,但实际应用不限于一块闪存。 \n[0034] 如图4所示,为本发明实施例系统网络结构一的示意图。本发明实施例中的客户端可以是手机、机顶盒、PC机等,但本发明实施例以无线网络中的手机为例进行说明。流媒体服务器采用集群部署,部署在负载均衡器后面,客户端先接入到负载均衡器中,由负载均衡器调度一台最佳流媒体服务器为该用户提供服务。负载均衡器可以按内容、按负载、按区域等方式进行综合调度。按内容调度是指把用户调度到有用户要观看的内容的流媒体服务器上提供服务,按负载调度是指把用户调度到CPU、内存等性能指标较低即负载较轻的流媒体服务器上提供服务,按区域调度是指把用户调度到离该用户在地理位置上最近的媒体服务器上提供服务。内容管理系统在本发明实施例中除了发布、修改、删除内容等常用内容管理功能之外,还需承担内容热度统计,决定哪些内容或片头存放在流媒体服务器的闪存中,同时把哪些内容或片头剔出流媒体服务器的闪存中等功能。 \n[0035] 当然本发明实施例的系统网络结构并不局限于此,也可以采用如图5所示的系统网络结构。流媒体服务器甚至可以采用本地磁盘,内容管理系统与流媒体服务器还可以合用一台机器。 \n[0036] 如图6所示,为本发明实施例用户点播的流程图。具体包括以下几个步骤: [0037] 步骤S601,用户的点播请求被接入到负载均衡器中。如果没有负载均衡器,用户的点播请求直接接入到流媒体服务器中,点播流程直接跳到步骤S604步。 [0038] 步骤S602,根据用户点播的内容,选择合适的流媒体服务器。 [0039] 通过本发明实施例,负载均衡器根据用户点播的内容,在负载同等或相差不远的情况下,优先考虑闪存有此内容片头的媒体服务器,即要求负载均衡器按内容调度时区分一下点播的内容是闪存内容还是一般的磁盘内容,先考虑闪存内容,然后再考虑区域等其它因素。 \n[0040] 步骤S603,把用户的点播请求转发给步骤S602选定的流媒体服务器中。 [0041] 步骤S604,根据用户请求,优先读取闪存中的点播内容。媒体服务器接收到用户请求时,优先考虑读取闪存中内容提供服务,如果闪存没有用户点 播的内容,再考虑从磁盘阵列或本地磁盘读取。如果闪存中只存放了片头,那么媒体服务器先播放完此片头后,再从磁盘阵列或本地磁盘中找到对应的内容从片头末尾继续播放。 \n[0042] 步骤S605,流媒体服务发送媒体流提供服务。 \n[0043] 步骤S606,流媒体服务器把用户点播请求通知内容管理系统。 [0044] 步骤S607,内容管理系统生成一条点播记录,保存在数据库或文件中,同一内容可能存在多条记录,每条记录包括但不限于以下信息:内容ID、用户IP、点播时间、点播时长等,这些信息以数据表的结构进行存放,记为Tab-Stat-Consume(消费记录统计表)。如果用户数量较多时,可能每天甚至每个小时产生巨量数据,这个数据表采用分表技术,即可按时段分表(例如可以按时、按天、按周、按月等),可以按容量大小分表(例如200MB一个分表),也可以按记录数量分表(例如300万条记录一个分表)。 \n[0045] 步骤S608,用户请求点播结束。 \n[0046] 步骤S609,流媒体服务器收到用户的结束请求后,把该用户的点播时长也上报给内容管理系统。 \n[0047] 步骤S610,内容管理系统找到对应的步骤S607生成的那条记录,把点播时长写入对应的记录中。 \n[0048] 尽管闪存的容量相对内存的容量提高了几十倍,但还不能达到存放所有内容的容量,因此需要把热片存放到闪存中,提高闪存的利用率,从而减少I/O的读写压力。考虑到实际应用中,有许多用户可能看了开头的几分钟后感觉不好看就退出了。针对此情况,为了更高效率地利用闪存的有限容量,不一定把整部影片存入闪存中,可以只将影片的片头放进闪存,至于存放多长时间的片头由统计出的用户点播时长来决定,采用分等级的策略,根据实际情况决定,分为多少等级,多长为一等级。举例说明,可以分3个等级,点播时长小于等于10分钟为第1等级,大于10分钟小于30分钟为第2等级,大于30分钟以上为第3等级。第1等级最多存放10分钟的片头(如果整部影片小于10分钟就存放整部影片),第2等级最多存放30分钟的片头(如果整部影片小于30分钟就存放整部影片),第3等级存放整部影片。本发明实施例以上述的分级 方法为例进行说明,但不限于上述分等方法,例如:\n可以包含但不限于以下一些特殊情况:只有一个等级,要么全是整部影片,要么全是某一个时长的片头。 \n[0049] 闪存与一般磁盘的影片分布有两种工作模式,一种是备份模式,即一般磁盘存放所有影片,闪存中存放片头(含整部影片)起加速的作用,即使闪存完全损坏了,流媒体服务器也能从一般磁盘中读取内容正常提供服务。这种模式的可靠性高,但存在影片冗余;而另一种是互斥模块,即在闪存保存部分,就不重复在一般磁盘上保存。这种模式的可靠性较弱,但不会存在影片冗余。 \n[0050] 闪存的刷写是有寿命限制的,读取在理论上是没有寿命限制。一般情况下,闪存按\n128K大小分块,每块数据块的寿命是10万次重复擦写,即每块数据块重复擦写10万次后,此数据块的可用性就不能保障了,但不会影响其它数据块。为了提高闪存的擦写寿命,闪存控制器和驱动程序一般都会采用磨损平衡算法,即在更新数据时优先选择擦写次数较少的数据块,这样使得闪存的数据块得以平均地使用。根据这种情况,有必要控制闪存的擦写次数,同时采用两种策略来控制。一种策略是采用磨损平衡算法,磨损平衡算法采用块处理方式,不同的闪存控制器和驱动程序分块大小可能有所不同,假设其最小分块为Block(单位:Byte),服务器应尽量保证先缓冲n×Block大小的数据(n取1、2、3等自然数),然后再一次性写入闪存,这样做可以最低程度地避免频繁地对某数据块进行擦写操作,延长闪存的寿命。另一种策略是采用按热度定时分发的策略,如图7所示。具体包括以下几个步骤: [0051] 步骤S701,设置一个定时器,定时启动按热度把影片或片头分发到闪存中的任务。 [0052] 建议但不限于每天定时执行一次,如果每天执行一次,假设每次执行都全更新,闪存有100,000/365=273.97年的寿命。 \n[0053] 步骤S702,整理并统计媒体服务器中哪个影片或片头存入闪存或从闪存中删除。 [0054] 根据热度统计算法,以统计出每台媒体服务器该新增哪些影片片头以及 多长片头(有可能整部影片)放入闪存中,同时该把哪些影片片头(有可能整部影片)剔出闪存中。 \n[0055] 步骤S703,将统计好的结果通知给对应的每台媒体服务器。 \n[0056] 步骤S704,根据内容服务器统计的结果,把要求删除的内容或片头从闪存中擦除,把要求新增进来的内容或片头添加到闪存中去。 \n[0057] 步骤S705,将闪存中的内容或片头更新的结果通知给负载均衡器,以便负载均衡器在按内容调度时,准确地调度到对应的媒体服务器中。 \n[0058] 如图8所示,为本发明实施例热度统计算法的流程图,从Tab_Stat_Consume表中取最近的n天(n可配,推荐为7天)的点播记录而不是取内容从发布生效到当前时间的点播记录来计算统计热度,这是认为热度是跟当前最近的时间段相关性最大,超出此时间段认为相关性为0。具体包括以下几个步骤: \n[0059] 步骤S801,先做原始数据的预统计处理。 \n[0060] 从原始记录表Tab_Stat_Consume(例如表1所示)中统计出各个内容各个等级的点播次数(例如表2所示)。假设当前时间是2007-12-25,取最近7天的记录做统计,根据点播时间可过滤其它无用的数据,如表1所示,第1条、第2条记录点播时长超了30分钟,满足等级3的条件,即内容A在最近7天内满足等级3的点播次数是2,如此类推,就可以形成表2的预处理结果。 \n[0061] 表1内容A的点播记录表 \n[0062] \n 序号 内容ID 点播时间 点播时长(秒)\n 1 内容A 2007-12-20 16:30:39 1828\n 2 内容A 2007-12-21 17:26:31 3618\n 3 内容A 2007-12-22 18:18:42 511\n 4 内容A 2007-12-23 19:13:49 799\n 5 内容A 2007-12-24 23:51:27 874\n[0063] 表2内容A按等级统计结果表 \n[0064] \n[0065] 步骤S802,按排名规则对内容进行排名。 \n[0066] 根据预统计结果给各个内容一个排名,有但不限于两种排名规则如下,一种排名规则是:等级越高的点播次数越多排名越靠前,如果高等级的点播次数相同就比较下一等级的点播次数,直到比较到最低等级的点播次数,如表2所示的顺序;另一种即排名规则是:给个等级设定一个权重,根据各个等级的点播次数的加权和从大到小排名。 [0067] 步骤S803,把内容片头存入闪存中。 \n[0068] 按一种存入闪存的原则以及一种差异比较算法把内容片头存入闪存中。存入闪存的原则包括但不限于以下一种原则,按比例分配原则:即预先规定好各个等级的存储容量的比例,如:50%容量放等级1的内容片头,30%容量放等级2的内容片头,20%容量放等级\n3的内容片头(一般情况下,就是整部影片了),优先把排名靠前的内容作为高等级的内容,并从高等级到低等级按规定的容量大小存入各个等级的内容片头,存满闪存为止。差异比较算法如下:从当前每台流媒体服务器中,取出存放在闪存里的内容片头列表;对每台媒体服务器建立一个删除列表(DelList),一个新增列表(AddList);将存放在闪存的内容片头与当前闪存中的内容片头列表做差异比较,把TopNList中在当前闪存片头列表不存在的内容放入在TemList列表中;如果当前闪存中的片头列表在TopNList中不存在的内容片头就存人对应的DelList中,再从TemList中取出容量相当的内容到对应的AddList中;最后通知各流媒体服务器 更新内容片头到闪存中,如果系统中存在负载均衡器,通知负载均衡器各流媒体服务器闪存中内容片头的变更情况。 \n[0069] 通过本发明实施例,在进行差异比较算法中,对新旧内容片头做差异比较时,只有内容ID相同并且使用了同一等级片头才认为内容不需要改变,否则就需要更新。 [0070] 本发明实施例通过将热片存入流媒体服务器的闪存中,提高了I/O的读写速度,从而提高了单台流媒体服务器的性能。并且由于闪存有断电数据不丢失的特点,因此重启也无需从硬盘中读取热片的数据到闪存中,可以提高启动速度。 \n[0071] 如图9所示,为本发明实施例提供点播内容的系统的结构图,包括:流媒体服务器\n91、负载均衡器92、内容管理器93和磁盘阵列94, \n[0072] 内容管理器93,用于统计点播内容的热度,根据统计的热度将点播内容存入流媒体服务器91的闪存中,以提高流媒体服务器91的性能; \n[0073] 内容管理器93在本发明实施例中除了发布/修改/删除内容等常用内容管理功能之外,还需承担内容热度统计,决定哪些内容或片头存放在流媒体服务器91的闪存中,同时把哪些内容或片头剔出流媒体服务器91的闪存中等功能。 \n[0074] 为了实现内容热度统计,内容管理器93还需要管理用户的点播记录,把点播记录保存在数据库或文件中,同一内容可能存在多条记录,每条记录包括但不限于以下信息:内容ID、点播时间、点播时长等,上述信息以数据表的结构存放,如果用户数较多时,可能每天甚至每个小时产生巨量数据,此数据表采用分表技术,即可按时段分表(例如:按时、按天、按周、按月等,当然本发明实施例并不仅限于上述的时段分表),可以按容量大小分表(例如200MByte一个分表),也可以按记录数量分表(例如300万条记录一个分表)。 [0075] 如果系统部署了负载均衡器92,内容管理器93每次更新热片或热片头到闪存时,或直接把热片或热片头的分布情况通知给负载均衡器92,或经流媒体服务器91通知到负载均衡器92,以便负载均衡器92在按内容调度时,优先找在闪存中存有符合用户的点播请求的点播内容的流媒体服务器91。 \n[0076] 流媒体服务器91,用于在流媒体服务器91的闪存中保存点播内容。 [0077] 其中,流媒体服务器91包括一块或多块闪存,所述闪存插接于所述流媒体服务器的后插板上或插接于所述流媒体服务器的主板插槽上。 \n[0078] 流媒体服务器91中的闪存控制器和驱动程序应采用磨损平衡算法,磨损平衡算法是采用块处理的方式,不同的闪存控制器和驱动程序分块大小可能有所不同,假设其最小分块为Block(单位:Byte),流媒体服务器91应尽量保证先缓冲n×Block大小的数据(n取1、2、3等自然数),然后再一次性写入流媒体服务器91的闪存,这样做可以最低程度地避免频繁地对某数据块进行擦写操作,延长闪存的寿命。 \n[0079] 由于闪存有擦写寿命的限制,尽管流媒体服务器91的闪存控制器和驱动程序需要采用磨损平衡算法,但为了减少寿命风险,内容管理器93不推荐实时更新热片到闪存中,推荐根据热度定时更新热片到闪存中(譬如每天更新一次,但不限于按天)。 [0080] 其中,磁盘阵列94用于保存点播影片的全部内容或者点播影片中除所述点播影片的片头之外的其他内容。当流媒体服务器91接收到用户请求时,优先考虑读取流媒体服务器91的闪存中的内容为用户提供服务,如果闪存中没有符合用户点播要求的点播内容,再考虑从磁盘阵列94或本地磁盘读取。如果闪存中只存放了片头,那么流媒体服务器91在播放完此片头后,再从磁盘阵列或本地磁盘中找到对应的内容从片头末尾继续播放。 [0081] 其中,负载均衡器92用于根据点播内容选择流媒体服务器91,优先选择在闪存中存有该点播内容的流媒体服务器91。负载均衡器92根据用户点播的内容,在负载同等或相差不远的情况下,优先选择闪存中存有点播内容片头的流媒体服务器91,即要求负载均衡器92在按内容调度时区分该点播内容是在闪存中的内容还是一般磁盘中的内容,闪存中的内容比一般磁盘的内容优先级高,然后再考虑区域等其它因素。 \n[0082] 如图10所示,为本发明实施例内容管理器的结构图,包括:热度统计模块1001,用于统计点播内容的热度; \n[0083] 存储模块1002,用于根据热度统计模块1001统计的热度将点播内容存入 流媒体服务器的闪存中。 \n[0084] 其中,统计模块1001包括:记录管理子模块10011,用于管理点播记录,该点播记录至少包括内容标识、点播时间和点播时长; \n[0085] 等级划分子模块10012,用于根据记录管理子模块10011管理的点播纪录中的点播时长对点播内容进行等级划分; \n[0086] 统计子模块10013,用于统计等级划分子模块10012划分的各等级的点播内容的点播次数。 \n[0087] 其中,存储模块1002包括: \n[0088] 排名子模块10021,用于根据统计子模块10013统计的点播次数按等级划分子模块10012划分的等级对点播内容进行排名; \n[0089] 内容存储子模块10022,用于根据排名子模块10021的排名和存入闪存的原则将所述各等级的点播内容存入闪存。例如:预先设定等级划分子模块10012划分的各等级的存储容量,根据设定的各等级的存储容量、排名子模块10021的排名和差异比较算法将各等级的点播内容存入闪存。 \n[0090] 其中,内容管理器还包括:通知模块1003,用于在存储模块1002将点播内容存入流媒体服务器的闪存中之后,将点播内容的更新结果通知负载均衡器。 [0091] 如图11所示,为本发明实施例流媒体服务器的结构图,包括:至少一块闪存111,用于存储点播内容,闪存111插接于流媒体服务器的后插板上或插接于流媒体服务器的主板插槽上; \n[0092] 媒体请求接收模块112,用于接收用户的点播请求; \n[0093] 媒体提供模块113,用于在媒体请求接收模块112接收到用户的点播请求时,优先读取流媒体服务器中的闪存111中的点播内容。 \n[0094] 媒体提供模块113还用于当流媒体服务器中的闪存111中没有符合用户点播请求的内容时,从磁盘阵列中读取符合用户点播请求的点播内容;或者, \n[0095] 当流媒体服务器的闪存111中仅存有点播影片的片头时,在读取完点播影片的片头之后,再从磁盘阵列中读取该点播影片除片头之外的其他内容。 \n[0096] 其中,该流媒体服务器进一步包括:闪存控制和驱动模块114,用于缓冲 预定分块大小的数据,再将所述点播内容存入内存111。 \n[0097] 通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。 \n[0098] 以上公开的仅为本发明的几个具体实施例,但是,本发明并非局限于此,任何本领域的技术人员能思之的变化都应落入本发明的保护范围。
法律信息
- 2014-04-16
未缴年费专利权终止
IPC(主分类): H04N 21/238
专利号: ZL 200810007659.4
申请日: 2008.03.04
授权公告日: 2011.07.20
- 2011-07-20
- 2008-09-24
- 2008-07-30
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 |
1
| |
2005-04-06
|
2004-11-04
| | |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |