CN101447937A - 一种基于路径划分与多分布目录的快速数据定位方法 - Google Patents
一种基于路径划分与多分布目录的快速数据定位方法 Download PDFInfo
- Publication number
- CN101447937A CN101447937A CNA2008102270372A CN200810227037A CN101447937A CN 101447937 A CN101447937 A CN 101447937A CN A2008102270372 A CNA2008102270372 A CN A2008102270372A CN 200810227037 A CN200810227037 A CN 200810227037A CN 101447937 A CN101447937 A CN 101447937A
- Authority
- CN
- China
- Prior art keywords
- path
- node
- host
- data
- local
- 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.)
- Pending
Links
Images
Abstract
本发明涉及一种基于路径划分与多分布目录的快速数据定位方法,属于计算机应用技术领域。本发明针对数据只能存放在本地节点的结构化对等网络应用系统,引入数据路径的划分、数据路径相似度及多分布式目录等机制,解决了基于结构化对等网络的Squirrel系统存在的数据定位的效率低以及有效性、稳定性和健壮性差的问题。本发明可广泛应用于数据存放在本地的结构化对等网络应用系统中,以数据对象路径的ID标识作为输入,在其[Key1路径宿主节点,HOME路径宿主节点]区间的相似节点内,快速稳定地定位出包含该数据位置的分布式目录所在的节点位置,做到高效的数据定位。
Description
技术领域
本发明涉及一种基于路径划分与多分布目录的快速数据定位方法,属于计算机应用技术领域。
背景技术
计算机对等(P2P)网络中每个节点的地位是相同的,每个节点既充当服务器,为其他节点提供服务,同时也充当客户机,享受其他节点提供的服务。
目前,计算机对等网络可分为两大类:非结构对等网络和结构化对等网络。非结构对等网络包括具有中心服务器的非结构对等网络、纯分散的非结构化对等网络和带超级节点的混合对等网络,它们要么存在一个集中式的目录管理,要么查询时采用的是广播机制,要么存在着超级节点管理问题。而在近年出现的结构化对等网络系统中,采用的是分布式哈希表技术,在这些系统中,将数据对象的名字经过哈希函数处理,其结果是一个全局冲突概率很小的ID标识;系统中的每个节点都和一定范围内的标识有关,并保存该区间的数据信息;当系统按照数据名字的ID标识进行查询时,相应的节点返回对应的信息;每个节点拥有O(log N)个邻居,每一次查询路由都会在O(log N)内完成,N为系统中的节点数。由于数据分布存放的地点与该数据名字的ID标识关联,其数据定位就较容易,一般适合于数据分布存放的大型对等网络应用系统。
然而,目前基于对等网络的许多应用系统,如本地资源共享系统、浏览器协作缓存系统等,其数据往往需要存放在本地节点中。在这种情况下,若采用非结构化方式,则会存在单点失效或洪泛搜索效率低的问题;若采用结构化方式,由于用户数据只能存放在本地节点,即不能分布存放的应用需求,又与结构化对等网络的数据分布存放要求相矛盾。为了扩展结构化对等网络对这类情况的处理能力,近年在基于结构化对等网络的Squirrel协作缓存应用系统中,引入了宿主节点的单分布目录机制,通过使数据对象路径的索引记录存放地点与该数据的ID标识密切关联,将数据对象路径的索引记录存储在其宿主节点的目录中。这样,其缓存定位机制就变为,当一个节点发出查找某个数据对象时,先对其进行哈希,取其值作为这个数据对象路径的唯一ID标识,然后在结构化对等网络的相应路由表中,查找这个ID,经过若干跳后,找到该数据对象索引所在的宿主节点,再查找其上的相应目录,得到该数据对象存储的节点地址。
虽然这种单分布目录方法扩展了结构化对等网络对这类情况的转换处理,但是把数据对象路径的哈希值作为其键值ID,查找这个ID时,通常需要经过若干跳,才能找到宿主节点,其数据定位的有效性有待进一步提高,尤其是当匹配的宿主节点已退出系统时,还会引发数据定位时的多跳现象,造成系统的不稳定和不健壮。
发明内容
本发明的目的是为了解决目前基于结构化对等网络的Squirrel系统存在的数据定位的效率低以及有效性、稳定性和健壮性差的问题,提出一种基于路径划分与多分布目录的快速数据定位方法。
本发明针对数据只能存放在本地节点的结构化对等网络应用系统,引入了数据路径的划分、数据路径相似度及多分布式目录等机制。
本发明的一种基于路径划分与多分布目录的快速数据定位方法的整体框架设计流程如图1所示,具体实现步骤如下:
步骤一、设计路径划分的方法
首先,给出相关概念的定义。
假设基于本地存放的结构化对等网络应用系统中的任意两个数据路径PATH1和PATH2,其中,PATH1=s1/p1/p2…/pi/…/pn/FILE1;
PATH2=s2/q1/q2…/qj/…/qm/FILE2。
这里,s1和s2均是对等节点或服务器的唯一标识;
pi和qj均是目录信息,i是1到n的正整数,j是1到m的正整数;
FILE1和FILE2均是文件标识符。
基于上述假设:
定义1:数据路径特征
所有这些s1、s2、pi、qj、FILE1、FILE2符号,均是数据路径特征。其中i是1到n的正整数,j是1到m的正整数。
定义2:数据路径相似度
任意两个数据路径PATH1和PATH2的相似度是从数据路径左端第一个数据路径特征起,连续相同的数据路径特征的个数。
其次,基于上述定义设计数据路径划分方法。
考虑到结构化对等网络自身的数据定位特点,为了把具有一定相似度的数据路径目录存放在邻近位置,本发明把数据路径的键值ID划分成r个部分,这里r是一个正整数,它可综合应用系统节点的规模和数据路径特征等来设置。
具体数据路径的划分方法为:
第(1)步:首先确定Keyi(i=1,2,……,r)的位数,用bit(Keyi)来表示。然后按照数据路径特征顺序计算第一个数据路径特征的哈希值,并从高位到低位的顺序取bit(key1)位作为key1的值,再计算第二个数据路径特征的哈希值取bit(key2)位作为key2的值,以此类推,最后,哈希路径的其余部分,并取bit(keyr)位作为keyr的值。
第(2)步:如果数据路径特征的数目小于r,在按第(1)步处理完所有数据路径特征后,还须哈希整个路径,并取其高位,记为key补,补齐ID的空余部分。这样其数据路径键值ID=key1key2…keymkey补,这里,m<r。
第(3)步:经过第(1)步的计算,得到key1,key2,…,keyr,则一个数据路径键值ID就是key1,key2,…,keyr的顺序连接key1key2…keyr;或者经过第(2)步的计算,得到key1,key2,…,keym,key补,则一个数据路径键值ID就是key1,key2,…,keym,key补的顺序连接key1key2…keymkey补。其中,key1,key2,…,keyr,keym,key补的位数分别是bit(key1),bit(key2),…,bit(keyr),bit(keym),bit(key补)。
通过数据路径的划分方法,可使数据路径索引能够存放在结构化对等网络系统中的邻近位置[Key1路径宿主节点,HOME路径宿主节点]区间上,为基于路径划分的多分布目录建立做好准备。
步骤二、建立基于路径划分的多分布式目录
在步骤一的数据路径划分和计算路径相似度的基础上,建立基于数据路径划分的多分布式目录表。
首先,引入HOME路径宿主节点和keyi路径宿主节点的语义。
[定义3]HOME路径宿主节点
把存储路径的键值ID=Key1key2…keyr-1keyr的节点记作其HOME路径宿主节点。
[定义4]key1路径宿主节点
把存储key1路径的节点记作key1路径宿主节点,它作为所有与其相似度大于等于1的路径查询起始位置。key1路径索引存储在key1所有的路径宿主结点和相应的HOME路径宿主结点。
[定义5]keyr-1路径宿主节点
把存储Key1key2…keyr-1路径信息的节点记作keyr-1路径宿主节点,这里r是指数据路径键值ID划分的数目。
其次,结构化对等网络应用系统的每个节点包括以下功能:
(1)每个节点维护本地的存储对象;
(2)每个节点主要维护三个表:一个路径宿主索引表、一个宿主索引表和一个本地路径宿主节点表。其中,在路径宿主索引表中,每一行包括一个数据路径、数据对象的最后访问时间和一个含有多个相似路径的宿主节点表等;宿主索引表也包含上述表项,当此节点恰好就是数据路径的HOME路径宿主节点时,该节点的宿主索引表记录此路径索引关系;当此节点不是数据路径的HOME路径宿主节点时,该节点的宿主索引表不作记录。本地路径宿主节点表存储和更新与本节点最近频繁访问的相似路径宿主节点信息。
最后,设计基于数据路径划分的多分布式目录表的建立过程,有以下三种情况:
情况1:网络中节点数量没有变化
第(1)步:用户对本地共享资源进行创建或更新;
第(2)步:更新节点发布发布相应的路径索引到相应的路径宿主节点和HOME宿主节点上。
第(3)步:当一个节点获得数据对象后,它向查询到的路径宿主节点与HOME宿主节点发布信息,告知这些节点其有此对象,路径宿主节点及HOME宿主节点相应地更新它们的路径宿主索引表、宿主索引表和本地路径宿主节点表。
第(4)步:每个节点根据自身最近访问的对象,计算其路径的相似度,并在其路径宿主索引表中记录最近访问频繁的多个路径相似的宿主节点。
第(5)步:在经过一段时间后,路径宿主节点之间以及宿主节点上的索引信息可能不同步,这不会影响系统的查询性能,因为数据对象的所有路径宿主节点上有整个的索引信息,节点只要依次查找到各个路径宿主节点就能获知索引信息。为同步信息,Keyi(i=1,2,……,r)路径宿主结点在经过一段时间后,主动与其它路径宿主节点和宿主节点联系并同步它们之间相应的索引信息。
情况2:网络中节点数量增加
当一个新节点加入网络时,它将自动成为一些路径的宿主节点,但此时节点上还没有相应的路径索引信息,如果此时有到这个结点的查询信息,将可能增加查询跳数,同时,对已经缓存了此路径的宿主节点的节点,并不知道路径宿主节点已经改变。为了克服这些问题,当一个节点加入网络时,首先做个标记,指示相应对象的索引信息在其后继节点上,这样经过这个加入节点的信息就可以转发到其后继,直至所有的索引信息已经复制到此节点后,取消这个标记。
情况3:网络中节点数量减少
当一个节点失效或退出前,此节点复制其路径索引信息到其后继,在这个节点失效后,只需重新查找到新的路径宿主节点即可。如果其后继同时失效,须重新建立这些索引信息。此方法可提高系统的健壮性。
步骤三、设计数据快速定位的方法
经过步骤一和步骤二,在完成路径划分并建立了多分布目录的基础上,提出一种快速数据定位的方法。
首先,给出相关概念的定义。
[定义6]本地代理
每个节点由一个本地代理来操作本地的共享存储资源。
[定义7]本地路径服务
本地路径服务通过底层对等网络平台为系统提供查询请求,以及返回查询的结果到本地代理。同时根据路径服务返回的路径宿主节点和HOME宿主节点信息,发布相应数据对象的索引信息到相应的节点。
其次,设计基于路径划分与多分布目录的快速数据定位方法。
(1)本地资源共享系统的数据快速定位方法,步骤如下:
①用户发出一个数据查询请求;
②请求送到本地代理,本地代理分析该请求,并查询本地是否存储有请求对象。如有则转到步骤⑧;
③如果本地没有请求对象,本地代理转发请求到本地路径服务;
④本地路径服务查看路径宿主节点表,检查是否有与请求相似的路径,如果有,则直接转到其所对应的路径宿主节点;否则发送查询到下层的结构化对等网络模块,查询key1路径宿主节点;
⑤如果找到相应的key1路径宿主节点,查询其路径宿主索引表和宿主索引表,看是否存在与请求相应的索引,如果没有找到,则继续查询下一个路径宿主节点;如果找到,路径宿主节点把查询到的索引信息返回到发起查询请求节点的本地路径服务;如果返回结果中包含有请求的信息,则该路径服务对其路径宿主节点表发起更新操作。
⑥转发该返回信息到本地代理;
⑦如果返回是Null,本地代理转到步骤⑧,否则根据返回结果从相应节点获得对象,然后在本地存储此对象的一份拷贝,并发布相应的索引信息到相应的路径宿主节点和HOME路径宿主节点;
⑧本次操作结束。
(2)结构化浏览器缓存系统的数据快速定位方法,步骤如下:
①用户浏览器发出一个URL请求后,送到本地代理,本地代理分析该请求,如果该请求是不可缓存的,则直接转发到源服务器;
②本地代理查询本地缓存中是否有请求的对象。如果有则转到步骤⑨;
③如果本地缓存中没有请求的对象,本地代理转发请求到URL路径服务;
④URL路径服务查看路径宿主节点表中是否有与请求URL相似的URL路径;如果有,则直接转到此其所对应的路径宿主节点;如果没有,则URL路径服务发送查询到下层对等网络模块,查询URL的key1路径宿主节点;
⑤通过查找找到相应的路径宿主节点;路径宿主节点或宿主节点查询其路径宿主索引表和宿主索引表,看是否存在请求URL相应的索引,如果此时是路径宿主节点且没有找到请求URL的索引,则通过下层对等网络模块,继续查询下一个路径宿主节点或宿主节点;
⑥路径宿主节点或宿主节点把查询到的索引信息返回到发起查询请求的节点的URL路径服务;此时如果返回的结果包含有请求URL的路径宿主节点,则URL路径服务对路径宿主节点表进行更新。
⑦转发这个返回信息到本地代理;
⑧如果返回的是Null,本地代理通过源服务器上获取Web对象,否则根据返回的结果从相应结点获得Web对象,然后本地缓存中存储此对象的一份拷贝,并发布相应的索引信息到相应的路径宿主节点和宿主节点。
⑨发送Web对象到浏览器。
有益效果:
①本发明的快速数据定位方法,由于使用了基于路径划分的数据定位机制,减少了相似路径的查询跳数,比采用洪泛搜索和基于用户兴趣聚类的搜索效率均有极大的提高,比Squirrel的单目录机制(即Hash(URL)方式)有更高的数据定位(查询)性能。
②由于key1路径宿主节点作为所有与其相似度大于等于1的路径起始位置,其相似路径关系存放在其邻近的位置区域,即使其中某节点退出或失效时,系统的健壮性和有效性仍然会保持。
③在查询过程中,如果节点的路径宿主节点表中存有请求路径的宿主节点信息,会直接转发到此路径宿主节点开始查询,查询不再经过中间节点,可进一步减少查询跳数,提高数据定位的效率。
④对结构化浏览器缓存应用系统,随着共享缓存大小的增长,命中率也随之增长;当节点缓存大小在100M缓存大小时,系统命中率可接近于无限缓存的代理模型。
本发明可广泛应用于数据存放在本地的结构化对等网络应用系统中,以数据对象路径的ID标识作为输入,可在其[Key1路径宿主节点,HOME路径宿主节点]区间的相似节点内,快速稳定地定位出包含该数据位置的分布式目录所在的节点位置,从而在数据只能存放在本地的对等网络应用系统中,做到高效的数据定位。
附图说明
图1为本发明的整体框架设计流程图;
图2为本发明实施例中的数据定位方法举例说明图。
具体实施方式
根据上述技术方案,下面结合附图和实施例对本发明进行详细说明。
步骤一、设计路径划分的方法
以北京理工大学校园网的两条链接路径为例:
PATH1=www.bit.edu.cn/news/file1
PATH2=www.bit.edu.cn/tongzhi/file2
根据本发明中的数据路径相似度定义,PATH1和PATH2路径相似度为1。
下面针对PATH1=www.bit.edu.cn/news/file1路经,详细描述本发明路径划分的方法。
当r=1时,可具体描述如下:
一个32位的路径键值ID为(hash(www.bit.edu.cn/news/file1)&ffffffff)。
当r=2时,可具体描述如下:
若一个32位的路径键值ID划分成2部分,其大小分别是16和16;
则ID为(hash(www.bit.edu.cn)&ffff0000)(hash(news/file1)&ffff0000)。这里,(hash(www.bit.edu.cn)&ffff0000)记为key1。
当r=3时,可具体描述如下:
若一个32位的路径键值ID划分成3部分,其大小分别是16,8,8;
则ID为(hash(www.bit.edu.cn)&ffff0000)(hash(news)&ff000000)(hash(file1)&ff000000)。这里,我们把(hash(www.bit.edu.cn)&ffff0000)记为key1,(hash(www.bit.edu.cn)&ffff0000)(hash(news)&ff000000)记为key2,依此类推。显然,与其具有大于等于1相似度的路径索引信息存储在[(hash(www.bit.edu.cn)&ffff0000),(hash(www.bit.edu.cn)&ffffffff)]区间。
当r=4时,可具体描述如下:
若一个32位的路径键值ID划分成4部分,其大小分别是16,8,4,4;则ID为(hash(www.bit.edu.cn)&ffff0000)(hash(news)&ff000000)(hash(file1)&f0000000)(hash(www.bit.edu.cn/news/file1)&f0000000)。
这里,key补=(hash(www.bit.edu.cn/news/file1)&f0000000)。
步骤二、建立基于路径划分的多分布式目录
在基于本地存储的结构化对等网络应用系统中,系统中的所有节点的所有索引表集合组成系统完整的分布式索引表。
其中,每个节点Nodei需要维护一个路径宿主索引表1ist1、一个宿主索引表list2和一个本地路径宿主节点表list3。
在路径宿主索引表list1中,每一行包括一个具体路径PATHj、数据对象的最后访问时间tj和多个路径相似的宿主节点表等;
宿主索引表1ist2,包含了list1的表项,当此节点恰好就是数据路径的HOME路径宿主节点时,该节点的宿主索引表记录此路径索引关系;当此节点不是数据路径的HOME路径宿主节点时,该节点的宿主索引表不作记录。
本地路径宿主节点表1ist3,主要维护与本节点最近频繁访问的相似路径宿主节点信息。
对每一数据路径,在其[Key1路径宿主节点,HOME路径宿主节点]区间的相似邻近节点上,存在着多个它的分布式索引目录的信息,如Key1路径宿主节点、Key2路径宿主节点等,并实时维护与更新。
基于数据路径划分的多分布式目录表的建立过程,有以下三种情况:
情况1:网络中节点数量没有变化
第(1)步:用户在节点A对本地共享资源进行创建或更新;
第(2)步:更新节点A发布相应的路径索引到相应的路径宿主节点和HOME宿主节点上。
第(3)步:当一个节点B获得数据对象后,它向查询到的路径宿主节点与HOME宿主节点发布信息,告知这些节点其有此对象,路径宿主节点及HOME宿主节点相应地更新它们的路径宿主索引表、宿主索引表和本地路径宿主节点表。
第(4)步:每个节点根据自身最近访问的对象,计算其路径的相似度,并在其路径宿主索引表中记录最近访问频繁的多个路径相似的宿主节点。
第(5)步:在经过一段时间后,路径宿主节点之间以及宿主节点上的索引信息可能不同步,这不会影响系统的查询性能,因为数据对象的所有路径宿主节点上有整个的索引信息,节点只要依次查找到各个路径宿主节点就能获知索引信息。为同步信息,Keyi(i=1,2,……,r)路径宿主结点在经过一段时间后,主动与其它路径宿主节点和宿主节点联系并同步它们之间相应的索引信息。
情况2:网络中节点数量增加
当一个新节点C加入网络时,首先做个标记,指示相应对象的索引信息在其后继节点D上,这样经过这个加入节点C的信息就可以转发到其后继D,直至所有的索引信息已经复制到此C节点后,取消这个标记。
情况3:网络中节点数量减少
当一个节点E失效或退出前,此节点将复制其路径索引信息到其后继F,在这个E节点失效后,只需重新查找到新的路径宿主节点即可。如果其后继F同时失效,须重新建立这些索引信息。
步骤三、快速数据定位的方法
(1)本地资源共享系统的数据快速定位方法,步骤如下:
①用户节点n(如图2)发出一个数据查询请求;
②请求送到本地代理,本地代理分析该请求,并查询本地是否存储有请求对象。如对象在本地命中(如图2中a),则不需要查询,转到步骤⑧;
③如果本地没有请求对象,本地代理转发请求到本地路径服务;
④本地路径服务查看路径宿主节点表,检查是否有与请求相似的路径,如果有,则直接转到其所对应的路径宿主节点,这个路径宿主节点检查其索引表,如果存在索引,则返回一个代理节点(如图2中c-c1),否则转⑤继续查询下一个路径宿主节点直到找到宿主节点(如图2中,c-c2-c3)。如果没有与请求相似的路径,则路径服务发送查询到下层对等网络模块,查询key1路径宿主节点;
⑤此时根据路径计算对象的Key1 ID并发送给下层Chord去查询对象的Key1宿主节点,通过查询,Chord将找到这个对象的Key1宿主节点,然后Key1宿主节点检查其路径索引表和宿主索引表内是否有被请求路径的索引,如果索引存在,则这个路径宿主节点返回一个请求对象所在的节点(我们称这个节点为相应路径对象的代理节点)的地址到源节点n(如图2中b-b1)。如果索引不存在,计算Key2 ID并发送到Key1宿主节点,Chord从Key1宿主节点开始继续查询,同样通过查询,将找到Key2宿主节点,Key2宿主节点同样检查其上的索引表信息,如果有相应的索引信息,则返回一个代理节点信息到源节点,否则继续查询下一个路径宿主节点,依次类推直到某个路径宿主节点上有被请求路径的索引信息,或找到被请求路径的宿主节点(如图2中b-b2-b3)。如果路径的宿主节点的索引表中也没有被请求对象的索引,则请求发送到源服务器(如图2中a1)。在这个查询过程中,每一个路径宿主节点都将返回其本身地址信息到源节点n。
如果找到,路径宿主节点把查询到的索引信息返回到发起查询请求节点的本地路径服务;如果返回结果中包含有请求的信息,则该路径服务对其路径宿主节点表发起更新操作。
⑥转发该返回信息到本地代理;
⑦如果返回是Null,本地代理转到步骤⑧,否则根据返回结果从相应节点获得对象,然后在本地存储此对象的一份拷贝,并发布相应的索引信息到相应的路径宿主节点和HOME路径宿主节点;
⑧本次操作结束。
(2)结构化浏览器缓存系统的数据快速定位方法,步骤如下:
①当一个节点n的用户浏览器发出一个URL请求时,这个节点首先检查该对象是否需要通过下层路由机制进行查询获得(如果对象在本地命中(如图2中a)或者对象是不可缓存的(如图2中a1),则不需要查询,否则需要查询),如果该请求是不可缓存的,则直接转发到源服务器;
②本地代理查询本地缓存中是否有请求的对象。如果有则转到步骤⑨;
③如果本地缓存中没有请求的对象,本地代理转发请求到URL路径服务;
④URL路径服务查看路径宿主节点表中是否有与请求URL相似的URL路径;如果有,则直接转到此其所对应的路径宿主节点,这个路径宿主节点检查其索引表,如果存在索引,则返回一个代理节点(如图2中c-c1),否则转⑤继续查询下一个路径宿主节点直到找到宿主节点(如图2中,c-c2-c3)。
如果没有与请求URL相似的URL路径,则URL路径服务发送查询到下层对等网络模块,查询URL的key1路径宿主节点;
⑤此时根据URL计算对象的Key1 ID并发送给下层Chord去查询对象的Key1宿主节点,通过查询,Chord将找到这个对象的Key1宿主节点,然后Key1宿主节点检查其路径索引表和宿主索引表内是否有被请求URL的索引,如果索引存在,则这个路径宿主节点返回一个请求对象所在的节点(我们称这个节点为相应URL对象的代理节点)的地址到源节点n(如图2中b-b1)。如果索引不存在,计算Key2 ID并发送到Key1宿主节点,Chord从Key1宿主节点开始继续查询,同样通过查询,将找到Key2宿主节点,Key2宿主节点同样检查其上的索引表信息,如果有相应的索引信息,则返回一个代理节点信息到源节点,否则继续查询下一个路径宿主节点,依次类推直到某个路径宿主节点上有被请求URL的索引信息,或找到被请求URL的宿主节点(如图2中b-b2-b3)。如果URL的宿主节点的索引表中也没有被请求对象的索引,则请求发送到源服务器(如图2中a1)。在这个查询过程中,每一个路径宿主节点都将返回其本身地址信息到源节点n。
⑥路径宿主节点或宿主节点把查询到的索引信息返回到发起查询请求的节点的URL路径服务;此时如果返回的结果包含有请求URL的路径宿主节点,则URL路径服务对路径宿主节点表进行更新。
⑦转发这个返回信息到本地代理;
⑧如果返回的是Null,本地代理通过源服务器上获取Web对象,否则根据返回的结果从相应结点获得Web对象,然后本地缓存中存储此对象的一份拷贝,并发布相应的索引信息到相应的路径宿主节点和宿主节点。
⑨发送Web对象到浏览器。
Claims (9)
1.一种基于路径划分与多分布目录的快速数据定位方法,其特征在于具体实现步骤如下:
步骤一、设计路径划分的方法
首先,给出相关概念的定义;
其次,设计具体数据路径划分的方法;
步骤二、建立基于路径划分的多分布式目录
在步骤一的数据路径划分和计算路径相似度的基础上,建立基于数据路径划分的多分布式目录表;
首先,引入HOME路径宿主节点和keyi路径宿主节点的语义;
其次,确定结构化对等网络应用系统的每个节点包括的功能;
最后,设计基于数据路径划分的多分布式目录表的建立过程;
步骤三、设计数据快速定位的方法
经过步骤一和步骤二,在完成路径划分并建立了多分布目录的基础上,提出一种快速数据定位的方法;
首先,给出相关概念的定义;
其次,设计基于路径划分与多分布目录的快速数据定位方法为:
(1)本地资源共享系统的数据快速定位方法;
(2)结构化浏览器缓存系统的数据快速定位方法。
2.根据权利要求1所述的一种基于路径划分与多分布目录的快速数据定位方法,其特征在于步骤一中的设计路径划分的方法的相关概念的定义为:
给定基于本地存放的结构化对等网络应用系统中的任意两个数据路径PATH1和PATH2,其中,PATH1=s1/p1/p2…/pi/…/pn/FILE1;PATH2=s2/q1/q2…/qj/…/qm/FILE2;
这里,s1和s2均是对等节点或服务器的唯一标识;
pi和qj均是目录信息,i是1到n的正整数,j是1到m的正整数;
FILE1和FILE2均是文件标识符;
定义1.数据路径特征
所有这些s1、s2、pi、qj、FILE1、FILE2符号,均是数据路径特征;其中i是1到n的正整数,j是1到m的正整数;
定义2.数据路径相似度
任意两个数据路径PATH1和PATH2的相似度是从数据路径左端第一个数据路径特征起,连续相同的数据路径特征的个数。
3.根据权利要求1所述的一种基于路径划分与多分布目录的快速数据定位方法,其特征在于步骤一中的设计路径划分的方法为:
把数据路径的键值ID划分成r个部分,这里r是一个正整数;其具体步骤为:
步骤1、首先确定Keyi(i=1,2,……,r)的位数,用bit(Keyi)来表示;然后按照数据路径特征顺序计算第一个数据路径特征的哈希值,并从高位到低位的顺序取bit(key1)位作为key1的值,再计算第二个数据路径特征的哈希值取bit(key2)位作为key2的值,以此类推,最后,哈希路径的其余部分,并取bit(keyr)位作为keyr的值;
步骤2、如果数据路径特征的数目小于r,在按第(1)步处理完所有数据路径特征后,还须哈希整个路径,并取其高位,记为key补,补齐ID的空余部分;这样其数据路径键值ID=key1key2…keymkey补,这里,m<r;
步骤3、经过第(1)步的计算,得到key1,key2,…,keyr,则一个数据路径键值ID就是key1,key2,…,keyr的顺序连接key1key2…keyr;或者经过第(2)步的计算,得到key1,key2,…,keym,key补,则一个数据路径键值ID就是key1,key2,…,keym,key补的顺序连接key1key2…keymkey补;其中,key1,key2,…,keyr,keym,key补的位数分别是bit(key1),bit(key2),…,bit(keyr),bit(keym),bit(key补)。
4.根据权利要求1所述的一种基于路径划分与多分布目录的快速数据定位方法,其特征在于步骤二中的建立基于路径划分的多分布式目录的相关概念的定义为:
定义3.HOME路径宿主节点
把存储路径的键值ID=Key1key2…keyr-1keyr的节点记作其HOME路径宿主节点;
定义4.key1路径宿主节点
把存储key1路径的节点记作key1路径宿主节点,它作为所有与其相似度大于等于1的路径查询起始位置;key1路径索引存储在key1所有的路径宿主结点和相应的HOME路径宿主结点;
定义5.keyr-1路径宿主节点
把存储Key1key2…keyr-1路径信息的节点记作keyr-1路径宿主节点,这里r是指数据路径键值ID划分的数目。
5.根据权利要求1所述的一种基于路径划分与多分布目录的快速数据定位方法,其特征在于步骤二中的结构化对等网络应用系统的每个节点包括以下功能:
(1)每个节点维护本地的存储对象;
(2)每个节点主要维护三个表:一个路径宿主索引表、一个宿主索引表和一个本地路径宿主节点表;其中,在路径宿主索引表中,每一行包括一个数据路径、数据对象的最后访问时间和一个含有多个相似路径的宿主节点表等;宿主索引表也包含上述表项,当此节点恰好就是数据路径的HOME路径宿主节点时,该节点的宿主索引表记录此路径索引关系;当此节点不是数据路径的HOME路径宿主节点时,该节点的宿主索引表不作记录;本地路径宿主节点表存储和更新与本节点最近频繁访问的相似路径宿主节点信息。
6.根据权利要求1所述的一种基于路径划分与多分布目录的快速数据定位方法,其特征在于步骤二中的设计基于数据路径划分的多分布式目录表的建立过程为:
情况1、网络中节点数量没有变化
步骤1、用户对本地共享资源进行创建或更新;
步骤2、更新节点发布发布相应的路径索引到相应的路径宿主节点和HOME宿主节点上;
步骤3、当一个节点获得数据对象后,它向查询到的路径宿主节点与HOME宿主节点发布信息,告知这些节点其有此对象,路径宿主节点及HOME宿主节点相应地更新它们的路径宿主索引表、宿主索引表和本地路径宿主节点表;
步骤4、每个节点根据自身最近访问的对象,计算其路径的相似度,并在其路径宿主索引表中记录最近访问频繁的多个路径相似的宿主节点;
步骤5、在经过一段时间后,路径宿主节点之间以及宿主节点上的索引信息可能不同步,这不会影响系统的查询性能,因为数据对象的所有路径宿主节点上有整个的索引信息,节点只要依次查找到各个路径宿主节点就能获知索引信息;为同步信息,Keyi(i=1,2,……,r)路径宿主结点在经过一段时间后,主动与其它路径宿主节点和宿主节点联系并同步它们之间相应的索引信息;
情况2:网络中节点数量增加
当一个新节点加入网络时,首先做个标记,指示相应对象的索引信息在其后继节点上,这样经过这个加入节点的信息就可以转发到其后继,直至所有的索引信息已经复制到此节点后,取消这个标记;
情况3:网络中节点数量减少
当一个节点失效或退出前,此节点复制其路径索引信息到其后继,在这个节点失效后,只需重新查找到新的路径宿主节点即可;如果其后继同时失效,须重新建立这些索引信息。
7.根据权利要求1所述的一种基于路径划分与多分布目录的快速数据定位方法,其特征在于步骤三中的设计数据快速定位的方法的相关概念为:
定义6.本地代理
每个节点由一个本地代理来操作本地的共享存储资源;
定义7.本地路径服务
本地路径服务通过底层对等网络平台为系统提供查询请求,以及返回查询的结果到本地代理;同时根据路径服务返回的路径宿主节点和HOME宿主节点信息,发布相应数据对象的索引信息到相应的节点。
8.根据权利要求1所述的一种基于路径划分与多分布目录的快速数据定位方法,其特征在于步骤三中的本地资源共享系统的数据快速定位方法的步骤为:
步骤1、用户发出一个数据查询请求;
步骤2、请求送到本地代理,本地代理分析该请求,并查询本地是否存储有请求对象;如有则转到步骤8;
步骤3、如果本地没有请求对象,本地代理转发请求到本地路径服务;
步骤4、本地路径服务查看路径宿主节点表,检查是否有与请求相似的路径,如果有,则直接转到其所对应的路径宿主节点;否则发送查询到下层的结构化对等网络模块,查询key1路径宿主节点;
步骤5、如果找到相应的key1路径宿主节点,查询其路径宿主索引表和宿主索引表,看是否存在与请求相应的索引,如果没有找到,则继续查询下一个路径宿主节点;如果找到,路径宿主节点把查询到的索引信息返回到发起查询请求节点的本地路径服务;如果返回结果中包含有请求的信息,则该路径服务对其路径宿主节点表发起更新操作;
步骤6、转发该返回信息到本地代理;
步骤7、如果返回是Null,本地代理转到步骤8,否则根据返回结果从相应节点获得对象,然后在本地存储此对象的一份拷贝,并发布相应的索引信息到相应的路径宿主节点和HOME路径宿主节点;
步骤8、本次操作结束。
9.根据权利要求1所述的一种基于路径划分与多分布目录的快速数据定位方法,其特征在于步骤三中的结构化浏览器缓存系统的数据快速定位方法的步骤为:
步骤1、用户浏览器发出一个URL请求后,送到本地代理,本地代理分析该请求,如果该请求是不可缓存的,则直接转发到源服务器;
步骤2、本地代理查询本地缓存中是否有请求的对象;如果有则转到步骤9、
步骤3、如果本地缓存中没有请求的对象,本地代理转发请求到URL路径服务;
步骤4、URL路径服务查看路径宿主节点表中是否有与请求URL相似的URL路径;如果有,则直接转到此其所对应的路径宿主节点;如果没有,则URL路径服务发送查询到下层对等网络模块,查询URL的key1路径宿主节点;
步骤5、通过查找找到相应的路径宿主节点;路径宿主节点或宿主节点查询其路径宿主索引表和宿主索引表,看是否存在请求URL相应的索引,如果此时是路径宿主节点且没有找到请求URL的索引,则通过下层对等网络模块,继续查询下一个路径宿主节点或宿主节点;
步骤6、路径宿主节点或宿主节点把查询到的索引信息返回到发起查询请求的节点的URL路径服务;此时如果返回的结果包含有请求URL的路径宿主节点,则URL路径服务对路径宿主节点表进行更新;
步骤7、转发这个返回信息到本地代理;
步骤8、如果返回的是Null,本地代理通过源服务器上获取Web对象,否则根据返回的结果从相应结点获得Web对象,然后本地缓存中存储此对象的一份拷贝,并发布相应的索引信息到相应的路径宿主节点和宿主节点;
步骤9、发送Web对象到浏览器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2008102270372A CN101447937A (zh) | 2009-02-27 | 2009-02-27 | 一种基于路径划分与多分布目录的快速数据定位方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2008102270372A CN101447937A (zh) | 2009-02-27 | 2009-02-27 | 一种基于路径划分与多分布目录的快速数据定位方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101447937A true CN101447937A (zh) | 2009-06-03 |
Family
ID=40743349
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA2008102270372A Pending CN101447937A (zh) | 2009-02-27 | 2009-02-27 | 一种基于路径划分与多分布目录的快速数据定位方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101447937A (zh) |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102624768A (zh) * | 2011-01-28 | 2012-08-01 | 腾讯科技(深圳)有限公司 | 在不同设备之间进行文件同步处理的方法和系统 |
CN103902577A (zh) * | 2012-12-27 | 2014-07-02 | 中国移动通信集团四川有限公司 | 一种资源查找定位的方法和系统 |
CN102668505B (zh) * | 2009-10-21 | 2015-02-18 | 瑞典爱立信有限公司 | 用于定位对等网络中的服务的方法和设备 |
CN105989078A (zh) * | 2015-02-11 | 2016-10-05 | 烟台中科网络技术研究所 | 一种结构化对等网络构建索引的方法、检索方法、装置及系统 |
CN107357929A (zh) * | 2017-07-27 | 2017-11-17 | 广东欧珀移动通信有限公司 | 文件读取方法、移动终端及可读存储介质 |
CN107396320A (zh) * | 2017-07-05 | 2017-11-24 | 河海大学 | 一种基于缓存队列的多探测源分布式室内实时定位方法 |
CN107798093A (zh) * | 2017-10-25 | 2018-03-13 | 成都尽知致远科技有限公司 | 图像检索方法 |
CN108369590A (zh) * | 2015-12-11 | 2018-08-03 | 华为技术有限公司 | 用来指导自助服务分析的推荐系统、装置及其方法 |
CN108920631A (zh) * | 2018-06-29 | 2018-11-30 | 郑州云海信息技术有限公司 | 一种文件查询方法、装置、设备及可读存储介质 |
CN109885408A (zh) * | 2019-03-13 | 2019-06-14 | 四川长虹电器股份有限公司 | 基于Android系统的轻量级浏览器资源优化方法 |
CN110321498A (zh) * | 2018-03-30 | 2019-10-11 | 上海连尚网络科技有限公司 | 一种二维码生成和解析方法及设备 |
CN110351290A (zh) * | 2019-07-17 | 2019-10-18 | 中国联合网络通信集团有限公司 | 数据缓存方法及系统 |
CN112334891A (zh) * | 2018-06-22 | 2021-02-05 | 易享信息技术有限公司 | 用于搜索服务器的集中式存储 |
CN112328678A (zh) * | 2020-09-29 | 2021-02-05 | 深圳开源互联网安全技术有限公司 | 文档数据的处理方法、装置、电子设备及存储介质 |
CN114398324A (zh) * | 2022-01-07 | 2022-04-26 | 杭州又拍云科技有限公司 | 一种适用于分布式存储系统的文件名编码方法 |
-
2009
- 2009-02-27 CN CNA2008102270372A patent/CN101447937A/zh active Pending
Cited By (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102668505B (zh) * | 2009-10-21 | 2015-02-18 | 瑞典爱立信有限公司 | 用于定位对等网络中的服务的方法和设备 |
CN102624768B (zh) * | 2011-01-28 | 2016-06-29 | 腾讯科技(深圳)有限公司 | 在不同设备之间进行文件同步处理的方法和系统 |
CN102624768A (zh) * | 2011-01-28 | 2012-08-01 | 腾讯科技(深圳)有限公司 | 在不同设备之间进行文件同步处理的方法和系统 |
CN103902577A (zh) * | 2012-12-27 | 2014-07-02 | 中国移动通信集团四川有限公司 | 一种资源查找定位的方法和系统 |
CN103902577B (zh) * | 2012-12-27 | 2017-05-03 | 中国移动通信集团四川有限公司 | 一种资源查找定位的方法和系统 |
CN105989078A (zh) * | 2015-02-11 | 2016-10-05 | 烟台中科网络技术研究所 | 一种结构化对等网络构建索引的方法、检索方法、装置及系统 |
CN105989078B (zh) * | 2015-02-11 | 2019-05-07 | 烟台中科网络技术研究所 | 一种结构化对等网络构建索引的方法、检索方法、装置及系统 |
CN108369590A (zh) * | 2015-12-11 | 2018-08-03 | 华为技术有限公司 | 用来指导自助服务分析的推荐系统、装置及其方法 |
CN108369590B (zh) * | 2015-12-11 | 2020-10-09 | 华为技术有限公司 | 用来指导自助服务分析的推荐系统、装置及其方法 |
CN107396320B (zh) * | 2017-07-05 | 2020-02-18 | 河海大学 | 一种基于缓存队列的多探测源分布式室内实时定位方法 |
CN107396320A (zh) * | 2017-07-05 | 2017-11-24 | 河海大学 | 一种基于缓存队列的多探测源分布式室内实时定位方法 |
CN107357929A (zh) * | 2017-07-27 | 2017-11-17 | 广东欧珀移动通信有限公司 | 文件读取方法、移动终端及可读存储介质 |
CN107798093A (zh) * | 2017-10-25 | 2018-03-13 | 成都尽知致远科技有限公司 | 图像检索方法 |
CN110321498A (zh) * | 2018-03-30 | 2019-10-11 | 上海连尚网络科技有限公司 | 一种二维码生成和解析方法及设备 |
CN112334891A (zh) * | 2018-06-22 | 2021-02-05 | 易享信息技术有限公司 | 用于搜索服务器的集中式存储 |
CN112334891B (zh) * | 2018-06-22 | 2023-10-17 | 硕动力公司 | 用于搜索服务器的集中式存储 |
CN108920631A (zh) * | 2018-06-29 | 2018-11-30 | 郑州云海信息技术有限公司 | 一种文件查询方法、装置、设备及可读存储介质 |
CN109885408A (zh) * | 2019-03-13 | 2019-06-14 | 四川长虹电器股份有限公司 | 基于Android系统的轻量级浏览器资源优化方法 |
CN110351290A (zh) * | 2019-07-17 | 2019-10-18 | 中国联合网络通信集团有限公司 | 数据缓存方法及系统 |
CN110351290B (zh) * | 2019-07-17 | 2021-08-06 | 中国联合网络通信集团有限公司 | 数据缓存方法及系统 |
CN112328678A (zh) * | 2020-09-29 | 2021-02-05 | 深圳开源互联网安全技术有限公司 | 文档数据的处理方法、装置、电子设备及存储介质 |
CN114398324A (zh) * | 2022-01-07 | 2022-04-26 | 杭州又拍云科技有限公司 | 一种适用于分布式存储系统的文件名编码方法 |
CN114398324B (zh) * | 2022-01-07 | 2023-04-11 | 杭州又拍云科技有限公司 | 一种适用于分布式存储系统的文件名编码方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101447937A (zh) | 一种基于路径划分与多分布目录的快速数据定位方法 | |
CN101969468B (zh) | 查询服务器集群系统及查询方法 | |
US7457835B2 (en) | Movement of data in a distributed database system to a storage location closest to a center of activity for the data | |
KR101585146B1 (ko) | 오브젝트를 복수 개의 데이터 노드들의 위치에 기반하여 분산 저장하는 분산 저장 시스템 및 그 위치 기반 분산 저장 방법 및 컴퓨터에 의하여 독출 가능한 저장 매체 | |
CN102855239B (zh) | 一种分布式地理文件系统 | |
CN101626563B (zh) | 一种通信网络中的数据存储系统及信息处理方法 | |
CN104539681B (zh) | 分布式gis加速系统和gis服务的处理方法 | |
WO2017219848A1 (zh) | 分布式数据库中id的处理方法、管理系统及服务器 | |
CN102591970A (zh) | 一种分布式键-值查询方法和查询引擎系统 | |
WO2010025652A1 (zh) | 移动搜索方法及其系统、搜索服务器同步搜索能力的方法 | |
CN101594316B (zh) | 一种分布式网络的管理方法、内容查询方法、系统及装置 | |
CN101706781A (zh) | 一种数据库缓存集中管理方法和系统 | |
CN103166991A (zh) | 一种基于p2p和云存储实现跨节点存储的方法和装置 | |
CN101594377A (zh) | 用于管理Feed数据的系统和方法 | |
CN101251843B (zh) | 一种用于数据网格的全分布式副本定位方法 | |
CN103399894A (zh) | 一种基于共享存储池的分布式事务处理方法 | |
CN102891872A (zh) | 一种对等网络中数据存储和查询的方法及系统 | |
CN103107944B (zh) | 一种内容定位方法和路由设备 | |
CN101753567B (zh) | 用于运营商主动参与的对等网络的资源共享方法 | |
CN101917475B (zh) | 一种基于p2p模式的psrd普适服务资源发现方法 | |
CN107547657A (zh) | 一种基于云存储系统中单点数据编号的方法、装置以及存储介质 | |
CN103763359B (zh) | 一种基于混合式结构的发现服务体系建立方法及查询方法 | |
CN104980493A (zh) | 一种基于主动缓存算法的发现服务方法 | |
CN105511966B (zh) | 一种用于数据库集群业务分割优化的方法和系统 | |
CN101540884B (zh) | 一种基于跳图的对等化VoD系统构建方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Open date: 20090603 |