一种Chord路由表压缩方法及优化文件查找方法与流程

文档序号:11950553阅读:416来源:国知局
一种Chord路由表压缩方法及优化文件查找方法与流程

本发明涉及一种Chord路由表压缩方法及优化文件查找方法,属于云存储应用技术领域。



背景技术:

云存储作为一个复杂的综合系统,其核心在于内置的分布式文件系统,它是云存储的基础。所谓分布式文件系统是指文件系统管理的物理存储资源不局限在本地节点上,而是通过网络与节点相连,然后把整个分布式存储资源以统一的视图呈现给用户。目前的分布式文件系统以是否存在元数据节点可以将其分为两类:基于中心的分布式文件系统和无中心的分布式文件系统。

在无中心的分布式文件系统中,目前主流的分布式文件系统是基于DHT的系统,其资源映射及查找算法是基于hash算法将文件资源和节点映射到同一个哈希空间上,然后将资源映射到存储节点上。

一致性哈希算法、Kademlia算法都是目前主流的分布式哈希表(Distributed Hash Table,DHT)协议。DHT实际上是一个由网络中所有节点共同维护的巨大散列表,每个节点和资源都被分配散列表空间中的唯一标识符,每个节点按照DHT算法规则负责网络中一小部分路由信息和资源信息。根据DHT算法可以确定资源所在的存储节点,目前应用较多的典型的算法是Chord等。

以Chord算法为例:Chord算法使用一个m位的标识符空间,把随机选择的标识符赋给节点,并把键值赋给特定实体。根据所用的散列函数,位数m通常为128或160。键值k对应的实体位于含有最小标识符id≥k的节点之内。该节点称为k的后继者,用succ(k)表示。所以,基于DHT系统的主要问题是如何高效的将键值k解析为succ(k)。每个存储节点都需要维护一个finger表,在进行文件查找时,目前,给定指纹值在查找节点的finger表是从finger表项的最后一项逐项往前扫描,存在最坏的情况,即“最为接近该指纹值的前驱节点”Ncp在finger表的前部比较的次数较多。Chord算法采用SHA-1算法来计算节点和资源的指纹值时,m的值为160,哈希环空间理论大小为[0,2160)。如此,每个存储节点的finger表有160个表项。在查找Ncp时,最坏的情况下需要和finger表中的表项比较160次。若查找过程中出现极端现象,如多跳节点上查找均出现最坏情况,查找时间开销会很大。而且,在每个节点存储的finger表中,一个节点对应的多个指纹值的每一项均用一行来存储,存在大量冗余,拖慢了查找速度。在查找最接近指纹值的节点Ncp算法中,Chord算法源代码中采用的是从finger表的最后一项往前逐项查找,始终找小于给定指纹值的最大值。对于无中心云存储系统而言,搜索指纹在整个重复数据查找过程中尤为重要。从后往前逐项扫描finger表对于要搜索的Ncp在finger表尾部的这种情况较优。然而,当搜索的结果在finger的中部或前部时,搜索时间就会很长,平均搜索时间较差。

随着云存储的需求日益增加,云存储系统的集群规模也会越来越大,现存的资源查找方法在效率方面已经显得不足。



技术实现要素:

本发明所要解决的技术问题是提供一种采用全新设计思想,针对Chord环中各个节点所维护的路由表进行压缩,能够针对无中心云存储系统中文件实体实现高效定位的Chord路由表压缩方法。

本发明为了解决上述技术问题采用以下技术方案:本发明设计了一种Chord路由表压缩方法,针对Chord环中各个节点所维护的路由表,分别执行如下步骤,分别获得Chord环中各个节点的压缩路由表;

步骤a01.初始化count=0,i=0,并获得节点所维护路由表的总行数m,以及获得Chord环中最大哈希值所对应的节点INT_MAX,然后进入步骤a02;

步骤a02.将该节点赋给参数min,同时,将该节点所维护路由表中第i行的后继路由节点赋给参数max,然后进入步骤a03;

步骤a03.判断i是否小于m,是则进入步骤a04,否则进入步骤a08;

步骤a04.判断该节点所维护路由表中第i行的后继路由节点是否等于参数max,是则针对i的值加1,并将结果赋给i,然后返回步骤a03;否则进入步骤a05;

步骤a05.以参数min所对应的节点和参数max所对应的节点构成前闭后开节点区间,作为该节点压缩路由表第count行的后继路由节点区间,然后进入步骤a06;

步骤a06.针对count的值加1,并将结果赋给count,同时,将参数max所对应的节点赋给参数min,然后进入步骤a07;

步骤a07.将该节点所维护路由表中第i行的后继路由节点赋给参数max,同时针对i的值加1,并将结果赋给i,再返回步骤a04;

步骤a08.以参数min所对应的节点和参数max所对应的节点构成前闭后开节点区间,作为该节点压缩路由表第count行的后继路由节点区间,然后进入步骤a09;

步骤a09.针对count的值加1,并将结果赋给count,然后进入步骤a10;

步骤a10.以参数max所对应的节点和参数INT_MAX所对应的节点构成前闭后开节点区间,作为该节点压缩路由表第count行的后继路由节点区间。

本发明所述Chord路由表压缩方法采用以上技术方案与现有技术相比,具有以下技术效果:本发明所设计Chord路由表压缩优化方法,针对Chord环中各个节点所维护的路由表,按所设计方法进行压缩,减小了各个节点维护路由表的空间代价,缩短了文件定位的时间,进而提高了整个Chord环中各个节点存储空间的使用效率和时间效率。

基于上述所设计Chord路由表压缩方法技术方案的基础之上,本发明还要解决的技术问题是引入全新文件查找模式,能够更加便捷地针对无中心云存储系统中的文件实体实现高效定位的基于Chord路由表压缩方法的优化文件查找方法。

本发明为了解决上述技术问题采用以下技术方案:本发明设计了一种基于Chord路由表压缩方法的优化文件查找方法,用于查找指定目标文件所在的存储节点,包括如下步骤:

步骤b01.在Chord环中的各个节点中,任选其中一个节点,作为待分析节点,并进入步骤b02;

步骤b02.查找判断目标文件是否为该待分析节点的本地存储,是则确认指定目标文件的存储位置,查找结束;否则进入步骤b03;

步骤b03.在Chord环中,选择该待分析节点的后继节点,查找判断目标文件是否为该后继节点的本地存储,是则确认指定目标文件的存储位置,查找结束,否则进入步骤b04;

步骤b04.根据目标文件所对应的文件指纹值,以及该待分析节点压缩路由表中各节点区间分别所对应的节点指纹值区间,针对该待分析节点的压缩路由表进行查找,确定目标文件的后续查找节点,然后进入步骤b05;

步骤b05.将目标文件的后续查找节点更新为待分析节点,并返回步骤b02。

作为本发明的一种优选技术方案:所述步骤b02中,根据目标文件所对应的文件指纹值,查找判断目标文件是否为该待分析节点的本地存储;所述步骤b03中,在Chord环中,选择该待分析节点的后继节点,根据目标文件所对应的文件指纹值,查找判断目标文件是否为该后继节点的本地存储。

作为本发明的一种优选技术方案:所述步骤b04中,根据目标文件所对应的文件指纹值,以及该待分析节点压缩路由表中各节点区间分别所对应的节点指纹值区间,采用二分搜索算法,针对该待分析节点的压缩路由表进行查找,确定目标文件的后续查找节点。

作为本发明的一种优选技术方案:所述步骤b04具体包括如下步骤:

步骤b04-1.针对所述该待分析节点的压缩路由表,初始化指针left指向该压缩路由表的第一行,指针right指向该压缩路由表的最后一行,然后进入步骤b04-2;

步骤b04-2.针对该待分析节点的压缩路由表,确定指针left和指针right之前的中间指针mid所指向该压缩路由表中的行,然后进入步骤b04-3;

步骤b04-3.针对该待分析节点的压缩路由表,获得中间指针mid所指行对应的节点区间,并获得该节点区间中最大节点指纹值和最小节点指纹值,作为中间指针mid所对应的最大节点指纹值和最小节点指纹值,然后进入步骤b04-4;

步骤b04-4.判断目标文件所对应的文件指纹值是否小于中间指针mid所对应的最小节点指纹值,是则将中间指针mid所对应的行数减1,并将结果赋值给指针right,再返回步骤b04-2;否则进入步骤b04-5;

步骤b04-5.判断目标文件所对应的文件指纹值是否大于中间指针mid所对应的最大节点指纹值,是则将中间指针mid所对应的行数加1,并将结果赋值给指针left,再返回步骤b04-2;否则进入步骤b04-6;

步骤b04-6.将中间指针mid所对应节点区间中,最小节点指纹值所对应的节点作为目标文件的后续查找节点。

本发明所述基于Chord路由表压缩方法的优化文件查找方法,采用以上技术方案与现有技术相比,具有以下技术效果:本发明所设计基于Chord路由表压缩方法的优化文件查找方法,基于上述所设计Chord路由表压缩方法所获得各节点的压缩路由表,引入二分搜索算法,能够明显减少文件定位过程中指纹对比次数,且使得文件定位过程中的指纹对比次数变得更加稳定,波动幅度较小,进一步有效提高了无中心云存储系统中文件实体实现高效定位的工作效率。

附图说明

图1是实施例节点路由表应用本发明所设计Chord路由表压缩方法的前后对比示意图;

图2是本发明所设计基于Chord路由表压缩方法的优化文件查找方法中实施例应用二分搜索算法的示意图。

具体实施方式

下面结合说明书附图对本发明的具体实施方式作进一步详细的说明。

本发明所设计的一种Chord路由表压缩方法,在实际应用过程当中,针对Chord环中各个节点所维护的路由表,分别具体执行如下步骤,分别获得Chord环中各个节点的压缩路由表。

步骤a01.初始化count=0,i=0,并获得节点所维护路由表的总行数m,以及获得Chord环中最大哈希值所对应的节点INT_MAX,然后进入步骤a02。

步骤a02.将该节点赋给参数min,同时,将该节点所维护路由表中第i行的后继路由节点赋给参数max,然后进入步骤a03。

步骤a03.判断i是否小于m,是则进入步骤a04,否则进入步骤a08。

步骤a04.判断该节点所维护路由表中第i行的后继路由节点是否等于参数max,是则针对i的值加1,并将结果赋给i,然后返回步骤a03;否则进入步骤a05。

步骤a05.以参数min所对应的节点和参数max所对应的节点构成前闭后开节点区间,作为该节点压缩路由表第count行的后继路由节点区间,然后进入步骤a06。

步骤a06.针对count的值加1,并将结果赋给count,同时,将参数max所对应的节点赋给参数min,然后进入步骤a07。

步骤a07.将该节点所维护路由表中第i行的后继路由节点赋给参数max,同时针对i的值加1,并将结果赋给i,再返回步骤a04。

步骤a08.以参数min所对应的节点和参数max所对应的节点构成前闭后开节点区间,作为该节点压缩路由表第count行的后继路由节点区间,然后进入步骤a09。

步骤a09.针对count的值加1,并将结果赋给count,然后进入步骤a10。

步骤a10.以参数max所对应的节点和参数INT_MAX所对应的节点构成前闭后开节点区间,作为该节点压缩路由表第count行的后继路由节点区间。

如图1所示,实施例节点的路由表在实际应用过程当中,应用上述设计Chord路由表压缩方法技术方案后的效果,其中,N1—INT_MAX分别表示Chord环中各个节点,显然所获得压缩路由表的行数小于压缩前路由表的行数,由此可知,上述技术方案所设计的Chord路由表压缩优化方法,针对Chord环中各个节点所维护的路由表,按所设计方法进行压缩,减小了各个节点维护路由表的空间代价,缩短了文件定位的时间,进而提高了整个Chord环中各个节点存储空间的使用效率和时间效率。

实际应用中,通过上述所设计的Chord路由表压缩优化方法,针对Chord环中各个节点所维护的路由表进行压缩,分别获得Chord环中各个节点的压缩路由表,之后基于Chord环中各个节点的压缩路由表,本发明进一步设计了基于Chord路由表压缩方法的优化文件查找方法,用于查找指定目标文件所在的存储节点,实际应用中,具体包括如下步骤:

步骤b01.在Chord环中的各个节点中,任选其中一个节点,作为待分析节点,并进入步骤b02。

步骤b02.根据目标文件所对应的文件指纹值,查找判断目标文件是否为该待分析节点的本地存储,是则确认指定目标文件的存储位置,查找结束;否则进入步骤b03。

步骤b03.在Chord环中,选择该待分析节点的后继节点,根据目标文件所对应的文件指纹值,查找判断目标文件是否为该后继节点的本地存储,是则确认指定目标文件的存储位置,查找结束,否则进入步骤b04。

步骤b04.根据目标文件所对应的文件指纹值,以及该待分析节点压缩路由表中各节点区间分别所对应的节点指纹值区间,采用二分搜索算法,针对该待分析节点的压缩路由表进行查找,确定目标文件的后续查找节点,然后进入步骤b05。

上述步骤b04中,具体包括如下步骤:

步骤b04-1.针对所述该待分析节点的压缩路由表,初始化指针left指向该压缩路由表的第一行,指针right指向该压缩路由表的最后一行,然后进入步骤b04-2。

步骤b04-2.针对该待分析节点的压缩路由表,确定指针left和指针right之前的中间指针mid所指向该压缩路由表中的行,然后进入步骤b04-3。

步骤b04-3.针对该待分析节点的压缩路由表,获得中间指针mid所指行对应的节点区间,并获得该节点区间中最大节点指纹值和最小节点指纹值,作为中间指针mid所对应的最大节点指纹值和最小节点指纹值,然后进入步骤b04-4。

步骤b04-4.判断目标文件所对应的文件指纹值是否小于中间指针mid所对应的最小节点指纹值,是则将中间指针mid所对应的行数减1,并将结果赋值给指针right,再返回步骤b04-2;否则进入步骤b04-5。

步骤b04-5.判断目标文件所对应的文件指纹值是否大于中间指针mid所对应的最大节点指纹值,是则将中间指针mid所对应的行数加1,并将结果赋值给指针left,再返回步骤b04-2;否则进入步骤b04-6。

步骤b04-6.将中间指针mid所对应节点区间中,最小节点指纹值所对应的节点作为目标文件的后续查找节点。

如图2所示,即实施例应用二分搜索算法的示意图。

步骤b05.将目标文件的后续查找节点更新为待分析节点,并返回步骤b02。

由此,基于Chord环中各个节点的压缩路由表,通过上述设计方法,实现指定目标文件所在存储节点的查找,所设计基于Chord路由表压缩方法的优化文件查找方法,能够明显减少文件定位过程中指纹对比次数,且使得文件定位过程中的指纹对比次数变得更加稳定,波动幅度较小,进一步有效提高了无中心云存储系统中文件实体实现高效定位的工作效率。

上面结合附图对本发明的实施方式作了详细说明,但是本发明并不限于上述实施方式,在本领域普通技术人员所具备的知识范围内,还可以在不脱离本发明宗旨的前提下做出各种变化。

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