一种Cache调度的方法、设备及系统的制作方法

文档序号:6584378阅读:154来源:国知局
专利名称:一种Cache调度的方法、设备及系统的制作方法
技术领域
本发明涉及有线电视领域,特别涉及一种Cache调度的方法、设备及系统。
背景技术
在有线电视领域中,将用户访问频繁的内容缓存在Cache中,当访问相同的数据 时,可以不必访问物理设备,而是采用基于Cache调度技术访问Cache,从而提高了访问速度。
目前采用文件系统自身的Cache来对播出内容进行缓存,文件系统以页为单位对
数据进行缓存,页的大小为1KB。其中,文件系统采用以页为单元的Cache调度的方法访问
Cache,具体为当终端向文件系统请求某页数据时,文件系统从自身的Cache中调度该页
数据,如果Cache中缓存有该页的数据,则向终端返回该页数据,如果Cache中没有,则从物
理设备中读取该页数据,将该页数据缓存在Cache中,同时向终端返回该页数据。 在实现本发明的过程中,发明人发现现有技术至少存在以下问题 第一、随着有线电视的快速发展,用户访问的数据量的增加,而使用以页为单位的
Cache调度的方法去访问Cache中的数据的效率已无法满足高吞吐量的要求。 第二、当终端需要的数据不在文件系统自身的Cache中,文件系统不能从网络中
的其他的Cache中获取数据,从而降低访问数据的效率。

发明内容
为了提高访问数据的效率,本发明实施例提供了一种Cache调度的方法、设备及 系统。所述技术方案如下 —种Cache调度的方法,所述方法包括 文件管理系统FMS接收来自终端获取数据块的请求,所述请求中携带数据块的标 识码ID ; 所述FMS根据所述ID查找本地Cache节点; 如果查找出所述ID对应的数据块,所述FMS返回所述数据块给终端;
如果没有查找出所述数据块,所述FMS根据所述ID从网络中查找缓存所述数据块 的Cache节点,如果查找出Cache节点,从所述Cache节点中获取所述数据块给终端;如果 没有查找出Cache节点,查找出存储所述数据块的物理设备;所述本地Cache节点接收所 述物理设备对应的Cache节点发送的所述数据块,缓存所述数据块;所述FMS从所述本地 Cache节点中获取所述数据块并返回给终端。 所述所述本地Cache节点接收所述物理设备对应的Cache节点发送的所述数据 块,缓存所述数据块,具体包括 所述本地Cache节点接收所述物理设备对应的Cache节点发送的所述数据块,判 断自身是否还有空间缓存所述数据块; 如果没有,回收访问次数低且没有被操作的数据块所占用的空间,再分配空间,将所述数据块缓存在所述分配的空间中; 如果有,分配空间,将所述数据块缓存在所述分配的空间中。 所述根据所述ID从网络中查找缓存所述数据块的Cache节点,如果查找出Cache 节点,从所述Cache节点中获取所述数据块给终端,具体包括 根据所述ID查找网络中缓存所述数据块的Cache节点,如果查找出多个Cache节 点,则选择负荷最小的Cache节点,从所述选择的Cache节点中读取所述数据块并返回给终
丄山
顺; 如果查找出一个Cache节点,从所述Cache节点中读取所述数据块并返回给终端。 所述方法还包括 被访问的Cache节点,记录所述数据块被访问的次数。 所述方法还包括 当网络中的任一 Cache节点中的数据块刚没有被操作时,所述Cache节点为所述
数据块设置荒废时间,所述荒废时间用于记录所述数据块没有被操作的时间; 相应地,所述回收访问次数低且没有被操作的数据块所占用的空间,具体包括 优先回收访问次数低且荒废时间长的数据块所占用的空间。 —种Cache调度的设备,所述设备包括 接收模块,用于接收来自终端获取数据块的请求,所述请求中携带数据块的标识
码ID ; 第一查找模块,用于根据所述ID查找本地Cache节点; 第一返回模块,用于如果查找出所述ID对应的数据块,则返回所述数据块给终
丄山
顺; 第二查找模块,用于如果没有查找出所述数据块,根据所述ID从网络中查找缓存 所述数据块的Cache节点,如果查找出Cache节点,从所述Cache节点中获取所述数据块给 终端;如果没有查找出Cache节点,查找出存储所述数据块的物理设备;当所述本地Cache 节点缓存来自所述物理设备对应的Cache节点的所述数据块后,从所述本地Cache节点中 获取所述数据块并返回给终端。 所述第二查找模块,具体用于如果没有查找出所述数据块,根据所述ID查找网络 中缓存所述数据块的Cache节点,如果查找出多个Cache节点,则选择负荷最小的Cache节 点,从所述选择的Cache节点中读取所述数据块并返回给终端;如果查找出一个Cache节 点,从所述Cache节点中读取所述数据块并返回给终端;如果没有查找出Cache节点,查 找出存储所述数据块的物理设备;当所述本地Cache节点缓存来自所述物理设备对应的 Cache节点的所述数据块后,从所述本地Cache节点中获取所述数据块并返回给终端。
—种Cache调度的系统,所述系统包括 Cache调度的设备,用于接收来自终端获取数据块的请求,所述请求中携带数据块 的标识码ID ;根据所述ID查找本地Cache节点;如果查找出所述ID对应的数据块,则返回 所述数据块给终端;如果没有查找出所述数据块,根据所述ID从网络中查找缓存所述数据 块的Cache节点,如果查找出Cache节点,从所述Cache节点中获取所述数据块给终端;如 果没有查找出Cache节点,查找出存储所述数据块的物理设备;当所述本地Cache节点缓存 来自所述物理设备对应的Cache节点的所述数据块后,从所述本地Cache节点中获取所述数据块并返回给终端; 被访问的Cache节点,用于当所述Cache调度的设备查找出所述本地Cache节点 中缓存有所述数据块时,返回所述数据块给终端;当所述Cache调度的设备查找出网络中 缓存所述数据块的Cache节点时,返回所述数据块给终端;当所述本地Cache节点接收到来 自所述物理设备对应的Cache节点的所述数据块时,缓存所述数据块,并返回所述数据块 给终端。 所述Cache节点具体包括 第二返回模块,用于当所述Cache调度的设备查找出所述本地Cache节点中缓存 有所述数据块时,返回所述数据块给终端;当所述Cache调度的设备查找出网络中缓存所 述数据块的Cache节点时,返回所述数据块给终端; 判断模块,用于当所述本地Cache节点接收所述物理设备对应的Cache节点发送 的所述数据块,判断自身是否还有空间缓存所述数据块; 第三返回模块,用于如果所述判断模块判断出没有,回收访问次数低且没有被操 作的数据块所占用的空间,再分配空间,将所述数据块缓存在所述分配的空间中,并返回所 述数据块给终端; 第四返回模块,用于如果所述判断模块判断出有,分配空间,将所述数据块缓存在 所述分配的空间中,并返回所述数据块给终端。
所述Cache节点还包括 记录模块,用于记录所述数据块被访问的次数。
所述Cache节点还包括 设置模块,用于当网络中的任一 Cache节点中的数据块刚没有被操作时,为所述
数据块设置荒废时间,所述荒废时间用于记录所述数据块没有被操作的时间;
相应地, 所述第三返回模块,具体用于如果所述判断模块判断出没有,优先回收访问次数 低且荒废时间长的数据块所占用的空间,再分配空间,将所述数据块缓存在所述分配的空 间中,并返回所述数据块给终端。 在本发明实施例中,根据来自终端的请求中携带的数据块的ID,查找本地Cache 节点,如果查找出数据块,则直接返回该数据块,如果没有,则根据该ID从网络中查找数据 块,并返回该数据块。由于以数据块为单位进行调度Cache节点中的数据,从而提高了访问 Cache节点中的数据的效率;由于网络中的Cache节点都共享数据,从而当用户访问的数据 在不在本地Cache节点中,可以从网络Cache节点中获得数据,从而进一步提高访问数据的 效率。


图1是本发明实施例1提供的
图2是本发明实施例1提供的
图3是本发明实施例1提供的
图4是本发明实施例2提供的
图5是本发明实施例3提供的
一种Udp广播网络结构示意图; 一种组建高速共享网络的方法流程图; 一种高速共享网络结构示意图; 一种Cache调度的方法流程图; 一种Cache调度的方法流程 图6是本发明实施例4提供的一种Cache调度的设备结构示意图;
图7是本发明实施例5提供的一种Cache调度的系统结构示意图。
具体实施例方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方
式作进一步地详细描述。 实施例1 如图1所示为一种Udp (User Datagram Protocol,用户数据报协议)广播网络, Udp广播网络是一种有线视频网络,在Udp广播网络中设置有Cache节点,Cache节点为 高速缓存设备,用于缓存用户访问频繁的内容,其内存大小可以为32GB或64GB等,其中, Cache节点还在Udp广播网络中共享自己的数据。在Udp广播网络中还设置有物理设备,物 理设备为硬磁盘设备,是一种用于存储有线视频的服务器,在每个物理设备中都设有一个 本地Cache节点,该本地Cache节点用于缓存物理设备中用户访问频繁的内容。当访问数 据时,首先访问Cache节点,如果Cache节点中没有要访问的内容,再访问本地物理设备,如 此,可以提高访问速度。如果能将Udp广播网络中的所有Cache节点之间通过高速数据通 道进行点对点的连接,以实现将Udp广播网络中的所有Cache节点组成一个高速的共享网 络,从而能够提高用户访问内容的速度。 基于上述描述,本发明实施例提供了一种组建高速共享网络的方法,该方法将Udp 广播网络中的所有Cache节点组建成一个点对点的高速共享网络,本实施例以Udp广播网 络中的第一 Cache节点与第二 Cache节点之间建立高速数据通道为例进行说明,当将Udp 广播网络中的任意两Cache节点按第一 Cache节点与第二 Cache节点所建高速数据通道的 方法进行建立高速数据通道,就组建出了高速共享网络,如图2所示,该方法包括
步骤101 :当第一 Cache节点加入到Udp广播网络中时,第一 Cache节点向Udp广 播网络广播高速数据通道信息,该高速数据通道信息包含第一 Cache节点的IP(Internet Protocol,网际协议)和端口等; 其中,第一 Cache节点为Udp广播网络中的某个节点,第一 Cache节点可以将高速 数据通道信息打包成心跳包的形式,然后再广播到UDP广播网络中。 步骤102 :第二 Cache节点从Udp广播网络中接收第一 Cache节点广播的高速数 据通道信息; 其中,第二 Cache节点也为Udp广播网络中的某个节点。 步骤103 :第二 Cache节点根据接收的高速数据通道信息,判断是否与第一 Cache 节点已建立了高速数据通道,如果否,执行步骤104,如果是,执行步骤105 ;
其中,Cache节点通过IP和端口等信息,与另一个Cache节点建立高速数据通道。
具体地,第二 Cache节点从接收的高速数据通道信息中读取包括的IP和端口等信 息,根据读取的IP和端口等信息,从自身已建立的所有高速数据通道中查找,如果从已建 立的所有高速数据通道中没有查找出与读取的IP和端口等信息都相同的高速数据通道, 则第二 Cache节点与第一 Cache节点之间没有建立高速数据通道,否则,第二 Cache节点与 第一 Cache节点之间已建立高速数据通道。 步骤104 :第二 Cache节点在其自身与第一 Cache节点之间创建一条高速数据通
8道; 其中,第二 Cache节点通过TCP(Transmission Control Protocol,传输控制协 议)协议与第一 Cache节点建立高速数据通道。 步骤105 :第二 Cache节点直接丢掉接收的高速数据通道信息。 其中,Udp广播网络中的其他每个Cache节点从Udp广播网络中接收第一 Cache节
点广播的高速数据通道信息,并都按上述方法与第一 Cache节点建立高速数据通道。 其中,Udp广播网络中的每个Cache节点都按第一 Cache节点向Udp广播网络中广
播高速数据通道信息,建立与其他每个Cache节点之间的高速数据通道,就得到了由Cache
节点组成的高速共享网络,如图3所示的高速共享网络。 其中,当有一个新的Cache节点要加入高速共享网络时,该节点首先加入Udp广播 网络,再按第一 Cache节点的方法建立与高速共享网络中的每个Cache节点之间的高速数 据通道。另外,高速共享网络中的每个Cache节点以数据块的单位存储数据,即在Cache节 点中存储数据块与其对应的ID之间的一一对应关系,且数据块的大小通常为8Mb。
实施例2 如图4所示,本发明实施例提供了一种Cache调度的方法,该方法对实施例1所建 立的高速共享网络中的Cache节点进行调度,包括 步骤201 :FMS接收来自终端获取数据块的请求,该请求中携带数据块的ID ;
步骤202 :FMS根据该ID查找本地Cache节点,如果查找出该ID对应的数据块,则 执行步骤203,如果没有查找出该数据块,则执行步骤204 ; 步骤203 :FMS从本地Cache节点获取该数据块,并返回该数据块给终端,操作结 束; 步骤204 :FMS根据该ID从网络中查找缓存该数据块的Cache节点,如果查找出 Cache节点,执行步骤205,否则,执行步骤206 ; 步骤205 :FMS从查找的Cache节点中获取该数据块给终端,操作结束;
步骤206 :FMS查找出存储该数据块的物理设备; 步骤207 :本地Cache节点接收该物理设备对应的Cache节点发送的该数据块,缓 存该数据块; 步骤208 :FMS从本地Cache节点中获取该数据块并返回给终端,操作结束。
其中,网络中的每个Cache节点都共享其自身的内容,当本地Cache节点中没有该 ID对应的数据块时,可以从网络中查找出该数据块。 在本发明实施例中,根据来自终端的请求中携带的数据块的ID,查找本地Cache 节点,如果查找出数据块,则直接返回该数据块,如果没有,则根据该ID从网络中查找数据 块,并返回该数据块。由于以数据块为单位进行调度Cache节点中的数据,从而提高了访问 Cache节点中的数据的效率;由于网络中的Cache节点都共享数据,从而当用户访问的数据 在不在本地Cache节点中,可以从网络Cache节点中获得数据,从而进一步提高访问数据的 效率。 实施例3 本发明实施例提供了一种Cache调度的方法,该方法对实施例1所建立的高速共 享网络中的Cache节点进行调度,如图5所示,该方法包括
步骤301 :终端向FMS(File Manager System,文件管理系统)发送获取数据块的 请求,该请求中携带需要请求的数据块的ID ; 其中,终端通过API函数发送请求,例如API函数中包括libfan函数,终端通过 libfan函数发送请求消息。具体地,终端调用libfan函数,libfan函数通过TCP协议与 FMS建立通迅,当通讯建立成功后,向FMS发送获取数据块的请求。 步骤302 :FMS接收请求后,根据请求中携带的ID,查找本地Cache节点中是否缓 存该ID对应的数据块,如果是,则执行步骤303,如果否,则执行步骤304 ;
其中,本地Cache节点是以数据块为单位进行缓存,在Cache节点中缓存数据块与 其对应的ID之间的对应关系。 具体地,FMS以该ID为索引,从本地Cache节点中缓存的数据块与ID的对应关系 中进行搜索,如果搜索出数据块,则在本地Cache节点缓存有该ID对应的数据块,如果没有 搜索出数据块,则在本地Cache节点中没有缓存该ID对应的数据块。 步骤303 :FMS从本地Cache节点中获取查找的该ID对应的数据块,并返回给终 端,操作结束; 具体地,FMS发送通知给终端,该通知用于告知终端从本地Cache节点中读取该ID 对应的数据块,终端接收到通知后,从本地Cache节点中读取该ID对应的数据块。
其中,FMS查找出终端请求的数据块在所在的Cache节点就会通知终端,终端从通 知中的Cache节点中读取所需的数据块。 其中,在本实施例中,用命中率记录Cache点上存放的某个数据块已被操作的次 数,用引用计数记录当前正在对Cache节点上存放的某个数据块进行操作的操作数目,用 负荷记录当前正在对某个Cache节点进行操作的操作数目。操作包括读取、更新或写入。其 中,命中率用于记录某个数据块被访问的次数。 其中,当终端开始在该本地Cache节点上读取该数据块时,该本地Cache节点将 自身存放的该数据块的命中率和引用计数递增以及自身的负荷也递增,当终端从该本地 Cache节点上读取完该数据块时,该本地Cache节点自身存放的该数据块的引用计数以及 自身的负荷都递减。其中,最简便的实现方式为该本地Cache节点采用加1的方式对命中 率、引用计数和负荷进行递增,采用减1的方式对引用计数和负荷进行递减。
其中,在本实施例中,当Cache节点中的某个数据块的引用计数减少为零时,即该 数据块刚没有被操作时,该Cache节点就为该数据块设置荒废时间。荒废时间用于记录该 数据块没有被操作的时间,随时间进行累加。当Cache节点收回存储区域时,就会优先收回 命中率低且荒废时间长的数据块所占的存储区域。 步骤304 :FMS根据该ID,查找高速共享网络中是否存在该ID对应的数据块的其 他Cache节点,如果从网络中查找出多个Cache节点,则执行步骤305,如果从网络中查找出 一个Cache节点,则执行步骤306,如果在网络中没有查找出Cache节点,则执行步骤307 ;
具体地,以ID为索引,对网络中的其他每个Cache节点存储的数据块ID与其对应 的数据块的对应关系中,进行搜索,搜索出网络中存在该ID对应的数据块的所有Cache节 点。 步骤305 :FMS根据每个Cache节点的负荷,选择负荷最小的一个Cache节点,并从 该Cache节点中获取该ID对应的数据块,并返回给终端,操作结束;
其中,FMS发送通知给终端,该通知用于告知终端从选择的Cache节点中读取请求 的数据块,终端接收通知后,从该选择的Cache节点中读取该ID对应的数据块。
例如,FMS从网络中查找出三个Cache节点,负荷分别为2、4、7,则选择负荷为2的 Cache节点。从负荷最小的Cache节点中读取数据块的速率最高,从而可以提高整个网络的
吞吐量。 其中,当开始在该选择的Cache节点上读取该数据块时,选择的Cache节点将自身 存放的该数据块的命中率和引用计数以及自身的负荷都递增,当从选择的Cache节点上读 取完该数据块时,选择的Cache节点将自身存放的该数据块的引用计数以及自身的负荷都 递减。 步骤306 :FMS从该查找的Cache节点中获取该ID对应的数据块,并返回给终端, 操作结束; 具体地,FMS发送通知给终端,该通知用于告知终端从该查找的Cache节点中读取 该ID对应的数据块,终端接收到通知后,从该查找的Cache节点中读取该ID对应的数据 块。 其中,当开始在该查找的Cache节点上读取该数据块时,查找的Cache节点将自身 存放的该数据块的命中率和引用计数递增以及自身的负荷也递增,当从查找的Cache节点 上读取完该数据块时,查找的Cache节点将自身存放的该数据块的引用计数以及自身的负 荷都递减。 步骤307 :FMS从Udp广播网络中查找出存储该ID对应的数据块的物理设备,并通 知该物理设备对应的本地Cache节点从物理设备中读取该数据块,同时分发给本地Cache 节点; 其中,物理设备是Udp网络中存储数据的服务器,物理设备的硬磁盘中存储有大 量的数据块与其对应的ID的对应关系,且每个物理设备都有一个本地Cache节点,该Cache 节点用于缓存物理设备中的部分热点数据。 具体地,FMS以该ID为索引,从每个物理设备中存储的ID与数据块的对应关系中 搜索该ID对应的数据块,当搜索出网络中的某个物理设备中存储有该ID对应的数据块时, 就发送通知给该物理设备对应的本地Cache节点,该通知用于告知该物理设备对应的本地 Cache节点从物理设备中读取该ID对应的数块,并将读取的数据块分发到本地Cache节点。
步骤308 :该物理设备的Cache节点接收通知后,从该物理设备中读取该ID对应 的数据块,并发送给本地Cache节点; 具体地,该物理设备的Cache节点接收通知后,判断自身是否还有存储空间缓存 数据块,如果没有,回收命中率低且荒废时间长的数据块所占用的存储空间,再分配存储空 间;如果有,直接分配存储空间;根据通知的指示从物理设备中读取该ID对应数据块,缓存 在分配的存储空间中,并发送该数据块给本地Cache节点。 其中,当该物理设备对应的本地Cache节点写入该读取的数据块时,该物理设备 对应的本地Cache节点为该数据块设置命中率和引用计数为l,将自身的负荷递增。
另外,该物理设备对应的本地Cache节点在发送数据块之前先判断其与本地 Cache节点之间的高速数据通道是否存在,如果存在,则发送数据给本地Cache节点,如果 不存在,则结束操作。
步骤309 :本地Cache节点接收该数据块,并缓存该数据块,再通知FMS ; 具体地,本地Cache节点接收到该数据块后,判断自身是否还有存储空间缓存数
据块,如果没有,回收命中率低且荒废时间长的数据块所占用的存储空间,再分配存储空
间;如果有,直接分配存储空间;将该数据块缓存在分配的存储空间中,再通知FMS。 其中,当本地Cache节点写入该数据块时,为该数据块设置命中率和引用计数为
l,同时将自身的负荷递增。 步骤310 :FMS接收通知后,从本地Cache节点中获取该ID对应的数据块,并返回 给终端,操作结束。 具体地,FMS发送通知给终端,该通知用于告知终端从本地Cache节点中读取所需 要的数据块,终端接收通知后,根据通知从本地Cache节点中读取该ID对应的数据块。
其中,当终端再请求其他数据块时,则重复地按步骤201-210的过程进行Cache调 度,获取请求的数据块,并将获取的数据块返回给终端。另外,在本实施例中终端可以为用 于播放视频的视频播出服务器,网络中的Cache节点可以为CAN (Cache Access Node,缓存 访问节点),且CAN的大小为32GB或64GB等,物理设备可以为DAN (Disk Access Node,磁 盘访问节点)服务器,且DAN服务器部署有CAN。 在本发明实施例中,根据来自终端的请求中携带的数据块的ID,查找本地Cache 节点,如果查找出数据块,则直接返回该数据块,如果没有,则根据该ID从网络中查找数据 块,并返回该数据块。由于以数据块为单位进行调度Cache节点中的数据,从而提高了访问 Cache节点中的数据的效率;由于网络中的Cache节点都共享数据,从而当用户访问的数据 在不在本地Cache节点中,可以从网络Cache节点中获得数据,从而进一步提高访问数据的 效率。 实施例4 如图6所示,本发明实施例提供了一种Cache调度的设备,包括 接收模块401,用于接收来自终端获取数据块的请求,该请求中携带数据块的ID ; 第一查找模块402,用于根据该ID查找本地Cache节点; 第一返回模块403,用于如果查找出该ID对应的数据块,则返回查找的数据块给 终端; 第二查找模块404,用于如果没有查找出该数据块,根据该ID从网络中查找缓存 该数据块的Cache节点,如果查找出Cache节点,从查找的Cache节点中获取该数据块给终 端;如果没有查找出Cache节点,查找出存储该数据块的物理设备;当本地Cache节点缓存 来自该物理设备对应的Cache节点的该数据块后,从本地Cache节点中获取该数据块并返 回给终端。 其中,第二查找模块404,具体用于如果没有查找出该数据块,根据该ID查找网络 中缓存该数据块的Cache节点,如果查找出多个Cache节点,则选择负荷最小的Cache节 点,从选择的Cache节点中读取该数据块并返回给终端;如果查找出一个Cache节点,从查 找的Cache节点中读取该数据块并返回给终端;如果没有查找出Cache节点,查找出存储该 数据块的物理设备;当本地Cache节点缓存来自该物理设备对应的Cache节点的该数据块 后,从本地Cache节点中获取该数据块并返回给终端。 在本发明实施例中,根据来自终端的请求中携带的数据块的ID,查找本地Cache
12节点,如果查找出数据块,则直接返回该数据块,如果没有,则根据该ID从网络中查找数据 块,并返回该数据块。由于以数据块为单位进行调度Cache节点中的数据,从而提高了访问 Cache节点中的数据的效率;由于网络中的Cache节点都共享数据,从而当用户访问的数据 在不在本地Cache节点中,可以从网络Cache节点中获得数据,从而进一步提高访问数据的 效率。 实施例5 如图7所示,本发明实施例提供了一种Cache调度的系统,包括
Cache调度的设备501,用于接收来自终端获取数据块的请求,该请求中携带数据 块的ID ;根据该ID查找本地Cache节点;如果查找出该ID对应的数据块,则返回该数据块 给终端;如果没有查找出该数据块,根据该ID从网络中查找缓存该数据块的Cache节点,如 果查找出Cache节点,从查找的Cache节点中获取该数据块给终端;如果没有查找出Cache 节点,查找出存储该数据块的物理设备;当本地Cache节点缓存来自物理设备对应的Cache 节点的该数据块后,从本地Cache节点中获取该数据块并返回给终端;
被访问的Cache节点502,用于当Cache调度的设备501查找出本地Cache节点中 缓存有该数据块时,返回该数据块给终端;当Cache调度的设备501查找出网络中缓存该数 据块的Cache节点时,返回该数据块给终端;当本地Cache节点接收到来自物理设备对应的 Cache节点的该数据块时,缓存该数据块,并返回该数据块给终端。
其中,被访问的Cache节点502具体包括 第二返回模块,用于当Cache调度的设备501查找出本地Cache节点中缓存有该 数据块时,返回该数据块给终端;当Cache调度的设备501查找出网络中缓存该数据块的 Cache节点时,返回该数据块给终端; 判断模块,用于当本地Cache节点接收物理设备对应的Cache节点发送的该数据 块,判断自身是否还有空间缓存该数据块; 第三返回模块,用于如果判断模块判断出没有,回收访问次数低且没有被操作的 数据块所占用的空间,再分配空间,将该数据块缓存在分配的空间中,并返回该数据块给终
丄山
顺; 第四返回模块,用于如果判断模块判断出有,分配空间,将该数据块缓存在分配的
空间中,并返回该数据块给终端; 被访问的Cache节点502还包括 记录模块,用于记录该数据块被访问的次数; 被访问的Cache节点还包括 设置模块,用于当网络中的任一 Cache节点中的数据块刚没有被操作时,为该数
据块设置荒废时间,其中,荒废时间用于记录数据块没有被操作的时间;
相应地, 第三返回模块,具体用于如果判断模块判断出没有,优先回收访问次数低且荒废 时间长的数据块所占用的空间,再分配空间,将该数据块缓存在分配的空间中,并返回该数 据块给终端。 其中,本实施提供的Cache调度的设备可以为FMS。 在本发明实施例中,根据来自终端的请求中携带的数据块的ID,查找本地Cache节点,如果查找出数据块,则直接返回该数据块,如果没有,则根据该ID从网络中查找数据 块,并返回该数据块。由于以数据块为单位进行调度Cache节点中的数据,从而提高了访问 Cache节点中的数据的效率;由于网络中的Cache节点都共享数据,从而当用户访问的数据 在不在本地Cache节点中,可以从网络Cache节点中获得数据,从而进一步提高访问数据的 效率。 以上实施例提供的技术方案中的全部或部分内容可以通过软件编程实现,其软件
程序存储在可读取的存储介质中,存储介质例如计算机中的硬盘、光盘或软盘。 以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和
原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
权利要求
一种Cache调度的方法,其特征在于,所述方法包括文件管理系统FMS接收来自终端获取数据块的请求,所述请求中携带数据块的标识码ID;所述FMS根据所述ID查找本地Cache节点;如果查找出所述ID对应的数据块,所述FMS返回所述数据块给终端;如果没有查找出所述数据块,所述FMS根据所述ID从网络中查找缓存所述数据块的Cache节点,如果查找出Cache节点,从所述Cache节点中获取所述数据块给终端;如果没有查找出Cache节点,查找出存储所述数据块的物理设备;所述本地Cache节点接收所述物理设备对应的Cache节点发送的所述数据块,缓存所述数据块;所述FMS从所述本地Cache节点中获取所述数据块并返回给终端。
2. 如权利要求1所述的方法,其特征在于,所述根据所述ID从网络中查找缓存所述数 据块的Cache节点,如果查找出Cache节点,从所述Cache节点中获取所述数据块给终端, 具体包括根据所述ID查找网络中缓存所述数据块的Cache节点,如果查找出多个Cache节点, 则选择负荷最小的Cache节点,从所述选择的Cache节点中读取所述数据块并返回给终丄山顺;如果查找出一个Cache节点,从所述Cache节点中读取所述数据块并返回给终端。
3. 如权利要求1所述的方法,其特征在于,所述所述本地Cache节点接收所述物理设备 对应的Cache节点发送的所述数据块,缓存所述数据块,具体包括所述本地Cache节点接收所述物理设备对应的Cache节点发送的所述数据块,判断自 身是否还有空间缓存所述数据块;如果没有,回收访问次数低且没有被操作的数据块所占用的空间,再分配空间,将所述 数据块缓存在所述分配的空间中;如果有,分配空间,将所述数据块缓存在所述分配的空间中。
4. 如权利要求1-3任一权利要求所述的方法,其特征在于,所述方法还包括 被访问的Cache节点,记录所述数据块被访问的次数。
5. 如权利要求3所述的方法、其特征在于,所述方法还包括当网络中的任一 Cache节点中的数据块刚没有被操作时,所述Cache节点为所述数据 块设置荒废时间,所述荒废时间用于记录所述数据块没有被操作的时间;相应地,所述回收访问次数低且没有被操作的数据块所占用的空间,具体包括 优先回收访问次数低且荒废时间长的数据块所占用的空间。
6. —种Cache调度的设备,其特征在于,所述设备包括接收模块,用于接收来自终端获取数据块的请求,所述请求中携带数据块的标识码ID ;第一查找模块,用于根据所述ID查找本地Cache节点;第一返回模块,用于如果查找出所述ID对应的数据块,则返回所述数据块给终端; 第二查找模块,用于如果没有查找出所述数据块,根据所述ID从网络中查找缓存所述 数据块的Cache节点,如果查找出Cache节点,从所述Cache节点中获取所述数据块给终 端;如果没有查找出Cache节点,查找出存储所述数据块的物理设备;当所述本地Cache节点缓存来自所述物理设备对应的Cache节点的所述数据块后,从所述本地Cache节点中获 取所述数据块并返回给终端。
7. 如权利要求6所述的设备,其特征在于,所述第二查找模块,具体用于如果没有查 找出所述数据块,根据所述ID查找网络中缓存所述数据块的Cache节点,如果查找出多个 Cache节点,则选择负荷最小的Cache节点,从所述选择的Cache节点中读取所述数据块并 返回给终端;如果查找出一个Cache节点,从所述Cache节点中读取所述数据块并返回给终 端;如果没有查找出Cache节点,查找出存储所述数据块的物理设备;当所述本地Cache节 点缓存来自所述物理设备对应的Cache节点的所述数据块后,从所述本地Cache节点中获 取所述数据块并返回给终端。
8. —种Cache调度的系统,其特征在于,所述系统包括Cache调度的设备,用于接收来自终端获取数据块的请求,所述请求中携带数据块的标 识码ID ;根据所述ID查找本地Cache节点;如果查找出所述ID对应的数据块,则返回所述 数据块给终端;如果没有查找出所述数据块,根据所述ID从网络中查找缓存所述数据块的 Cache节点,如果查找出Cache节点,从所述Cache节点中获取所述数据块给终端;如果没 有查找出Cache节点,查找出存储所述数据块的物理设备;当所述本地Cache节点缓存来自 所述物理设备对应的Cache节点的所述数据块后,从所述本地Cache节点中获取所述数据 块并返回给终端;被访问的Cache节点,用于当所述Cache调度的设备查找出所述本地Cache节点中缓 存有所述数据块时,返回所述数据块给终端;当所述Cache调度的设备查找出网络中缓存 所述数据块的Cache节点时,返回所述数据块给终端;当所述本地Cache节点接收到来自所 述物理设备对应的Cache节点的所述数据块时,缓存所述数据块,并返回所述数据块给终丄山顺。
9. 如权利要求8所述的系统,其特征在于,所述被访问的Cache节点具体包括 第二返回模块,用于当所述Cache调度的设备查找出所述本地Cache节点中缓存有所述数据块时,返回所述数据块给终端;当所述Cache调度的设备查找出网络中缓存所述数 据块的Cache节点时,返回所述数据块给终端;判断模块,用于当所述本地Cache节点接收所述物理设备对应的Cache节点发送的所 述数据块,判断自身是否还有空间缓存所述数据块;第三返回模块,用于如果所述判断模块判断出没有,回收访问次数低且没有被操作的 数据块所占用的空间,再分配空间,将所述数据块缓存在所述分配的空间中,并返回所述数 据块给终端;第四返回模块,用于如果所述判断模块判断出有,分配空间,将所述数据块缓存在所述 分配的空间中,并返回所述数据块给终端。
10. 如权利要求8或9所述的系统,其特征在于,所述Cache节点还包括 记录模块,用于记录所述数据块被访问的次数。
11. 如权利要求9所述的系统、其特征在于,所述Cache节点还包括 设置模块,用于当网络中的任一 Cache节点中的数据块刚没有被操作时,为所述数据块设置荒废时间,所述荒废时间用于记录所述数据块没有被操作的时间; 相应地,所述第三返回模块,具体用于如果所述判断模块判断出没有,优先回收访问次数低且 荒废时间长的数据块所占用的空间,再分配空间,将所述数据块缓存在所述分配的空间中, 并返回所述数据块给终端。
全文摘要
本发明公开了一种Cache调度的方法、设备及系统,属于有线电视领域。所述方法包括文件管理系统FMS接收来自终端获取数据块的请求,所述请求中携带数据块的标识码ID;所述FMS根据所述ID查找本地Cache节点;如果查找出所述ID对应的数据块,所述FMS返回所述数据块给终端;如果没有查找出所述数据块,所述FMS根据所述ID从网络中查找缓存所述数据块的Cache节点,如果查找出Cache节点,从所述Cache节点中获取所述数据块给终端;如果没有查找出Cache节点,查找出存储所述数据块的物理设备;所述本地Cache节点接收所述物理设备对应的Cache节点发送的所述数据块,缓存所述数据块;所述FMS从所述本地Cache节点中获取所述数据块并返回给终端。本发明能够提高访问数据的效率。
文档编号G06F17/30GK101707684SQ20091023545
公开日2010年5月12日 申请日期2009年10月14日 优先权日2009年10月14日
发明者何营, 张宝柱, 朱峰, 段国学, 王福云, 翁植林 申请人:北京东方广视科技股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1