用于cdn系统的缓存数据同步方法和系统的制作方法
【专利摘要】本发明公开一种用于CDN系统的缓存数据同步方法,包括:对缓存在CDN节点的文件的特征信息进行多次哈希以确定第一数字组;上传所述第一数字组至调度中心以修改所述调度中心中的查询数组,其中所述查询数组用于调度中心进行文件缓存结果查询;本发明还提供一种用于CDN系统的缓存数据同步系统;本发明的方法和系统减少了边缘节点同步上传的信息量,加快了调度中心查询数据的速度,减轻了调度中心的存储压力。
【专利说明】
用于CDN系统的缓存数据同步方法和系统
技术领域
[0001]本发明涉及互联网技术领域,特别涉及一种用于CDN系统的缓存数据同步方法和系统。
【背景技术】
[0002]CDN的全称是Content Delivery Network,即内容分发网络。其目的是通过在现有的Internet中增加一层新的网络架构,将网站的内容发布到最接近用户的网络"边缘",使用户可以就近取得所需的内容,解决Internet网络拥塞状况,提高用户访问网站的响应速度。
[0003]CDN技术分为动态加速和静态加速两种技术,目前普遍使用的多是静态加速,即在网络的边缘部署CDN节点,当有用户请求某项服务时,CDN系统通过调度,即全局负载均衡(Global Server Load Balance,GSLB)策略将用户定向到距它最近并且缓存有用户请求的内容的一个边缘节点,将缓存的内容发给该用户。这就需要边缘节点同步本节点处缓存的所有内容的信息至调度中心,以备调度中心在接收到用户对某项服务的访问请求时,通过查询存储的边缘节点同步的缓存内容的信息以准确的确定缓存有被请求内容的边缘节点。
[0004]现有技术中边缘节点同步本节点缓存内容的方法为:通过将边缘节点中存储的所有文件的元数据名称上传至调度中心进行存储,以实现边缘节点缓存文件的信息与调度中心的同步;现有技术中调度中心查询边缘节点中是否缓存有某一文件的方法为:调度中心在接收到用户访问请求时,根据用户的请求对比调度中心存储的边缘节点同步来的缓存文件信息(文件的元数据名称),以确定用户请求访问的文件所在的边缘节点。
[0005]但是,由于边缘节点众多以及每一个边缘节点处缓存的元数据的数量也是相当大的(例如,视频文件都是以TS片的形式存在的),因此这种传统的上传至调度中心以存储的方式对调度中心造成了越来越重的压力,而且也存在着由于上传同步过程中文件丢失,导致同步失败的缺点;此外,由于调度中心中以文件的元数据名称的形式存储了全网所有边缘节点中缓存的所有的文件的信息,因此通过传统的逐一对比的方式来确定缓存有被请求文件的边缘节点的效率是非常低的,这还直接造成了对用户提供服务的延时,影响用户体验,同时也是非常消耗调度中心资源的。
【发明内容】
[0006]本发明提供一种用于CDN系统的缓存数据同步方法和系统,用于解决现有技术中边缘节点同步上传的信息量大以及调度中心查询工作量大、效率低的技术问题。
[0007]根据本发明的一个方面,提供了一种用于⑶N系统的缓存数据同步方法,包括:
[0008]对缓存在CDN节点的文件的特征信息进行多次哈希以确定第一数字组;
[0009]上传所述第一数字组至调度中心以修改所述调度中心中的查询数组,其中所述查询数组用于调度中心进行文件缓存结果查询。
[0010]根据本发明的另一个方面,提供一种用于CDN系统的缓存数据同步系统,包括:
[0011]第一哈希模块,用于对缓存在CDN节点的文件的特征信息进行多次哈希以确定第一数字组;
[0012]数据上传模块,用于上传所述第一数字组至调度中心以修改所述调度中心中的查询数组,其中所述查询数组用于调度中心进行文件缓存结果查询。
[0013]本发明实施例的用于CDN系统的缓存数据同步方法和系统,通过对缓存在CDN节点的文件的特征信息进行多次哈希以确定第一数字组,并上传至调度中心用于存储CDN节点中的文件的特征信息,从而仅仅通过上传一组通过对CDN节点的文件的特征信息进行多次哈希确定的具有唯一性的数字(第一数字组)就实现了对缓存文件的信息的同步,减少了CDN节点上传同步数据量和工作量;同时,减轻了调度中心的存储压力,使得查询也变得快捷高效,提高了对用户访问请求的响应的速度,从而提升用户体验。
【附图说明】
[0014]为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0015]图1为本发明的用于CDN系统的缓存数据同步方法的一实施例的流程图;
[0016]图2为本发明的用于CDN系统的缓存数据同步方法的另一实施例的流程图;
[0017]图3为本发明的用于CDN系统的缓存数据同步系统的一实施例的示意图;
[0018]图4为本发明的用于CDN系统的缓存数据同步系统的另一实施例的示意图;
[0019]图5为位数组中所有位全部置零的示意图;
[0020]图6为k取3时对位数组置数的一实施例的示意图;
[0021 ]图7为判断元素是否存在于位数组中的一实施例的示意图。
具体实施例
[0022]为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0023]需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
[0024]本发明可用于众多通用或专用的计算系统环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器系统、基于微处理器的系统、置顶盒、可编程的消费电子设备、网络PC、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。
[0025]本发明可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本发明,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
[0026]最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”,不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0027]如图1所示,本发明的一实施例的用于⑶N系统的缓存数据同步方法,包括:
[0028]SI 1、对缓存在⑶N节点的文件的特征信息进行多次哈希以确定第一数字组;
[0029]S12、上传所述第一数字组至调度中心以修改所述调度中心中的查询数组,其中所述查询数组用于调度中心进行文件缓存结果查询。
[0030]本实施例的用于CDN系统的缓存数据查询同步方法,通过对缓存在CDN节点的文件的特征信息进行多次哈希以确定第一数字组,从而仅仅通过上传一组通过对CDN节点的文件的特征信息进行多次哈希确定的具有唯一性的数字(第一数字组)就实现了对缓存文件的信息的同步,减少了CDN节点上传同步数据量和工作量;同时,节省了调度中心的存储空间,而且在调度中心查询时也只需要通过确定查询数组中的相应位是否被置数即可完成查询,所以使得查询也变得快捷高效,提高了对用户访问请求的响应的速度,从而提升用户体验。
[0031]上述实施例中的上传第一数字组至调度中心以修改调度中心中的查询数组包括,读取第一数字组中的数字;
[0032]对查询数组中的与读取的数字相对应的位进行置数得到新的查询数组。
[0033]对待查询的文件的特征信息进行多次哈希以确定第二数字组;
[0034]查询所述新的查询数组中的与第二数字组对应的位置是否已被置数,根据查询结果确定待查询的文件是否已经缓存在CDN节点中。
[0035]本实施例中的待查询的文件可以是来自客户端的访问请求要求访问某一文件。
[0036]如图2所示,为本发明的另一实施例的流程图,在该实施例中,对缓存在CDN节点的文件的特征信息进行多次哈希以确定第一数字组包括:
[0037]S21、确定文件的特征信息;
[0038]S22、对特征信息进行多次哈希,每次哈希都生成一个数字;
[0039]S23、将生成的所有数字存储为第一数字组。
[0040]本实施例中采用哈希算法对文件的特征信息进行多次哈希以得到相应的包含了多个数字的第一数字组,用于唯一的标识该文件,从而将标识该文件的数据信息压缩到了几个数字,大大减少了 CDN节点同步本地缓存的文件信息所需要上传的数据量,而且由于上传的数据量的减小,也减少了上传过程中出错的概率(因为上传较大的文件对于网络环境的要求必然就高,上传较小的文件对网络环境的要求不高,因此上传一串数字相对于上传完整的文件信息的出错概率也大大降低了)。
[0041]此外,对所缓存在CDN节点的文件的特征信息进行哈希的次数至少为8次,这样做的目的在于保证对不同的文件的特征信息进行多次哈希后得到的数字组不一样。以为,当对不同的文件的特征信息进行较少次数的哈希(例如3次)时,得到的仅仅是包括了三个数字的数字组,这样得到的数字组跟对别的文件的特征信息进行3次哈希得到的数字组相同的概率还是比较大的,这样在后续的查询中就可能存在无查询的情况的发生,例如,对A文件和B文件的3次的哈希结果都是(4、9、13),当某节点缓存有A文件并且将对其特征信息进行哈希的结果(4、9、13)同步后,如果调度中心查询B文件是否被缓存,则这时由于对B文件的特征信息的3次哈希结果也是(4、9、13),便会误判为B文件已经被缓存在了某一个CDN节点。
[0042]为了进一步的保证对文件的特征信息进行哈希得到的数字组的唯一性,特征信息采用文件的名称中的字符串或者为文件的MD5值,因为文件的名称中的字符串和文件的MD5值本身就是一种唯一标识某一文件的信息,这样对其进行哈希得到的数字组出现于别的文件的特征信息相同的概率就更加小了,进而提升了调度中心查询结果的准确性。
[0043]上述实施例中的第一数字组用于确定调度中心的第一查询数组中的待置数位置,对所确定的待置数位置进行置数,生成第二查询数组,具体包括:
[0044]读取所述第一数字组中的数字;
[0045]对第一查询数组中的与读取的所述数字相对应的位进行置数得到第二查询数组。
[0046]为使得本实施例更加清楚,结合以下示例进行说明。
[0047]I)位数组(S卩、第一查询数组):
[0048]假设位数组使用一个m比特的数组来保存信息,初始状态时,位数组是一个包含m位的数组,每一位都置为O,即整个数组的元素都设置为O (如图5所示)。
[0049]2)k个独立的hash函数(用于多次哈希)
[0050]为了表达S={X1,X2,...,&}这样一个η个元素的集合(每个元素相当于一个文件的特征信息),位数组使用k个相互独立的哈希函数(Hash Funct1n),它们分别将集合中的每个元素映射到{I,…,m}的范围中。
[0051]当我们往位数组中增加任意一个元素X时候,我们使用k个哈希函数对X进行哈希得到k个哈希值,然后将数组中对应的比特位设置为I。即第i个哈希函数映射的位置hash,(X)就会被置为I(KiSk)。注意,如果一个位置多次被置为I,那么只有第一次会起作用,后面几次将没有任何效果。在图6中,k = 3,且有两个哈希函数选中同一个位置(从左边数第五位,即第二个“1“处)。
[0052]3)判断元素是否存在于位数组中(S卩,判断某一个文件是否存在于CDN节点中)
[0053]在判断元素y是否属于这个位数组时,我们只需要对y使用k个哈希函数得到k个哈希值,如果所有hash^y)的位置都是I(KiSk),S卩k个位置都被设置为I了,那么我们就认为y是位数组中的元素(这时即可确定元素y所对应的文件存在于CDN节点中),否则就认为y不是位数组中的元素(这时即可确定元素y所对应的文件不再CDN节点中)。如图7所示,71就不是位数组中的元素(因为yl有一处指向了 “O”位)。72或者属于这个位数组。
[0054]这里m与η的单位不同,m是bit为单位,而η则是以元素个数为单位(准确的说是不同元素的个数)。通常单个元素的长度都是有很多bit的。所以使用上述方法存储文件的特征信息在内存上通常都是节省的。
[0055]上述实施例中的方法可用于⑶N服务器和⑶N调度中心上。
[°°56] 本发明实施例中可以通过硬件处理器(hardware processor)来实现相关功能模块。
[0057]需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作合并,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
[0058]在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
[0059]如图3所示,本发明一实施例的用于CDN系统的缓存数据同步系统的示意图,包括:
[0060]第一哈希模块,用于对缓存在CDN节点的文件的特征信息进行多次哈希以确定第一数字组;
[0061]数据上传模块,用于上传所述第一数字组至调度中心以修改所述调度中心中的查询数组,其中所述查询数组用于调度中心进行文件缓存结果查询。
[0062 ]本实施例的用于⑶N系统的缓存数据同步系统,通过第一哈希模块对缓存在⑶N节点的文件的特征信息进行多次哈希以确定第一数字组,并且通过数据上传模块将所述第一数字组上传至调度中心以用于确定调度中心的第一查询数组中的待置数位置,对所确定的待置数位置进行置数,生成第二查询数组,从而仅仅通过上传一组通过对⑶N节点的文件的特征信息进行多次哈希确定的具有唯一性的数字(第一数字组)就实现了对缓存文件的信息的同步,减少了CDN节点上传同步数据量和工作量;同时,由于被同步的信息在调度中心也是以数字位的形式存储的,节省了存储空间,而且通过第二哈希模块和查询确定模块在调度中心查询时也只需要通过确定查询数组中的相应位是否被置数即可完成查询,所以使得查询也变得快捷高效,提高了对用户访问请求的响应的速度,从而提升用户体验。
[0063]如图4所示,本发明一实施例的示意图,其中,第一哈希模块包括:
[0064]特征信息确定单元,用于确定所述文件的特征信息;
[0065]哈希计算单元,用于对所述特征信息进行多次哈希,每次哈希都生成一个数字;
[0066]第一数字组生成单元,用于将生成的所有数字存储为第一数字组。
[0067 ]特征信息为所述文件的名称中的字符串或者为所述文件的MD5值。
[0068]对所缓存在CDN节点的文件的特征信息进行哈希的次数至少为8次。
[0069]本实施例中采用哈希算法对文件的特征信息进行多次哈希以得到相应的包含了多个数字的第一数字组,用于唯一的标识该文件,从而将标识该文件的数据信息压缩到了几个数字,大大减少了 CDN节点同步本地缓存的文件信息所需要上传的数据量,而且由于上传的数据量的减小,也减少了上传过程中出错的概率(因为上传较大的文件对于网络环境的要求必然就高,上传较小的文件对网络环境的要求不高,因此上传一串数字相对于上传完整的文件信息的出错概率也大大降低了)。
[0070]上述实施例中的系统可布设于⑶N服务器和⑶N调度中心之上。
[0071]以上所描述的方法实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
[0072]通过以上的实施例的描述,本领域的技术人员可以清楚地了解到各实施例可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如R0M/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
[0073]本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
[0074]本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0075]这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0076]最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
【主权项】
1.一种用于⑶N系统的缓存数据同步方法,包括: 对缓存在CDN节点的文件的特征信息进行多次哈希以确定第一数字组; 上传所述第一数字组至调度中心以修改所述调度中心中的查询数组,其中所述查询数组用于调度中心进行文件缓存结果查询。2.根据权利要求1所述的方法,其中,所述对缓存在CDN节点的文件的特征信息进行多次哈希以确定第一数字组包括: 确定所述文件的特征信息; 对所述特征信息进行多次哈希,每次哈希都生成一个数字; 将生成的所有数字存储为第一数字组。3.根据权利要求1或2所述的方法,其中,所述特征信息为所述文件的名称中的字符串或者为所述文件的MD5值。4.根据权利要求1或2所述的方法,其中,对所缓存在CDN节点的文件的特征信息进行哈希的次数至少为8次。5.—种用于⑶N系统的缓存数据同步系统,包括: 第一哈希模块,用于对缓存在CDN节点的文件的特征信息进行多次哈希以确定第一数字组; 数据上传模块,用于上传所述第一数字组至调度中心以修改所述调度中心中的查询数组,其中所述查询数组用于调度中心进行文件缓存结果查询。6.根据权利要求6所述的方法,其中,所述第一哈希模块包括: 特征信息确定单元,用于确定所述文件的特征信息; 哈希计算单元,用于对多所述特征信息进行多次哈希,每次哈希都生成一个数字; 第一数字组生成单元,用于将生成的所有数字存储为第一数字组。7.根据权利要求5或6所述的系统,其中,所述特征信息为所述文件的名称中的字符串或者为所述文件的MD5值。8.根据权利要求5或6所述的系统,其中,对所缓存在CDN节点的文件的特征信息进行哈希的次数至少为8次。
【文档编号】G06F17/30GK105893468SQ201610184232
【公开日】2016年8月24日
【申请日】2016年3月28日
【发明人】李洪福
【申请人】乐视控股(北京)有限公司, 乐视云计算有限公司