数据缓存方法及系统与流程

文档序号:18899039发布日期:2019-10-18 21:40阅读:202来源:国知局
数据缓存方法及系统与流程

本发明涉及通信领域,具体地,涉及一种数据缓存方法及系统。



背景技术:

内容分发网络(contentdeliverynetwork,以下简称cdn),通过采用分布式架构,设置一个中心节点以及多个边缘节点,边缘节点可以为就近用户提供访问服务,这样既能缓解中心节点压力,又能节省网络传输带宽。在离用户最近的边缘节点没有用户需要的视频内容时,边缘节点要想为用户提供服务,需要提前缓存中心节点的视频内容,因此,内容缓存方法和效果对cdn系统尤为重要。

目前,cdn内容缓存方法具体实现如下:每个边缘点单独缓存视频内容,当视频内容点播热度满足缓存要求且边缘点未缓存视频内容时,边缘节点向中心节点请求此视频内容缓存并下载,实现对中心节点内容缓存目的。

现有cdn内容缓存方法中,针对不同等级热度的视频内容,边缘节点采用直接全部缓存方法进行缓存,这样会导致热度较低的内容重复占用各边缘节点空间,造成大量存储空间的浪费。



技术实现要素:

本发明旨在至少解决现有技术中存在的技术问题之一,提出了一种数据缓存方法及系统。

为实现本发明的目的而提供一种数据缓存方法,所述方法包括:

按照地理位置区域划分,将cdn系统中所有边缘节点划分为一个或多个节点群,至少有一个所述节点群包括多个边缘节点,每个所述边缘节点均具有内容目录,所述内容目录用于记录当前节点群中各个所述边缘节点的数据缓存信息;

当目标边缘节点需要从中心节点获取点播数据时,计算所述点播数据的点播率,所述目标边缘节点为为用户提供访问服务的边缘节点;

判断所述点播率是否大于第一缓存阈值;

若是,从所述中心节点获取所述点播数据,同时向所述目标边缘节点所在的节点群的其他边缘节点发送所述点播数据的预缓存消息,以使所述其他边缘节点更新各自的内容目录;

在所述点播数据缓存完成之后,向所述其他边缘节点发送所述点播数据的缓存完成消息,以使所述其他边缘节点更新各自的内容目录。

优选地,在所述点播率小于或等于第一缓存阈值时,所述方法还包括:

判断所述点播率是否大于或等于第二缓存阈值,所述第二缓存阈值小于所述第一缓存阈值;

若是,所述目标边缘节点查询自身的内容目录,以检测所述目标边缘节点所在的节点群中所有边缘节点是否已有一个或多个边缘节点已缓存或者正在预缓存所述点播数据;

当所有所述边缘节点未缓存或未预缓存所述点播数据时,从所述中心节点获取所述点播数据,同时向所述目标边缘节点所在的节点群的其他边缘节点发送所述预缓存消息,以使所述其他边缘节点更新各自的内容目录;

在所述点播数据缓存完成之后,向所述其他边缘节点发送所述缓存完成消息,以使所述其他边缘节点更新各自的内容目录。

优选地,当检测到所述目标边缘节点所在的节点群中已有一个或多个边缘节点已缓存或者正在缓存所述点播数据时,停止数据缓存。

优选地,所述内容目录包括:

群中各边缘节点标识、已缓存点播数据标识、边缘节点与已缓存点播数据对应关系表、预缓存点播数据标识、边缘节点与预缓存点播数据对应关系表。

优选地,所述计算所述点播数据的点播率包括:

计算单位时间内的所述点播数据的请求次数;

在所述目标边缘节点首次从中心节点获取所述点播数据时,所述点播数据的请求次数从所述中心节点获得。

一种数据缓存系统,所述系统包括:群划分模块、计算模块、第一判断模块、广播模块;

所述群划分模块用于按照地理位置区域划分,将cdn系统中所有边缘节点划分为一个或多个节点群,其中至少有一个节点群包括多个边缘节点,每个所述边缘节点均具有内容目录,所述内容目录用于记录当前节点群中各个所述边缘节点的数据缓存信息;

所述计算模块用于当目标边缘节点需要从中心节点获取点播数据时,计算所述点播数据的点播率,所述目标边缘节点为为用户提供访问服务的边缘节点;

所述第一判断模块用于判断所述点播率是否大于第一缓存阈值,并在大于第一缓存阈值时触发所述广播模块;

所述广播模块用于从所述中心节点获取所述点播数据,同时向所述目标边缘节点所在的节点群的其他边缘节点发送所述点播数据的预缓存消息,以使所述其他边缘节点更新各自的内容目录;

在所述点播数据缓存完成之后,向所述其他边缘节点发送所述点播数据的缓存完成消息,以使所述其他边缘节点更新各自的内容目录。

优选地,还包括:第二判断模块以及查询模块;

所述第二判断模块用于在所述点播率小于或等于第一缓存阈值时判断所述点播率是否大于或等于第二缓存阈值,所述第二缓存阈值小于所述第一缓存阈值;若是,将判断结果发送给所述查询模块;

所述查询模块用于使所述目标边缘节点查询自身的内容目录,以检测所述目标边缘节点所在的节点群中所有边缘节点是否已有一个或多个边缘节点已缓存或者正在预缓存所述点播数据;并在所有所述边缘节点未缓存或未预缓存所述点播数据时,触发所述广播模块。

优选地,还包括:缓存禁止模块;

所述缓存禁止模块用于在所述查询模块查询到所述目标边缘节点所在的节点群中已有一个或多个边缘节点已缓存或者正在缓存所述点播数据时,停止数据缓存。

优选地,所述内容目录包括:

群中各边缘节点标识、已缓存点播数据标识、边缘节点与已缓存点播数据对应关系表、预缓存点播数据标识、边缘节点与预缓存点播数据对应关系表。

优选地,所述点播率为单位时间内所述点播数据的请求次数。

本发明具有以下有益效果:

本发明提供的数据缓存方法及系统,将cdn系统中所有边缘节点划分为一个多个节点群,当目标节点需要从中心节点获取点播数据时,计算点播数据的点播率,并在点播率大于第一缓存阈值时,从中心节点获取点播数据,同时向目标边缘节点所在的节点群的其他边缘节点发送点播数据的预缓存消息;在点播数据缓存完成之后,向其他边缘节点发送点播数据的缓存完成消息,以使其他边缘节点更新各自的内容目录;本发明采用边缘节点分群的方式,按照点播数据的不同的点播率,实现节点群中各个边缘节点内容缓存,从而在保证边缘节点存储空间不变的情况下,此方式可以缓存更多的点播内容,进而实现缓解中心节点点播压力目的。

附图说明

图1为本发明实施例提供的数据缓存方法的一种流程图;

图2为本发明实施例提供的数据缓存方法的另一种流程图;

图3为本发明实施例提供的数据缓存系统的一种结构示意图;

图4为本发明实施例提供的数据缓存系统的另一种结构示意图。

具体实施方式

为使本领域的技术人员更好地理解本发明的技术方案,下面结合附图来对本发明提供的数据缓存方法及系统进行详细描述。

实施例一

图1所示为本发明实施例提供的数据缓存方法的一种流程图,本实施例中,数据缓存方法包括以下步骤:

步骤100:开始。

步骤101:按照地理位置区域划分,将cdn系统中所有边缘节点划分为一个或多个节点群,至少有一个节点群包括多个边缘节点,每个边缘节点均具有内容目录,内容目录用于记录当前节点群中各个边缘节点的数据缓存信息。

具体地,内容目录包括:群中各边缘节点标识、已缓存点播数据标识、边缘节点与已缓存点播数据对应关系表、预缓存点播数据标识、边缘节点与预缓存点播数据对应关系表。

其中,已缓存点播数据标识是指可以识别各个点播数据的内容识别号或产品识别号;预缓存点播数据标识是指可以识别各个正在预缓存点播数据的内容识别号或产品识别号;边缘节点标识是指可以识别各个边缘节点的识别号;边缘节点与已缓存点播数据对应关系表是指记录各个边缘节点与已缓存点播数据识别号之间的对应关系;边缘节点与预缓存点播数据对应关系表是指记录各个边缘节点与预缓存点播数据识别号之间的对应关系。

步骤102:当目标边缘节点需要从中心节点获取点播数据时,计算点播数据的点播率,目标边缘节点为为用户提供访问服务的边缘节点。

具体地,计算点播数据的点播率包括:

计算单位时间内的点播数据的请求次数;

在目标边缘节点首次从中心节点获取点播数据时,点播数据的请求次数从中心节点获得。

步骤103:判断点播率是否大于第一缓存阈值;若是,执行步骤104;否则,执行步骤106。

步骤104:从中心节点获取点播数据,同时向目标边缘节点所在的节点群的其他边缘节点发送点播数据的预缓存消息,以使其他边缘节点更新各自的内容目录。

步骤105:在点播数据缓存完成之后,向其他边缘节点发送点播数据的缓存完成消息,以使其他边缘节点更新各自的内容目录。

步骤106:结束。

本发明实施例提供的数据缓存方法,将cdn系统中所有边缘节点划分为一个多个节点群,当目标节点需要从中心节点获取点播数据时,计算点播数据的点播率,并在点播率大于第一缓存阈值时,从中心节点获取点播数据,同时向目标边缘节点所在的节点群的其他边缘节点发送点播数据的预缓存消息;在点播数据缓存完成之后,向其他边缘节点发送点播数据的缓存完成消息,以使其他边缘节点更新各自的内容目录;本发明采用边缘节点分群的方式,按照点播数据的不同的点播率,实现节点群中各个边缘节点内容缓存,从而在保证边缘节点存储空间不变的情况下,此方式可以缓存更多的点播内容,进而实现缓解中心节点点播压力目的。

实施例二

图2所示为本发明实施例提供的数据缓存方法的另一种流程图,本实施例中,数据缓存方法包括以下步骤:

步骤200:开始。

步骤201:按照地理位置区域划分,将cdn系统中所有边缘节点划分为一个或多个节点群,至少有一个节点群包括多个边缘节点,每个边缘节点均具有内容目录,内容目录用于记录当前节点群中各个边缘节点的数据缓存信息。

步骤202:当目标边缘节点需要从中心节点获取点播数据时,计算点播数据的点播率,目标边缘节点为为用户提供访问服务的边缘节点。

步骤203:判断点播率是否大于第一缓存阈值;若是,执行步骤204;否则,执行步骤207。

步骤204:从中心节点获取点播数据,同时向目标边缘节点所在的节点群的其他边缘节点发送点播数据的预缓存消息,以使其他边缘节点更新各自的内容目录;

步骤205:在点播数据缓存完成之后,向其他边缘节点发送点播数据的缓存完成消息,以使其他边缘节点更新各自的内容目录。

步骤206:结束。

步骤207:判断点播率是否大于或等于第二缓存阈值,第二缓存阈值小于第一缓存阈值;若是,执行步骤208;否则,执行步骤206。

步骤208:目标边缘节点查询自身的内容目录。

步骤209:检测目标边缘节点所在的节点群中所有边缘节点是否已有一个或多个边缘节点已缓存或者正在预缓存点播数据;若否,执行步骤204;若是,执行步骤210。

步骤210:停止数据缓存,执行步骤202。

本发明实施例提供的数据缓存方法,当目标边缘节点需要从中心节点获取点播数据时,根据点播数据计算点播率,并在点播率大于第一缓存阈值时,从中心节点获取点播数据,并向目标边缘节点所在的节点群的其他边缘节点发送点播数据的预缓存消息,以使其他边缘节点更新各自的内容目录;在点播数据缓存完成之后,向其他边缘节点发送缓存完成消息,以使边缘节点更新各自的内容目录;在点播率小于第一缓存阈值且大于第二缓存阈值时,目标边缘节点查询自身的内容目录,检测目标边缘节点所在节点群中所有边缘节点是否已有一个或多个边缘节点已缓存或者正在预缓存点播数据,当所有边缘节点未缓存或未预缓存点播数据时,从中心节点获取点播数据,同时通知其他边缘节点更新各自的内容目录。本发明,当目标边缘节点需要从中心节点获取点播数据时,针对点播率较高的点播数据,目标边缘节点直接从中心节点获取点播数据,保障点播数据快速的向用户推送;针对点播率较低的点播数据,目标边缘节点再从自身的内容目录中查询到其所在的节点群中未有任何一个边缘节点已缓存或预缓存了点播数据后,再从中心节点获取点播数据,在保证边缘节点存储空间不变的情况下,此方式可以缓存更多的视频内容,进而实现缓解中心节点点播压力目的。

实施例三

针对上述数据缓存方法,本发明还提供了一种数据缓存系统,如图3所示,数据缓存系统包括:群划分模块、计算模块、第一判断模块、广播模块。

群划分模块用于按照地理位置区域划分,将cdn系统中所有边缘节点划分为一个或多个节点群,其中至少有一个节点群包括多个边缘节点,每个边缘节点均具有内容目录,内容目录用于记录当前节点群中各个边缘节点的数据缓存信息。

具体地,内容目录包括:

群中各边缘节点标识、已缓存点播数据标识、边缘节点与已缓存点播数据对应关系表、预缓存点播数据标识、边缘节点与预缓存点播数据对应关系表。

计算模块用于当目标边缘节点需要从中心节点获取点播数据时,计算点播数据的点播率,目标边缘节点为为用户提供访问服务的边缘节点。

具体地,点播率为单位时间内点播数据的请求次数。计算模块可以由目标边缘节点自身获得点播数据的请求次数也可以从中心节点获取该请求次数,从而计算点播率。

第一判断模块用于判断点播率是否大于第一缓存阈值,并在大于第一缓存阈值时触发广播模块。

广播模块用于从中心节点获取点播数据,同时向目标边缘节点所在的节点群的其他边缘节点发送点播数据的预缓存消息,以使其他边缘节点更新各自的内容目录;

在点播数据缓存完成之后,向其他边缘节点发送点播数据的缓存完成消息,以使其他边缘节点更新各自的内容目录。

本发明实施例提供的数据缓存系统,群划分模块将cdn系统中所有边缘节点划分为一个多个节点群,当目标节点需要从中心节点获取点播数据时,计算模块计算点播数据的点播率,第一判断模块在在点播率大于第一缓存阈值时,触发广播模块;广播模块从中心节点获取点播数据,同时向目标边缘节点所在的节点群的其他边缘节点发送点播数据的预缓存消息;在点播数据缓存完成之后,向其他边缘节点发送点播数据的缓存完成消息,以使其他边缘节点更新各自的内容目录;本发明采用边缘节点分群的方式,按照点播数据的不同的点播率,实现节点群中各个边缘节点内容缓存,从而在保证边缘节点存储空间不变的情况下,此方式可以缓存更多的点播内容,进而实现缓解中心节点点播压力目的。

本发明的另一个实施例中,如图4所示,数据缓存系统还包括:第二判断模块以及查询模块。

所述第二判断模块用于在所述点播率小于或等于第一缓存阈值时判断所述点播率是否大于或等于第二缓存阈值,所述第二缓存阈值小于所述第一缓存阈值;若是,将判断结果发送给所述查询模块。

查询模块用于使所述目标边缘节点查询自身的内容目录,以检测所述目标边缘节点所在的节点群中所有边缘节点是否已有一个或多个边缘节点已缓存或者正在预缓存所述点播数据;并在所有所述边缘节点未缓存或未预缓存所述点播数据时,触发所述广播模块。

本发明实施例提供的数据缓存系统,通过设置第二判断模块以及查询模块可以使目标边缘节点在点播数据的点播率较低时,首选查询自身内容目录,以确定当前节点群中未有任何一个边缘节点已缓存或正在预缓存点播数据,保证了边缘节点存储空间不变的情况下,可以缓存更多视频内容,缓解中心节点点播压力。

本发明另一个实施例中,还包括:缓存禁止模块;

缓存禁止模块用于在查询模块查询到目标边缘节点所在的节点群中已有一个或多个边缘节点已缓存或者正在缓存点播数据时,停止数据缓存。

本发明中,点播数据可以是文件、视频、音频形式的数据,下面结合图4对采用发明提供的数据缓存方法及系统进行视频内容缓存的流程进行说明:

1、当目标边缘节点需要从中心节点缓存点播量高的视频内容时,边缘节点根据视频内容点播率p大小判断是否需要本节点缓存,若点播率p>第一缓存阈值p1时,边缘节点从中心节点请求本视频内容缓存,同时,目标边缘节点向群内其他边缘节点广播此视频内容预缓存消息。

2、待目标边缘节点缓存完成后,目标边缘节点向群内其他边缘节点广播此视频内容已缓存消息,群内其他边缘节点收到此消息后,把更新内容写入各自节点的内容目录中。

3、若第一缓存阈值p1≥点播率p≥第二缓存阈值p2时,目标边缘节点首先查询自身内容目录,若本群内其他边缘节点都未缓存此视频内容,且未收到群内其他节点的此视频内容的预缓存消息,则此边缘节点向群内其他边缘节点广播此视频内容预缓存消息,同时开始从中心节点请求缓存视频内容。

4、待缓存完成后,边缘节点向群内其他节点广播此视频内容已缓存消息,群内其他边缘节点收到此消息后,把更新内容写入各自节点的内容目录中。

可以理解的是,以上实施方式仅仅是为了说明本发明的原理而采用的示例性实施方式,然而本发明并不局限于此。对于本领域内的普通技术人员而言,在不脱离本发明的精神和实质的情况下,可以做出各种变型和改进,这些变型和改进也视为本发明的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1