CN102638402B - 流媒体双缓存技术中填充数据的方法及装置 - Google Patents
流媒体双缓存技术中填充数据的方法及装置 Download PDFInfo
- Publication number
- CN102638402B CN102638402B CN201210086453.1A CN201210086453A CN102638402B CN 102638402 B CN102638402 B CN 102638402B CN 201210086453 A CN201210086453 A CN 201210086453A CN 102638402 B CN102638402 B CN 102638402B
- Authority
- CN
- China
- Prior art keywords
- message
- filling
- queue
- message execution
- cache
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 76
- 238000005516 engineering process Methods 0.000 title claims abstract description 36
- 238000012545 processing Methods 0.000 claims abstract description 89
- 239000000872 buffer Substances 0.000 claims description 71
- 230000008569 process Effects 0.000 description 12
- 230000005540 biological transmission Effects 0.000 description 8
- 238000001514 detection method Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 230000009977 dual effect Effects 0.000 description 2
- 238000005429 filling process Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Landscapes
- Computer And Data Communications (AREA)
Abstract
本发明公开了一种流媒体双缓存技术中填充数据的方法,该方法包括:设置消息初始队列及N个消息执行队列;中断时间到后,消息管理模块锁定消息初始队列,将消息初始队列中的所有缓存填充消息分发至对应的消息执行队列,分发完毕后解锁消息初始队列,之后对消息执行队列中的消息进行重分配处理,处理完毕后通知read线程池管理模块;read线程池管理模块依据各消息执行队列对应的填充安全时长、以及当前磁盘I/O和CPU的占用率信息,调用read线程依次从各消息执行队列中读取消息并进行填充处理。本发明同时还公开了一种流媒体双缓存技术中填充数据的装置,采用本发明的方法及装置,能有效地减少获取磁盘I/O和CPU占用率信息的次数。
Description
技术领域
本发明涉及流媒体技术,尤其涉及一种流媒体双缓存技术中填充数据的方法及装置。
背景技术
流媒体(streaming media)又称为流式媒体,流媒体技术是一种使音频、视频和其它多媒体元素在因特网(Internet)及无线网络上以实时的、无需下载等待的方式进行播放的技术。由于流媒体技术的优越性,该技术广泛应用于视频点播、视频会议、远程教育、远程医疗、在线直播***、以及互动电视***等。
作为新一代互联网应用的标志,流媒体技术在近几年得到了飞速发展。流媒体服务器是流媒体技术应用的核心***,是运营商向用户提供视频服务的关键平台。而限制流媒体服务***的性能,特别是读取数据进行服务的速度和质量的主要因素包括:1)硬盘技术带来的网络存储瓶颈;2)流媒体点播技术瓶颈;3)互联网带宽瓶颈。
目前,市场上主流7200转硬盘的读取速度为150MB/s左右,磁盘阵列的IO吞吐量一般为400MB/s左右。与以前的硬盘技术相比,目前的硬盘技术虽然有了很大提高,但相比较计算机其它方面的性能提高和数字信息量的增长速度,硬盘技术仍相对落后。硬盘技术的缓慢发展,限制了网络存储能力,它成为影响流媒体服务速度的主要因素之一。根据硬盘特定的盘片结构,增大每次读写的数据量可提高硬盘访问效率。
为了提高流媒体服务***的性能,在与存储相关的***和实现方面,多数技术方案均是以多个磁盘构成RAID组通过磁盘阵列来获得高的吞吐能力,即获得高的硬盘读写效率,这样,会带来高的运营成本。
从用户角度来看,在播放流媒体时,大多数情况下,用户的习惯是按顺序观看,即使有跳跃观看操作,在短时间内,多数也是按顺序播放的。
根据计算机存储的分级结构、磁盘适合大数据量顺序读写的特点、以及用户大部分时间内进行连续播放的习惯,针对硬盘整体读取速度偏低和访问效率不高的现状,提出了一种知情式文件预读取方法,可应用于网络流媒体等服务,能提高硬盘读取效率,从而增加这些应用的服务能力。这里,知情式文件预读方法是指:按照媒体文件存储的顺序选择预读的内容,***把将来可能用到的数据预先读取到缓存中。基于此预读取方法,可以在流媒体应用程序里预设缓存,每次读取大量连续的数据,从而提高硬盘访问效率,而且与用户播放流媒体的习惯相符合。当预设缓存的数据用完后,需要从硬盘中读取下一部分数据,此时,存在延时,为解决延时带来的影响,知情式预读取方法往往采用双缓存技术。这里,所述双缓存技术是指:采用两个动态申请的且大小相同的缓存空间。两个缓存轮流为用户提供服务。双缓存结构中会记录缓存总大小、剩余数据量、当前服务的单缓存、两个单缓存起始地址、以及下次发送数据的地址大小等信息。
双缓存技术的一个关键点是何时填充缓存。目前常用的方法包括:
(1)随机填充式策略:主要思想是当双缓存切换后,不是立即填充空缓存,而随机选择一个填充时间,并保证在下次双缓存切换之前完成。这种策略最大的特点是随机化,宏观来看,可以做到使读磁盘操作平均分布于时间轴之上。图1为双缓存的动作时间轴示意图,如图1所示,时间点T1表示开始使用该缓存的时间,时间点T2表示填充另一个空缓存的时间,时间点T3表示为空缓存预留的安全时间,时间点T4表示当前缓存数据用完并切换至另一缓存的时间,同时也是另一缓存开始使用的时间;其中,时间点T3存在的目的是:防止由于***忙碌、或时间点T2离时间点T4太近,而导致在时间点T4到来之前还没有完成空缓存的填充。切换动作就是指:将会话结点中缓存结构的发送指针指向另一缓存,并更新相关的统计数据。
空缓存的随机化填充在时间点T1和T3之间进行。具体实现是:首先计算时间点T3至时间点T1的时间间隔所经历的定时器中断次数INTR_NUM;然后,在时间点T4进行缓存切换时,为每个用户会话的新空缓存生成随机魔数m,且0<m<INTR_NUM;每当定时器超时时,都在中断处理函数中将m减1,如果m等于0,则进行空缓存的填充,即:构造消息传递至读(read)消息队列,由read线程池执行具体的读磁盘操作。其中,为每个用户会话的新空缓存生成随机魔数m的目的是:避免所有的用户会话同时填充空缓存,从而避免了磁盘的大量并发读操作所带来的负荷,实现了磁盘I/O的负载均衡。
(2)状态检测式策略:虽然随机填充式策略从宏观上实现了磁盘I/O的负载均衡,但该策略忽略了切换时磁盘I/O和CPU的状态,因此可能会错失开始的最佳填充时机。因此,状态检测式策略的主要思想是:在双缓存切换后,首先立即判断磁盘I/O传输速率和CPU占用率,如果都在较低的范围内,就立即进行空缓存填充;否则,就按随机填充式策略处理。
(3)指数后退式策略:随机填充式策略和状态检测式策略这两种空缓存填充策略,都应用了随机化填充的方法,但是,这两种填充策略可能会存在潜在的问题:如果在随机选择的填充时间点,磁盘传输速率和CPU占用率比较高,填充操作仍会增加***的负担。因此,指数后退式策略的主要思想是:在每次空缓存填充时,首先判断当前的磁盘传输速率和CPU占用率,如果都在较低的范围之内,就立即进行读磁盘填充空缓存操作;如果磁盘传输速率或CPU占用率很高,说明***忙碌,此时以指数时间向后退避,在退避的时间段内选择一个随机填充时间。当新的填充时间到来时,重复上述判断步骤,直到到达安全时间点,不管***是否忙碌,立刻进行读磁盘填充操作。
指数后退式策略改进了随机填充式策略和状态检测式策略,使得空缓存填充时间点选择的更加合理,可以更好地和均衡地利用磁盘的I/O吞吐量和CPU的能力。但该策略也存在一定缺点:获取磁盘传输速率和CPU占用率的次数众多,如果获取这些信息花费的时间较长,则有可能会过多地占用服务用户的时间。
以上三个策略中,在每个时间中断,对每个服务都要检测是否到了填充时机,如果未到填充时机,则随机魔数m减1,如果到了填充时机,则判定是否填充。每个服务都要保存随机魔数信息并改变,且要判断是否进行填充,这增加了***开销。
另外,以上三个策略都没有根据任务的紧急性进行优先级排名。举个例子来说,服务A已经到了安全填充时间,服务B刚进行缓存切换,而此时磁盘I/O传输速率和CPU占用率都比较低,因此,两者都能执行填充。显然,由于服务A已经到了安全填充时间,所以应该优先对服务A进行缓存填充,但现有的策略中,服务A无法优先进行缓冲填充。
发明内容
有鉴于此,本发明的主要目的在于提供一种流媒体双缓存技术中填充数据的方法及装置,能有效地减少获取磁盘I/O传输速率和CPU占用率信息的次数。
为达到上述目的,本发明的技术方案是这样实现的:
本发明提供了一种流媒体双缓存技术中填充数据的方法,该方法包括:
设置N个消息执行队列;
缓存切换后,消息管理模块将收到的缓存填充消息分发至对应的消息执行队列,同时,read线程池管理模块依据各消息执行队列对应的填充安全时长,调用read线程依次从对各消息执行队列中读取消息并进行填充处理;
中断时间到后,消息管理模块锁定所有消息执行队列,之后对消息执行队列中的缓存填充消息进行重分配处理,执行完毕后对所有消息执行队列解锁并通知read线程池管理模块;
read线程池管理模块依据各消息执行队列对应的填充安全时长、以及当前磁盘I/O和CPU的占用率信息,调用read线程依次从当前各消息执行队列中读取消息并进行填充处理。
上述方案中,所述设置N个消息执行队列,为:
依据设定的缓存的最大服务时间及中断时长,设置N个消息执行队列。
上述方案中,该方法还包括:
缓存切换后,处理前端向消息管理模块发送缓存填充消息。
上述方案中,所述消息管理模块将收到的缓存填充消息分发至对应的消息执行队列,包括:
依据收到的各缓存填充消息对应的填充安全时长,将各缓存填充消息分发至对应的消息执行队列。
上述方案中,在设置N个消息执行队列时,该方法进一步包括:依据中断次数,依次为每个消息执行队列进行编号;
相应的,如果首消息执行队列中有未处理的缓存填充消息,所述对消息执行队列中的缓存填充消息进行重分配处理,包括:
将首消息执行队列中未处理的缓存填充消息移入第二个消息执行队列的队首,并修改首消息执行队列的编号为N-1,同时修改其它各消息执行队列的编号为当前编号减一。
上述方案中,如果首消息执行队列中没有未处理的缓存填充消息,所述对消息执行队列中的缓存填充消息进行重分配处理,包括:
修改首消息执行队列的编号为N-1,同时修改其它各消息执行队列的编号为当前编号减一。
上述方案中,所述依据各消息执行队列对应的填充安全时长、以及当前磁盘I/O和CPU的占用率信息,调用read线程依次从当前各消息执行队列中读取消息并进行填充处理,包括:
如果进行重分配处理后的首消息执行队列及第二个消息执行队列中有未处理的缓存填充消息,则read线程池管理模块调用read线程依次读取首消息执行队列及第二个消息执行队列中的缓存填充消息,并进行填充处理,直至首消息执行队列及第二个消息执行队列中的缓存填充消息处理完,如果没有,则根据当前磁盘I/O和CPU的占用率信息,判断流媒体服务器***是否繁忙,如果繁忙,则等待预设时长后继续判断流媒体服务器***是否繁忙,如果空闲,则读取第三个消息执行队列中的缓存填充消息,并进行填充处理,第三个消息执行队列中的缓存填充消息处理完成后,进一步判断流媒体服务器***是否繁忙,如果繁忙,则等待预设时长后继续判断流媒体服务器***是否繁忙,如果空闲,则读取第四个消息执行队列中的缓存填充消息,并进行填充处理,以此类推。
本发明又提供了一种流媒体双缓存技术中填充数据的方法,该方法包括:
设置1个消息初始队列及N个消息执行队列;
中断时间到后,消息管理模块锁定所述消息初始队列,通知read线程池管理模块暂停读取消息,将所述消息初始队列中的所有缓存填充消息分发至对应的消息执行队列,分发完毕后解锁所述消息初始队列,之后对消息执行队列中的消息进行重分配处理,处理完毕后通知read线程池管理模块;
read线程池管理模块依据各消息执行队列对应的填充安全时长、以及当前磁盘I/O和CPU的占用率信息,调用read线程依次从各消息执行队列中读取消息并进行填充处理。
上述方案中,该方法还包括:
缓存切换后,处理前端添加缓存填充消息至所述消息初始队列。
上述方案中,所述将所述消息初始队列中的所有缓存填充消息分发至对应的消息执行队列,包括:
依据各缓存填充消息的填充安全时长,将各缓存填充消息分发至对应的消息执行队列。
上述方案中,所述依据各消息执行队列对应的填充安全时长、以及当前磁盘I/O和CPU的占用率信息,调用read线程依次从当前各消息执行队列中读取消息并进行填充处理,包括:
本发明还提供了一种流媒体双缓存技术中填充数据的装置,该装置包括:第一消息管理模块、第一read线程池管理模块、以及第一read线程模块;其中,
第一消息管理模块,用于缓存切换后,将收到的缓存填充消息分发至对应的设置的N个消息执行队列;并在中断时间到后,锁定所有消息执行队列,之后对消息执行队列中的缓存填充消息进行重分配处理,执行完毕后对所有消息执行队列解锁并通知第一read线程池管理模块;
第一read线程池管理模块,用于依据各消息执行队列对应的填充安全时长,调用read线程依次从对各消息执行队列中读取消息并进行填充处理,并在收到消息管理模块的通知后,依据各消息执行队列对应的填充安全时长、以及当前磁盘I/O和CPU的占用率信息,调用第一read线程模块依次从当前各消息执行队列中读取消息并进行填充处理。
上述方案中,该装置还包括:第一处理前端,用于向第一消息管理模块发送缓存填充消息;
所述第一消息管理模块,还用于接收第一处理前端发送的缓存填充消息。
本发明还提供了一种流媒体双缓存技术中填充数据的装置,该装置包括:第二消息管理模块、第二read线程池管理模块、以及第二read线程模块;其中,
第二消息管理模块,用于中断时间到后,锁定所述消息初始队列,通知第二read线程池管理模块暂停读取消息,将所述消息初始队列中的所有缓存填充消息分发至对应的消息执行队列,分发完毕后解锁所述消息初始队列,之后对消息执行队列中的消息进行重分配处理,处理完毕后通知第二read线程池管理模块;
第二read线程池管理模块,用于收到消息管理模块在对消息执行队列中的消息进行重分配处理完毕后发送的通知后,依据各消息执行队列对应的填充安全时长、以及当前磁盘I/O和CPU的占用率信息,调用第二read线程模块依次从各消息执行队列中读取消息并进行填充处理。
上述方案中,该装置还包括:第二处理前端,用于缓存切换后,添加缓存填充消息至所述消息初始队列。
本发明提供的流媒体双缓存技术中填充数据的方法及装置,设置N个消息执行队列,缓存切换后,消息管理模块将收到的缓存填充消息分发至对应的消息执行队列;中断时间到,消息管理模块锁定所有消息执行队列,之后对消息执行队列中的缓存填充消息进行重分配处理,执行完毕后对所有消息执行队列解锁并通知read线程池管理模块;read线程池管理模块依据各消息执行队列对应的填充安全时长、以及当前磁盘I/O和CPU的占用率信息,调用read线程依次从当前各消息执行队列中读取消息并进行填充处理。或者,设置1个消息初始队列及N个消息执行队列,中断时间到,消息管理模块锁定所述消息初始队列,通知read线程池管理模块暂停读取消息,将所述消息初始队列中的所有缓存填充消息分发至对应的消息执行队列,分发完毕后解锁所述消息初始队列,之后对消息执行队列中的消息进行重分配处理,处理完毕后通知read线程池管理模块;read线程池管理模块依据各消息执行队列对应的填充安全时长、以及当前的磁盘I/O和CPU的占用率信息,调用read线程依次从各消息执行队列中读取消息并进行填充处理,如此,能有效地减少获取磁盘I/O和CPU占用率信息的次数,从而减少对服务用户的时间的占用,提升用户体验。
另外,本发明中,中断时间到,为了提高消息管理模块对消息进行重分配处理的效率,采用如下方法进行重分配操作:如果首消息执行队列Q0中还有未处理的缓存填充消息,将首消息执行队列Q0中未处理的缓存填充消息移入第二个消息执行队列Q1的队首,并修改首消息执行队列的编号为N-1,同时修改其它各消息执行队列的编号为当前编号减一,如此,能对安全填充安全时长短的缓存填充消息优先进行处理,进一步提升用户体验。
另外,本发明中,read线程池管理模块不是每次调用read线程时均获取当前I/O和CPU的占用率信息,而是按照如下方法进行判断:依照执行消息队列的编号依次读取消息进行处理,当消息执行队列Qi中的消息处理完毕后,如果i为0,则立即从消息执行队列Q1中读取消息进行处理;否则,根据获取的磁盘I/O和CPU的占用率信息,判断流媒体服务器***是否繁忙,如果***繁忙,则等待一段时间后继续判断,当***空闲时,从消息执行队列Qi+1中读取消息并进行填充处理,执行队列Qi+1没有消息,则从执行队列Qi+2读取消息并进行填充处理,如果执行队列Qi+2也没有消息,则从执行队列Qi+3读取消息并进行填充处理,以此类推;收到消息管理模块的完成重新分配的消息后,重新从首消息执行队列Q0开始,依照执行消息队列的编号依次读取消息并进行填充处理,此时不管***是否繁忙,只要消息执行队列Q0中有消息,则都要读取消息并进行填充处理。
附图说明
图1为双缓存的动作时间轴示意图;
图2为本发明一种流媒体双缓存技术中填充数据的方法流程示意图;
图3为本发明另一种流媒体双缓存技术中填充数据的方法流程示意图;
图4为本发明实施例流媒体双缓存技术中填充数据的方法流程示意图;
图5为本发明一种流媒体双缓存技术中填充数据的装置结构示意图;
图6为本发明另一种流媒体双缓存技术中填充数据的装置结构示意图。
具体实施方式
下面结合附图及具体实施例对本发明再作进一步详细的说明。
本发明流媒体双缓存技术中填充数据的方法,如图2所示,包括以下步骤:
步骤200:设置N个消息执行队列,之后执行步骤201;
这里,在执行本步骤之前,该方法还可以进一步包括:
设定缓存大小,根据缓存大小和用户带宽可得出每个用户对应的缓存的服务时间(ST)。
其中,合适的缓存大小能充分发挥流媒体服务器***的性能,提高服务用户数。具体实现可采用现有技术。
缓存大小确定后,用户的带宽越小,则ST越长。对于一个流媒体服务器来说,由于它能服务的带宽种类是有限的,因此对确定的缓存大小,会有一个最大ST,即:所有用户对应的ST中最大的ST。依据最大ST及中断时长,确定N的取值;举个例子来说,假设最大ST为1,中断时长为0.1,则N=1/0.1+1=11。其中,设置的N个消息执行队列包含用于存放安全时间到了的缓存填充消息的消息执行队列,即:存放中断次数为0的缓存填充消息的消息执行队列。
这里,在设置消息执行队列时,根据中断次数为0、1、……,依次为每个消息执行队列进行编号,可以依次表示为Q0、Q1……QN-1。
步骤201:缓存切换后,消息管理模块将收到的缓存填充消息分发至对应的消息执行队列,同时,read线程池管理模块依据各消息执行队列对应的填充安全时长,调用read线程依次从对各消息执行队列中读取消息并进行填充处理,之后执行步骤202;
这里,所述消息管理模块将收到的缓存填充消息分发至对应的消息执行队列,具体为:
依据收到的各缓存填充消息对应的填充安全时长,将各缓存填充消息分发至相应的消息执行队列,即:将填充安全时长为i的缓存填充消息分发到消息执行队列Qi。其中,i表示填充安全时长所折算成的中断次数。
其中,所述缓存填充消息中携带对应的填充安全时长,所述填充安全时长以中断次数为单位,换句话说,所述填充安全时长为折算成中断次数的填充安全时长。
消息管理模块收到的缓存填充消息来自处理前端切换缓存而触发的缓存填充消息。
其中,read线程池管理模块在调用read线程依次从对各消息执行队列中读取消息并进行填充处理时,在读取每个消息执行队列中的缓存填充消息并进行填充处理之前,均需要根据当前磁盘I/O和CPU的占用率信息,判断流媒体服务器***是否繁忙,如果繁忙,则等待预设时长后继续判断流媒体服务器***是否繁忙,如果空闲,则从当前待处理的消息执行队列中读取消息并进行填充处理。
步骤202:中断时间到后,消息管理模块锁定所有消息执行队列,之后对消息执行队列中的缓存填充消息进行重分配处理,执行完毕后对所有消息执行队列解锁并通知read线程池管理模块;
这里,如果首消息执行队列Q0中有未处理的缓存填充消息,则所述对消息执行队列中的缓存填充消息进行重分配处理,具体包括:
将首消息执行队列Q0中未处理的缓存填充消息移入第二个消息执行队列Q1的队首,并修改首消息执行队列的编号为N-1,同时修改其它各消息执行队列的编号为当前编号减一。
如果首消息执行队列Q0中没有未处理的缓存填充消息,则所述对消息执行队列中的缓存填充消息进行重分配处理,具体包括:
修改首消息执行队列的编号为N-1,同时修改其它各消息执行队列的编号为当前编号减一。
举个例子来说,首消息执行队列的编号为Q0,第二个消息执行队列的编号为Q1,以此类推,第N个消息执行队列的编号为QN-1,则在进行重分配处理时,需要将首消息执行队列的编号修改为QN-1,第二个消息执行队列的编号为Q0,以此类推。修改后的第二个消息执行队列,则成为新的首消息执行队列,修改后的第三个消息执行队列,则成为新的第二个消息执行队列,以此类推。
步骤203:所述read线程池管理模块依据各消息执行队列对应的填充安全时长、以及当前磁盘I/O和CPU的占用率信息,调用read线程依次从各消息执行队列中读取消息并进行填充处理。
具体地,如果进行重分配处理后的首消息执行队列Q0及第二个消息执行队列Q1中有未处理的缓存填充消息,则read线程池管理模块调用read线程依次读取首消息执行队列Q0及第二个消息执行队列Q1中的缓存填充消息,并进行填充处理,直至首消息执行队列Q0及第二个消息执行队列Q1中的缓存填充消息处理完,如果没有,则根据当前磁盘I/O和CPU的占用率信息,判断流媒体服务器***是否繁忙,如果繁忙,则等待预设时长后继续判断流媒体服务器***是否繁忙,如果空闲,则读取第三个消息执行队列Q2中的缓存填充消息,并进行填充处理,第三个消息执行队列Q2中的缓存填充消息处理完成后,进一步判断流媒体服务器***是否繁忙,如果繁忙,则等待预设时长后继续判断流媒体服务器***是否繁忙,如果空闲,则读取第四个消息执行队列Q3中的缓存填充消息,并进行填充处理,以此类推。
在对每个消息执行队列进行处理的过程中,依照执行消息队列的编号依次读取消息并进行填充处理,即:当消息执行队列Qi中的消息处理完毕后,从消息执行队列Qi+1读取消息并进行填充处理,如果消息执行队列Qi+1中没有消息,则从消息执行队列Qi+2中读取消息进行处理,以此类推。
换句话说,在进行处理的过程中遵守以下几条原则:
(1)依照执行消息队列的编号依次读取消息并进行填充处理,即:当消息执行队列Qi中的消息处理完毕后,从消息执行队列Qi+1读取消息并进行填充处理,如果消息执行队列Qi+1中没有消息,则从消息执行队列Qi+2中读取消息进行处理,以此类推。
(2)当当前消息执行队列Qi中的消息全部被执行完后,如果i为0,则立即从消息执行队列Q1中读取消息进行处理;否则,判断磁盘I/O和CPU的占用率,如果***繁忙,则等待一段时间后继续判断,当***不忙时,从消息执行队列Qi+1中读取消息进行处理;
(3)收到消息管理模块的完成重新分配的消息后,重新从首消息执行队列Q0开始依照执行消息队列的编号依次读取消息进行处理,此时不管流媒体服务器***是否繁忙,只要消息执行队列Q0中有消息,则都要读取消息进行处理。
本发明还提供了一种流媒体双缓存技术中填充数据的方法,如图3所示,包括以下步骤:
步骤300:设置1个消息初始队列及N个消息执行队列;
这里,在执行本步骤之前,该方法还可以进一步包括:
设定缓存大小,根据缓存大小和用户带宽可得出每个用户对应的缓存的ST。
其中,合适的缓存大小能充分发挥***的性能,提高服务用户数。具体实现可采用现有技术。
缓存大小确定后,用户的带宽越小,则ST越长。对于一个流媒体服务器来说,由于它能服务的带宽种类是有限的,因此对确定的缓存大小,会有一个最大ST,即:所有用户对应的ST中最大的ST。。
依据最大ST及中断时长,确定N的取值;举个例子来说,假设最大ST为1,中断时长为0.1,则N=1/0.1+1=11。其中,设置的N个消息执行队列包含用于存放安全时间到了的缓存填充消息的消息执行队列,即:存放中断次数为0的缓存填充消息的消息执行队列。
这里,在设置消息执行队列时,根据中断次数为0、1、……,依次为每个消息执行队列进行编号,可以依次表示为Q0、Q1……QN-1。
步骤301:中断时间到,消息管理模块锁定所述消息初始队列,通知read线程池管理模块暂停读取消息,将所述消息初始队列中的所有缓存填充消息分发至对应的消息执行队列,分发完毕后解锁所述消息初始队列,之后对消息执行队列中的消息进行重分配处理,处理完毕后通知read线程池管理模块;
这里,锁定所述消息初始队列后,消息管理模块则暂停接收新的缓存填充消息。
在执行本步骤之前,该方法还可以进一步包括:
缓存切换后,处理前端添加缓存填充消息至所述消息初始队列。
所述将当前所有的缓存填充消息,分发至对应的消息执行队列,具体包括:
依据各缓存填充消息的填充安全时长,将各缓存填充消息分发至对应的消息执行队列,即:将填充安全时长为i的缓存填充消息,分发到消息执行队列Qi;其中,i表示填充安全时长所折算成的中断次数。
其中,所述缓存填充消息中携带对应的填充安全时长,所述填充安全时长以中断次数为单位,换句话说,所述填充安全时长为折算成中断次数的填充安全时长。
收到消息管理模块暂停读取消息后,read线程池管理模块暂停读取消息并进行填充处理。
这里,如果首消息执行队列Q0中有未处理的缓存填充消息,则所述对消息执行队列中的缓存填充消息进行重分配处理,具体包括:
将首消息执行队列Q0中未处理的缓存填充消息移入第二个消息执行队列Q1的队首,并修改首消息执行队列的编号为N-1,同时修改其它各消息执行队列的编号为当前编号减一。
如果首消息执行队列Q0中没有未处理的缓存填充消息,则所述对消息执行队列中的缓存填充消息进行重分配处理,具体包括:
修改首消息执行队列的编号为N-1,同时修改其它各消息执行队列的编号为当前编号减一。
举个例子来说,首消息执行队列的编号为Q0,第二个消息执行队列的编号为Q1,以此类推,第N个消息执行队列的编号为QN-1,则在进行重分配处理时,需要将首消息执行队列的编号修改为QN-1,第二个消息执行队列的编号为Q0,以此类推。修改后的第二个消息执行队列,则成为新的首消息执行队列,修改后的第三个消息执行队列,则成为新的第二个消息执行队列,以此类推。
步骤302:read线程池管理模块依据各消息执行队列对应的填充安全时长、以及当前磁盘I/O和CPU的占用率信息,调用read线程依次从各消息执行队列中读取消息并进行填充处理。
具体地,如果进行重分配处理后的首消息执行队列Q0及第二个消息执行队列Q1中有未处理的缓存填充消息,则read线程池管理模块调用read线程依次读取首消息执行队列Q0及第二个消息执行队列Q1中的缓存填充消息,并进行填充处理,直至首消息执行队列Q0及第二个消息执行队列Q1中的缓存填充消息处理完,如果没有,则根据当前磁盘I/O和CPU的占用率信息,判断流媒体服务器***是否繁忙,如果繁忙,则等待预设时长后继续判断流媒体服务器***是否繁忙,如果空闲,则读取第三个消息执行队列Q2中的缓存填充消息,并进行填充处理,第三个消息执行队列Q2中的缓存填充消息处理完成后,进一步判断流媒体服务器***是否繁忙,如果繁忙,则等待预设时长后继续判断流媒体服务器***是否繁忙,如果空闲,则读取第四个消息执行队列Q3中的缓存填充消息,并进行填充处理,以此类推。
在对每个消息执行队列进行处理的过程中,依照执行消息队列的编号依次读取消息并进行填充处理,即:当消息执行队列Qi中的消息处理完毕后,从消息执行队列Qi+1读取消息进行处理,如果消息执行队列Qi+1中没有消息,则从消息执行队列Qi+2中读取消息并进行填充处理,以此类推。
换句话说,在进行处理的过程中遵守以下几条原则:
(1)依照执行消息队列的编号依次读取消息进行处理,即:当消息执行队列Qi中的消息处理完毕后,从消息执行队列Qi+1读取消息进行处理,如果消息执行队列Qi+1没有消息,则从消息执行队列Qi+2中读取消息进行处理,以此类推;
(2)当当前消息执行队列Qi中的消息全部被执行完后,如果i为0,则立即从消息执行队列Q1中读取消息进行处理;否则,判断磁盘I/O和CPU的占用率,如果流媒体服务器***繁忙,则等待一段时间后继续判断,当流媒体服务器***不忙时,从消息执行队列Qi+1中读取消息进行处理;
(3)收到消息管理模块暂停读取消息后则暂停读取消息;
(4)收到消息管理模块的完成重新分配的消息后,重新从首消息执行队列Q0开始依照执行消息队列的编号依次读取消息进行处理,此时不管流媒体服务器***是否繁忙,只要消息执行队列Q0中有消息,则都要读取消息进行处理。
下面结合实施例对本发明再作进一步详细的描述。
本实施例采用read消息队列采用二级架构的方式,即:设置1个消息初始队列和N个消息执行队列,缓存切换后,处理前端先添加缓存填充消息至消息初始队列;中断时间到后,再由消息管理模块将所述消息初始队列中当前所有的缓存填充消息,分发至对应的消息执行队列,然后对执行队列进行重分配处理,处理完毕后通知read线程池管理模块,从而进行读取消息及填充的处理。本实施例流媒体双缓存技术中填充数据的方法,如图4所示,包括以下步骤:
步骤400:设定缓存大小,根据缓存大小和用户带宽,得出每个用户对应的缓存的ST,之后执行步骤401;
其中,本步骤的具体实现可采用现有技术。
步骤401:设置1个消息初始队列和N个消息执行队列;
这里,依据最大ST及中断时长,确定N的取值;举个例子来说,假设最大ST为1,中断时长为0.1,则N=1/0.1+1=11。其中,设置的N个消息执行队列包含用于存放安全时间到了的缓存填充消息的消息执行队列,即:存放中断次数为0的缓存填充消息的消息执行队列。
这里,在设置消息执行队列时,根据中断次数为0、1、……,依次为每个消息执行队列进行编号,可以依次表示为Q0、Q1……QN-1。
步骤402:缓存切换后,处理前端添加缓存填充消息至所述消息初始队列;
步骤403:中断时间到,消息管理模块锁定所述消息初始队列,通知read线程池管理模块暂停读取消息,将所述消息初始队列中当前所有缓存填充消息,分发至对应的消息执行队列,分发完毕后解锁消息初始队列,之后对消息执行队列进行重分配处理,处理完毕后通知read线程池管理模块;
这里,当消息管理模块锁定所述消息初始队列后,处理前端则不能再添加缓存填充消息至所述初始队列。
所述将当前所有缓存填充消息,分发至对应的消息执行队列,具体包括:
依据各缓存填充消息的填充安全时长,将各缓存填充消息分发至对应的消息执行队列,即填充安全时长为1的缓存填充消息分发到执行队列Q1,填充安全时长为2的缓存填充消息分发到执行队列Q2,依次类推。其中,所述缓存填充消息中携带对应的填充安全时长,所述填充安全时长以中断次数为单位,换句话说,所述填充安全时长为折算成中断次数的填充安全时长。
如果首消息执行队列Q0中有未处理的缓存填充消息,则所述对消息执行队列中的缓存填充消息进行重分配处理,具体包括:
将首消息执行队列Q0中未处理的缓存填充消息移入第二个消息执行队列Q1的队首,并修改首消息执行队列的编号为N-1,同时修改其它各消息执行队列的编号为当前编号减一。
如果首消息执行队列Q0中没有未处理的缓存填充消息,则所述对消息执行队列中的缓存填充消息进行重分配处理,具体包括:
修改首消息执行队列的编号为N-1,同时修改其它各消息执行队列的编号为当前编号减一。
举个例子来说,首消息执行队列的编号为Q0,第二个消息执行队列的编号为Q1,以此类推,第N个消息执行队列的编号为QN-1,则在进行重分配处理时,需要将首消息执行队列的编号修改为QN-1,第二个消息执行队列的编号为Q0,以此类推。修改后的第二个消息执行队列,则成为新的首消息执行队列,修改后的第三个消息执行队列,则成为新的第二个消息执行队列,以此类推。
解锁所述read初始队列后,处理前端则能添加缓存填充消息至所述初始队列。
其中,所述未处理的缓存填充消息是指:未进行读取并进行填充处理的缓存填充消息。
步骤404:read线程池管理模块依据各消息执行队列对应的填充安全时长、以及当前的磁盘I/O和CPU的占用率信息,调用read线程依次从各消息执行队列中读取消息并进行填充处理;
具体地,如果进行重分配处理后的首消息执行队列Q0及第二个消息执行队列Q1中有未处理的缓存填充消息时,read线程池管理模块调用read线程依次读取首消息执行队列Q0及第二个消息执行队列Q1中的缓存填充消息,并进行填充处理,直至首消息执行队列Q0及第二个消息执行队列Q1中的缓存填充消息处理完,如果没有,则根据当前磁盘I/O和CPU的占用率信息,判断流媒体服务器***是否繁忙,如果繁忙,则等待预设时长后继续判断流媒体服务器***是否繁忙,如果空闲,则读取第三个消息执行队列Q2中的缓存填充消息,并进行填充处理,第三个消息执行队列Q2中的缓存填充消息处理完成后,进一步判断流媒体服务器***是否繁忙,如果繁忙,则等待预设时长后继续判断流媒体服务器***是否繁忙,如果空闲,则读取第四个消息执行队列Q3中的缓存填充消息,并进行填充处理,以此类推。
在对每个消息执行队列进行处理的过程中,依照执行消息队列的编号依次读取消息并进行填充处理,即:当消息执行队列Qi中的消息处理完毕后,从消息执行队列Qi+1读取消息进行处理,如果消息执行队列Qi+1中没有消息,则从消息执行队列Qi+2中读取消息并进行填充处理,以此类推。
换句话说,在进行处理的过程中遵守以下几条原则:
(1)依照执行消息队列的编号依次读取消息进行处理,即:当消息执行队列Qi中的消息处理完毕后,从消息执行队列Qi+1读取消息进行处理,如果消息执行队列Qi+1没有消息,则从消息执行队列Qi+2中读取消息进行处理,以此类推;
(2)当当前消息执行队列Qi中的消息全部被执行完后,如果i为0,则立即从消息执行队列Q1中读取消息进行处理;否则,判断磁盘I/O和CPU的占用率,如果流媒体服务器***繁忙,则等待一段时间后继续判断,当流媒体服务器***不忙时,从消息执行队列Qi+1中读取消息进行处理;
(3)收到消息管理模块暂停读取消息后则暂停读取消息;
(4)收到消息管理模块的完成重新分配的消息后,重新从首消息执行队列Q0开始依照执行消息队列的编号依次读取消息进行处理,此时不管流媒体服务器***是否繁忙,只要消息执行队列Q0中有消息,则都要读取消息进行处理。
从上面的描述中可以看出,本发明的技术方案,从根本上来讲,是对收到的缓存填充消息采取集中式统一管理,以减少获取磁盘I/O和CPU的占用率信息的次数;另外,对安全填充安全时长短的缓存填充消息优先进行处理。
这里,需要说明的是:熟悉本领域的人可对实施步骤进行一些修改和变通:如read消息队列不采用二级架构,删除初始队列,只保留执行队列,缓存切换后,直接发送缓存填充消息给消息处理模块,消息处理模块对消息进行分类并下发到对应的执行模块;不采用read线程池方式,而是采用随用随建线程方式或者采用单线程方式。但只要这些改变和变形都是以集中统一管理缓存填充消息为基础,则都属于本发明所附的权利要求的保护范围。
为实现图2所示的方法,本发明还提供了一种流媒体双缓存技术中填充数据的装置,如图5所示,该装置包括:第一消息管理模块51、第一read线程池管理模块52、以及第一read线程模块53;其中,
第一消息管理模块51,用于缓存切换后,将收到的缓存填充消息分发至对应的设置的N个消息执行队列;并在中断时间到后,锁定所有消息执行队列,之后对消息执行队列中的缓存填充消息进行重分配处理,执行完毕后对所有消息执行队列解锁并通知第一read线程池管理模块52;
第一read线程池管理模块52,用于依据各消息执行队列对应的填充安全时长,调用read线程依次从对各消息执行队列中读取消息并进行填充处理,并在收到第一消息管理模块51的通知后,依据各消息执行队列对应的填充安全时长、以及当前磁盘I/O和CPU的占用率信息,调用第一read线程模块53依次从当前各消息执行队列中读取消息并进行填充处理。
其中,该装置还可以进一步包括:第一处理前端,用于向第一消息管理模块51发送缓存填充消息;
所述第一消息管理模块51,还用于接收第一处理前端发送的缓存填充消息。
这里,本发明的所述装置中的第一消息管理模块及第一read线程池管理模块的具体处理过程已在上文中详述,不再赘述。
为实现图3所示的方法,本发明还提供了一种流媒体双缓存技术中填充数据的装置,如图6所示,该装置包括:第二消息管理模块61、第二read线程池管理模块62、以及第二read线程模块63;其中,
第二消息管理模块61,用于中断时间到后,锁定所述消息初始队列,通知第二read线程池管理模块62暂停读取消息,将所述消息初始队列中的所有缓存填充消息分发至对应的消息执行队列,分发完毕后解锁所述消息初始队列,之后对消息执行队列中的消息进行重分配处理,处理完毕后通知第二read线程池管理模块62;
第二read线程池管理模块62,用于收到第二消息管理模块61在对消息执行队列中的消息进行重分配处理完毕后发送的通知后,依据各消息执行队列对应的填充安全时长、以及当前的磁盘I/O和CPU的占用率信息,调用第二read线程模块63依次从各消息执行队列中读取消息并进行填充处理。
其中,该装置还可以进一步包括:第二处理前端,用于缓存切换后,添加缓存填充消息至所述消息初始队列。
这里,本发明的所述装置中的第二消息管理模块及第二read线程池管理模块的具体处理过程已在上文中详述,不再赘述。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。
Claims (18)
1.一种流媒体双缓存技术中填充数据的方法,其特征在于,该方法包括:
设置N个消息执行队列,所述N的取值依据用户对应缓存的最大服务时间及中断时长确定;
缓存切换后,消息管理模块将收到的缓存填充消息分发至对应的消息执行队列,同时,读(read)线程池管理模块依据各消息执行队列对应的填充安全时长,调用read线程依次从对各消息执行队列中读取消息并进行填充处理;
中断时间到后,消息管理模块锁定所有消息执行队列,之后对消息执行队列中的缓存填充消息进行重分配处理,执行完毕后对所有消息执行队列解锁并通知read线程池管理模块;
read线程池管理模块依据各消息执行队列对应的填充安全时长、以及当前磁盘I/O和CPU的占用率信息,调用read线程依次从当前各消息执行队列中读取消息并进行填充处理。
2.根据权利要求1所述的方法,其特征在于,所述设置N个消息执行队列,为:
依据设定的缓存的最大服务时间及中断时长,设置N个消息执行队列。
3.根据权利要求1或2所述的方法,其特征在于,该方法还包括:
缓存切换后,处理前端向消息管理模块发送缓存填充消息。
4.根据权利要求1或2所述的方法,其特征在于,所述消息管理模块将收到的缓存填充消息分发至对应的消息执行队列,包括:
依据收到的各缓存填充消息对应的填充安全时长,将各缓存填充消息分发至对应的消息执行队列。
5.根据权利要求4所述的方法,其特征在于,在设置N个消息执行队列时,该方法进一步包括:依据中断次数,依次为每个消息执行队列进行编号;
相应的,如果首消息执行队列中有未处理的缓存填充消息,所述对消息执行队列中的缓存填充消息进行重分配处理,包括:
将首消息执行队列中未处理的缓存填充消息移入第二个消息执行队列的队首,并修改首消息执行队列的编号为N-1,同时修改其它各消息执行队列的编号为当前编号减一。
6.根据权利要求5所述的方法,其特征在于,如果首消息执行队列中没有未处理的缓存填充消息,所述对消息执行队列中的缓存填充消息进行重分配处理,包括:
修改首消息执行队列的编号为N-1,同时修改其它各消息执行队列的编号为当前编号减一。
7.根据权利要求4所述的方法,其特征在于,所述依据各消息执行队列对应的填充安全时长、以及当前磁盘I/O和CPU的占用率信息,调用read线程依次从当前各消息执行队列中读取消息并进行填充处理,包括:
如果进行重分配处理后的首消息执行队列及第二个消息执行队列中有未处理的缓存填充消息,则read线程池管理模块调用read线程依次读取首消息执行队列及第二个消息执行队列中的缓存填充消息,并进行填充处理,直至首消息执行队列及第二个消息执行队列中的缓存填充消息处理完,如果没有,则根据当前磁盘I/O和CPU的占用率信息,判断流媒体服务器***是否繁忙,如果繁忙,则等待预设时长后继续判断流媒体服务器***是否繁忙,如果空闲,则读取第三个消息执行队列中的缓存填充消息,并进行填充处理,第三个消息执行队列中的缓存填充消息处理完成后,进一步判断流媒体服务器***是否繁忙,如果繁忙,则等待预设时长后继续判断流媒体服务器***是否繁忙,如果空闲,则读取第四个消息执行队列中的缓存填充消息,并进行填充处理,以此类推。
8.一种流媒体双缓存技术中填充数据的方法,其特征在于,该方法包括:
设置1个消息初始队列及N个消息执行队列,所述N的取值依据用户对应缓存的最大服务时间及中断时长确定;
中断时间到后,消息管理模块锁定所述消息初始队列,通知read线程池管理模块暂停读取消息,将所述消息初始队列中的所有缓存填充消息分发至对应的消息执行队列,分发完毕后解锁所述消息初始队列,之后对消息执行队列中的消息进行重分配处理,处理完毕后通知read线程池管理模块;
read线程池管理模块依据各消息执行队列对应的填充安全时长、以及当前磁盘I/O和CPU的占用率信息,调用read线程依次从各消息执行队列中读取消息并进行填充处理。
9.根据权利要求8所述的方法,其特征在于,所述设置N个消息执行队列,为:
依据设定的缓存的最大服务时间及中断时长,设置N个消息执行队列。
10.根据权利要求8或9所述的方法,其特征在于,该方法还包括:
缓存切换后,处理前端添加缓存填充消息至所述消息初始队列。
11.根据权利要求8或9所述的方法,其特征在于,所述将所述消息初始队列中的所有缓存填充消息分发至对应的消息执行队列,包括:
依据各缓存填充消息的填充安全时长,将各缓存填充消息分发至对应的消息执行队列。
12.根据权利要求11所述的方法,其特征在于,在设置N个消息执行队列时,该方法进一步包括:依据中断次数,依次为每个消息执行队列进行编号;相应的,如果首消息执行队列中有未处理的缓存填充消息,所述对消息执行队列中的缓存填充消息进行重分配处理,包括:
将首消息执行队列中未处理的缓存填充消息移入第二个消息执行队列的队首,并修改首消息执行队列的编号为N-1,同时修改其它各消息执行队列的编号为当前编号减一。
13.根据权利要求12所述的方法,其特征在于,如果首消息执行队列中没有未处理的缓存填充消息,所述对消息执行队列中的缓存填充消息进行重分配处理,包括:
修改首消息执行队列的编号为N-1,同时修改其它各消息执行队列的编号为当前编号减一。
14.根据权利要求11所述的方法,其特征在于,所述依据各消息执行队列对应的填充安全时长、以及当前磁盘I/O和CPU的占用率信息,调用read线程依次从当前各消息执行队列中读取消息并进行填充处理,包括:
如果进行重分配处理后的首消息执行队列及第二个消息执行队列中有未处理的缓存填充消息,则read线程池管理模块调用read线程依次读取首消息执行队列及第二个消息执行队列中的缓存填充消息,并进行填充处理,直至首消息执行队列及第二个消息执行队列中的缓存填充消息处理完,如果没有,则根据当前磁盘I/O和CPU的占用率信息,判断流媒体服务器***是否繁忙,如果繁忙,则等待预设时长后继续判断流媒体服务器***是否繁忙,如果空闲,则读取第三个消息执行队列中的缓存填充消息,并进行填充处理,第三个消息执行队列中的缓存填充消息处理完成后,进一步判断流媒体服务器***是否繁忙,如果繁忙,则等待预设时长后继续判断流媒体服务器***是否繁忙,如果空闲,则读取第四个消息执行队列中的缓存填充消息,并进行填充处理,以此类推。
15.一种流媒体双缓存技术中填充数据的装置,其特征在于,该装置包括:第一消息管理模块、第一read线程池管理模块、以及第一read线程模块;其中,
第一消息管理模块,用于缓存切换后,将收到的缓存填充消息分发至对应的设置的N个消息执行队列,所述N的取值依据用户对应缓存的最大服务时间及中断时长确定;并在中断时间到后,锁定所有消息执行队列,之后对消息执行队列中的缓存填充消息进行重分配处理,执行完毕后对所有消息执行队列解锁并通知第一read线程池管理模块;
第一read线程池管理模块,用于依据各消息执行队列对应的填充安全时长,调用read线程依次从对各消息执行队列中读取消息并进行填充处理,并在收到消息管理模块的通知后,依据各消息执行队列对应的填充安全时长、以及当前磁盘I/O和CPU的占用率信息,调用第一read线程模块依次从当前各消息执行队列中读取消息并进行填充处理。
16.根据权利要求15所述的装置,其特征在于,该装置还包括:第一处理前端,用于向第一消息管理模块发送缓存填充消息;
所述第一消息管理模块,还用于接收第一处理前端发送的缓存填充消息。
17.一种流媒体双缓存技术中填充数据的装置,其特征在于,该装置包括:第二消息管理模块、第二read线程池管理模块、以及第二read线程模块;其中,
第二消息管理模块,用于中断时间到后,锁定消息初始队列,通知第二read线程池管理模块暂停读取消息,将所述消息初始队列中的所有缓存填充消息分发至对应的消息执行队列,分发完毕后解锁所述消息初始队列,之后对消息执行队列中的消息进行重分配处理,处理完毕后通知第二read线程池管理模块;
第二read线程池管理模块,用于收到消息管理模块在对消息执行队列中的消息进行重分配处理完毕后发送的通知后,依据各消息执行队列对应的填充安全时长、以及当前磁盘I/O和CPU的占用率信息,调用第二read线程模块依次从各消息执行队列中读取消息并进行填充处理。
18.根据权利要求17所述的装置,其特征在于,该装置还包括:第二处理前端,用于缓存切换后,添加缓存填充消息至所述消息初始队列。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210086453.1A CN102638402B (zh) | 2012-03-28 | 2012-03-28 | 流媒体双缓存技术中填充数据的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210086453.1A CN102638402B (zh) | 2012-03-28 | 2012-03-28 | 流媒体双缓存技术中填充数据的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102638402A CN102638402A (zh) | 2012-08-15 |
CN102638402B true CN102638402B (zh) | 2015-04-01 |
Family
ID=46622655
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210086453.1A Active CN102638402B (zh) | 2012-03-28 | 2012-03-28 | 流媒体双缓存技术中填充数据的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102638402B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104965806B (zh) * | 2015-06-30 | 2019-02-22 | 北京奇艺世纪科技有限公司 | 一种请求处理方法及装置 |
CN105302743A (zh) * | 2015-10-12 | 2016-02-03 | 北海市云盛科技有限公司 | 一种在高速缓存中预读的方法和装置 |
CN107613529B (zh) * | 2017-07-31 | 2021-06-01 | 上海华为技术有限公司 | 消息处理方法以及基站 |
CN108337187B (zh) * | 2018-01-22 | 2022-03-25 | 京信网络***股份有限公司 | 数据发送方法、装置、计算机设备及存储介质 |
CN108877845B (zh) * | 2018-06-29 | 2020-11-03 | 广州酷狗计算机科技有限公司 | 歌曲播放方法及装置 |
CN109361953B (zh) * | 2018-09-18 | 2022-04-08 | 武汉斗鱼网络科技有限公司 | 弹幕消息的动态分发方法、装置、设备和存储介质 |
CN114064807B (zh) * | 2021-11-29 | 2023-07-18 | 四川虹美智能科技有限公司 | 用户***及其数据提供方法 |
CN114237500A (zh) * | 2021-12-09 | 2022-03-25 | 北京美信时代科技有限公司 | 一种通过缓存事务提高写入效率的方法及*** |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101155132A (zh) * | 2006-09-27 | 2008-04-02 | 中兴通讯股份有限公司 | 一种间接实时流量控制***及其方法 |
CN101330472A (zh) * | 2008-07-28 | 2008-12-24 | 中兴通讯股份有限公司 | 流媒体数据的缓存处理方法 |
-
2012
- 2012-03-28 CN CN201210086453.1A patent/CN102638402B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101155132A (zh) * | 2006-09-27 | 2008-04-02 | 中兴通讯股份有限公司 | 一种间接实时流量控制***及其方法 |
CN101330472A (zh) * | 2008-07-28 | 2008-12-24 | 中兴通讯股份有限公司 | 流媒体数据的缓存处理方法 |
Also Published As
Publication number | Publication date |
---|---|
CN102638402A (zh) | 2012-08-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102638402B (zh) | 流媒体双缓存技术中填充数据的方法及装置 | |
KR102039778B1 (ko) | 서버에서 멀티 비트 레이트 스트림 미디어를 적응적으로 제공하기 위한 방법 및 장치 | |
US9542229B2 (en) | Multiple core real-time task execution | |
JP3617089B2 (ja) | 映像蓄積配送装置及び映像蓄積配送システム | |
US7730238B1 (en) | Buffer management method and system with two thresholds | |
CN105956035A (zh) | 一种文件存储方法及装置 | |
CN107147921B (zh) | 基于切片与智能cdn调度的视频播放加速方法和设备 | |
WO2011144093A2 (zh) | 队列调度的方法和装置 | |
US20120194534A1 (en) | System and Method for Managing Cache Storage in Adaptive Video Streaming System | |
EP2160685A2 (en) | Digital data management using shared memory pool | |
CN110740374B (zh) | 一种多媒体数据的处理方法、装置、计算机设备和存储介质 | |
CN116107635A (zh) | 命令分发器、命令分发方法、调度器、芯片、板卡、设备 | |
CN110417902B (zh) | 流式网络服务负载方法、相关设备及可读存储介质 | |
CN108153685A (zh) | 一种处理请求的方法、装置及设备、可读介质 | |
Reddy | Improving latency in an interactive video server | |
AU2022218682B2 (en) | Media aware content placement | |
JP4675290B2 (ja) | マルチメディア蓄積配信サーバ、および、マルチメディアデータ多重読出し書込み方法 | |
CN112003860B (zh) | 适用于远程直接内存访问的内存管理方法、***及介质 | |
Chang et al. | 2D BubbleUp: managing parallel disks for media servers | |
WO2024156239A1 (zh) | 视频流传输方法、装置、电子设备及存储介质 | |
Lee et al. | The effect of disk scheduling schemes on a video server for supporting quality MPEG video accesses | |
Kirovski | Point compression for certificates of authenticity | |
Yang et al. | Architecture of high capacity vod server and the implementation of its prototype | |
Alshayeji et al. | Object delivery in distributed continuous media servers | |
Dhage et al. | Buffer management scheme for video-on-demand (VoD) System |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |