CN100386986C - 数据网格系统中数据副本的混合定位方法 - Google Patents

数据网格系统中数据副本的混合定位方法 Download PDF

Info

Publication number
CN100386986C
CN100386986C CNB2006100114690A CN200610011469A CN100386986C CN 100386986 C CN100386986 C CN 100386986C CN B2006100114690 A CNB2006100114690 A CN B2006100114690A CN 200610011469 A CN200610011469 A CN 200610011469A CN 100386986 C CN100386986 C CN 100386986C
Authority
CN
China
Prior art keywords
node
super
peer
metadata
information
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.)
Active
Application number
CNB2006100114690A
Other languages
English (en)
Other versions
CN1815963A (zh
Inventor
杨广文
姜建锦
张武生
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tsinghua University
Original Assignee
Tsinghua University
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Tsinghua University filed Critical Tsinghua University
Priority to CNB2006100114690A priority Critical patent/CN100386986C/zh
Publication of CN1815963A publication Critical patent/CN1815963A/zh
Application granted granted Critical
Publication of CN100386986C publication Critical patent/CN100386986C/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明属于网格数据管理与共享技术领域,其特征在于:系统采用了一种自相似的分层同构的体系结构,系统中的结点的粒度可以任意调整。因此,增加了系统的灵活性以及可扩展性。同时,系统中引入了超级结点的概念,这些超级结点之间采用全相连的体系结构,减少了结点之间由于维护庞大的路由表带来的开销,以及由于结点频繁加入、退出时对系统造成的影响。系统中的数据拥有两种元数据:本地元数据与全局元数据。对于用户而言,无需改变其使用习惯;采用全局统一的元数据,可以使得元数据的存储、传输变得简单。另外,元数据的搜索采用逐步解析的方法,使得副本定位的查询消息尽量限制在局域范围内。

Description

数据网格系统中数据副本的混合定位方法
技术领域
数据网格系统中数据副本的混合定位方法属于分布式技术与系统领域,尤其是涉及其中的数据管理与共享技术领域。
背景技术
网络技术与分布式系统的不断发展,为诸多应用领域自治组织的分布式资源共享提供了更加有效的理论基础和技术手段。借助互联网实现组织内部的资源共享,成为解决传统意义下资源共享的有效方式的同时,也带来了新的挑战。例如,分布于各地的不同组织以及用户之间需要通过网络来实现数据的共享。这些数据具有以下特性:首先它们是异构的,包括数据的形式,数据的大小,以及元数据等。这些因素使得数据共享变得困难。其次,这些数据分布广泛,属于不同的组织。这使得主干网带宽压力增大,并且带来了相应的安全问题。第三,数据的数目巨大,因此要求系统具有良好的可扩展性。
数据网格就是为了解决网格计算中的数据管理问题而提出的,它主要研究有效的数据副本管理以及高速的数据传输。现行的数据网格的副本定位解决方案中,主要有Globus组织与欧洲DataGrid组织提出的副本定位框架Replica Location Service(RLS),目前已经在GlobusToolkit中实现。它所针对的研究对象是只读数据,无需考虑数据的一致性。尽管RLS中提出了结点管理这一项功能,但是目前发行的版本中并没有实现,而是采用静态配置来管理系统中的结点。当系统的拓扑结构或者系统的规模发生变化时,需要系统管理人员进行手动调整。因此,这样的系统当结点规模较小时,可以胜任;当结点规模增大时,由于可扩展性不足,导致系统的应用范围受到局限。
为了提高数据网格的可扩展性,一些研究人员提出采用近年来出现的对等网络系统(P2P)的思想来管理系统中的结点。P2P强调的是对等服务,不区分服务器和客户端。每个结点在索取其他结点服务同时,也和其他结点相配合提供相同的服务。它是一种扁平而不是层次化的结构,每个参与结点的地位都相等。
但是,直接采用对等网络系统的结点组织方法来管理数据网格中的结点将会面临一些困难。这是因为数据网格与对等网络所面临的问题是不同的。
首先,在涉及到多个自治组织的应用中,数据的放置一般有一定的要求,如必须放置在部门或组织内。而传统的DHT经过散列后地理的局部性被打乱了,结点和数据都是随机分布,无法控制数据的放置。
其次,数据网格中的结点相对稳定,系统中的结点一般存在着一定的信任关系。而对等网络中的结点动态性很强,结点可能随时加入、退出系统。
第三,对于非结构化P2P而言,系统中的结点可以与其他任意结点建立连接关系,这些连接关系由系统的协议确定,无法由系统管理员来进行控制,对于采用松散方式组织而成的系统是可以满足要求的,但是对于数据网格这种由各个子系统联合而成的系统而言,系统中的连接、拓扑关系必须受到控制。
第四,强调参与结点角色对等的同时,P2P系统忽略了网络组织的结构性。现存的网络是个层次化的transit-sub结构,同一个子系统内结点之间通信的速度较快,子系统之间的结点通信的速度则比较慢。在DHT的组织中,由于结点的ID近似随机产生,因此同一个子网内的结点均匀分布在ID空间中。这样就可能出现同一个子网内的结点的通信需要跨越其他子网,造成了通信延迟的增加以及带宽的浪费。
针对数据网格环境中的重点和难点,我们提出了自己的可行方案,实现了在异构数据网格环境中可扩展的数据副本混合定位。
发明内容
本发明的目的在于提供一种数据网格环境中混合数据副本定位方法,以便为实现数据网格系统奠定基础。对于数据存储有严格限制的应用,采用本方法可以有效地实现。本发明的核心在于,充分利用实际系统互连的拓扑结构以及层次信息;在维护用户原有使用习惯的同时,提高元数据的存储、共享、管理的性能。
本发明的特征在于:该方法是在一个多层次的计算机组成的数据网格系统中实现的,所属数据网格系统中的每一层由基本结点和递归结点组成,所述基本结点是一个在逻辑上无法再分的结点,反之,便是递归结点,所述递归结点又包含任意多的基本结点和递归结点;在每一层中的递归结点称为超级结点,该超级结点中所包含的基本结点或递归结点称为普通结点,所述超级结点是所述普通结点的接入结点,负责维护普通结点上的元数据信息,即负责转发发给该超级结点所负责的普通结点的信息以及该超级结点所负责的普通结点所发出的向外界查询的信息;处于同一层并且位于同一个递归结点中的所有结点采用完全图的拓扑结构进行互连,而处于同一层次的超级结点之间采用全相连的拓扑结构进行连接;
所述数据网格系统设有一个入口结点E,并由系统提供以下应用程序接口:
Join:通过在线的网络地址为EntranceNodeIP的结点把一个普通结点或者递归结点带入系统;
AddMappingRule:向系统中添加一个用可扩展标记语言XML描述文件mapXML表示的双向映射规则;
InsertUserMetadata:向系统中插入一个用户元数据userElement;
LocateMetadata:负责从系统中定位目标元数据objElement;所述目标元数据是指:本结点或者本结点下辖的普通结点的元数据,以及外围的元数据;其中,包括以下两个部分:
用户原有元数据的信息,其中,包括连历史信息在内的原来元数据进行加密后的信息或者是把原来的元数据进行压缩或位移操作后的信息,即用户元数据;
用于元数据定位操作的全局元数据,包括引导信息与编码信息:引导信息为结点的路径信息,从系统的顶层结点S0开始,每个结点的完整路径编码为S0/Sh1/Sh1h2/.../Sh1h2...hk;编码信息是指双向映射之后的信息,映射规则由用户指定;所述映射规则是指:从全局元数据向用户元数据转换的映射关系,或者是指从用户元数据向全局元数据转换的映射关系,均有管理员定义、发布与维护;所述映射关系包括加密与解密,或压缩与解压缩,或移位与反移位;
所述数据网格中数据副本的混合定位方法在该数据网格系统中依次含有以下步骤:
步骤1:结点N加入时按以下步骤进行:
步骤1.1:结点N向系统中的入口结点E进行查询,获得处于最高层次的超级结点S1,S2,S3,...,Sn的信息;
步骤1.2:结点选择超级结点Sil,并获取该超级结点下属的子超级结点Sil1,Sil2,Sil3,…,Silm的信息;
步骤1.3:从Sil1,Sil2,Sil3,…,Silm中选择子超级结点Sili2,并递归选择Sili2的子超级结点,直至到达所要最终连接的子超级结点Sili2…il,l表示最终连接的层次;
步骤1.4:向所述子超级结点Si1i2…il发送消息,建立连接关系,并加入系统;
步骤1.5:若新加入的结点N是递归结点,则只要指定一个结点Ss作为超级结点,并且向最终连接的子超级结点Si1i2…il所下辖的各个子超级结点发送消息通知结点N已加入系统,建立双向连接关系;
步骤2:若有结点退出,则按以下步骤执行:
若为一个普通结点G退出,对于数据无需进行特别处理;
若为一个超级结点Si1i2...it退出,t表示该超级结点所在的层次,按以下步骤进行:
步骤2.1:该超级结点Si1i2...it向同层且有连接关系的超级结点发送退出消息,使得这些有互连关系的超级结点把退出的超级结点Si1i2...it从连接关系表中删除;
步骤2.2:该超级结点Si1i2...it再向其所下辖的子超级结点Si1i2...it1,Si1i2...it2,...Si1i2...itnt+1发送消息,通知这些结点修改连接关系;所述nt+1是指该超级结点Si1i2...it在t+1层的子超级结点的总数;之后,这些子超级结点将与该退出的超级结点Si1i2...it的上一层超级结点Si1i2...it-1建立连接关系;
步骤3:当网络发生故障时,拓扑结构的维护按以下步骤进行:对于每一个超级结点而言,需要向同层的超级结点每隔设定的时间发送心跳消息,验证对方的存在;同时还需要发送心跳消息到该超级结点上层的超级结点;如果一个同层的超级结点退出系统,则将该结点标志为“不可用”,或者直接删除;如果是上层的超级结点退出了系统,则该超级结点下辖的所有结点需重复结点加入过程;
步骤4:当有新的映射关系生成,或者发生映射规则的修改时,则按以下步骤进行:
步骤4.1:事先在所述的系统的入口结点E维护映射规则的超集Fsuper,该 F super = ∪ i = 1 w F i ,其中,系统中第i类映射规则Fi,i=1,2,...w,w是映射规则的总数,该Fsuper是由系统中每个结点把自己所存储的数据的映射规则逐级上传得到的;
步骤4.2:该入口结点E负责把新结点的映射规则、或者新的映射规则,或者已修改的映射规则代替原来相应的映射规则,形成新的Fsuper,再逐级向各超级结点转发;
步骤5:当需要由用户元数据向全局元数据转换时,依次按以下步骤进行:
步骤5.11:系统首先确定转换后全局元数据的长度L1
步骤5.12:系统根据管理员设定的转换规则,取出用户元数据中相应的字段中的位于某些位置的字符,填入到全局元数据内所述转换规则指定的位置中;
步骤5.13:重复步骤5.12,直到用户元数据所有的字段都转换完毕;
步骤5.14:生成全局元数据,结束转换;
从全局元数据向用户元数据转换则按以下步骤进行:
步骤5.21:系统收到全局元数据后,首先确定转换后用户元数据的长度L2
步骤5.22:系统根据管理员设定的转换规则,取出全局元数据中相应的字段中的位于某些位置的字符,填入到用户元数据内所述转换规则指定的位置中;
步骤5.23:重复步骤5.22,直到全局元数据所有的字段都转换完毕;
步骤5.24:生成用户元数据,结束转换;
步骤6:当结点N根据全局元数据中的引导信息中给出的超级结点的路径信息S0/Sh1/Sh1h2/.../Sh1h2...hk发起一个查询,执行元数据定位操作时,依次按以下步骤进行:
步骤6.1:该结点N首先判断该目标元数据属于本地结点还是属于远端结点,若是属于本地结点的元数据,则直接返回该目标元数据所对应的目标结点;否则,进入步骤6.2;
步骤6.2:若属于远端结点的元数据,则结点N查询该本地结点的外围元数据缓存,如果命中,则返回该目标元数据所对应的目标结点;否则,进入步骤6.3;
步骤6.3:该结点N把该查询请求发送给负责自己的超级结点Si1i2...il,该结点Si1i2...il对全局元数据中的引导信息进行解析,决定向哪个超级结点发送请求消息;
步骤6.4:若引导信息中指示负责目标元数据的超级结点在Si1i2..il的连接关系表中,则该结点Si1i2...il直接与负责目标元数据的超级结点通信,并发送相应的元数据;否则,该结点Si1i2...il把该查询消息向上转移,直至到达某个超级结点Si1i2...im,1≤m≤l,停止的条件是该结点Si1i2...im或者其下辖的超级结点已负责存储目标元数据,或者是已经到达Si1
步骤6.5:若步骤6.4到达的是中间过渡用的超级结点是Si1,则需要根据全局元数据的引导信息路由到负责目标元数据的超级结点Sj1;否则,转步骤6.6;
步骤6.6:在步骤6.4中到达的超级结点Si1i2...im或者在步骤6.5中到达的超级结点Sj1,便根据该全局元数据的引导信息开始向下回溯,直至到达Sh1h2...hk,路由结束,并返回结果给发起查询的结点N;
步骤6.7:结点N把本次查询的全局元数据添加到自己的远端元数据缓存,再进行缓存更新;
步骤6.8:用TCP/IP协议或FTP协议,进行数据传输。
本发明的系统中的结点的粒度可以任意调整。因此,增加了系统的灵活性以及可扩展性。同时,系统中引入了超级结点的概念,减少了结点之间由于维护庞大的路由表带来的开销,以及由于结点频繁加入、退出时对系统造成的影响。系统中的数据拥有两种元数据:本地元数据与全局元数据。对于用户而言,无需改变其使用习惯;采用全局统一的元数据,可以使得元数据的存储、传输变得简单。另外,元数据的搜索采用逐步解析的方法,使得副本定位的查询消息尽量限制在局域范围内。所述的数据网格系统可以是本地的数据网格系统,也可以是远程数据网格系统。
测试所使用的机器为PC机(硬件配置:Pentium M 1.5GHz,512M内存;操作系统:Windows Server 2003 with service pack 1),这些机器采用100Mbps的Switch进行互连。
系统采用两层的结构进行验证,共有四个递归结点,每个递归结点中包含了6个基本结点。在实验证明中,每个递归结点中选出一个超级结点,与其他递归结点中的超级结点进行互连。递归结点中所包含的其他结点充当普通结点,由处于同一个递归结点中的超级结点进行消息的转发。同时,该超级结点还负责维护所辖范围内的普通结点的元数据信息。系统中共采用了4台机器进行验证。每个结点分别模拟一个递归结点,该递归结点中包含了6个基本结点。在实验证明中,共定义了100种元数据的双向映射规则,它们分别属于系统中的不同递归结点。
在实验中,首先向系统中发布元数据的双向映射关系。然后,进行元数据的插入操作。最后进行元数据的检索操作,测试结果如图7所示。在元数据的插入与检索操作中,包含了元数据的映射转换所需的时间、路由操作的时间以及Java虚拟机的辅助开销时间。
从测试数据可以看出,系统具有一定的可扩展性,同时,系统可以实现正确的插入、删除操作。因此,系统达到了预先的设计目标。
附图说明
图1:数据网格体系结构示意图;
图2:结点加入过程的程序流程执行图;
图3:结点退出过程的程序流程执行图;
图4:本地元数据向全局元数据转换的程序流程执行图;
图5:全局元数据向本地元数据转换的程序流程执行图;
图6:检索元数据的程序流程执行图;
图7:检索元数据的性能:a:步长=1;b:步长=10。
具体实施方式
设定:
1.系统中结点的逻辑定义以及组织方式:系统中的结点分为两类:基本结点与递归结点。基本结点是一个逻辑上不可再分的结点。递归结点可以包含任意多的基本结点以及递归结点。对于其他结点而言,一个递归结点只是呈现为一个逻辑结点,内部的拓扑结构是透明的。从逻辑上看,整个系统就是一个递归结点。这样,系统中加入的结点的规模可以任意调整。并且,可以保证系统中的可管理性以及安全性。
2.系统中的结点的互联以及角色分工:由于结点的定义是递归定义的,因此结点具有层次属性,处于同一层次且位于同一个递归结点中的结点采用完全图拓扑结构进行互连。这样,系统中的所有结点就形成了一个完整的整体。为了提高通信的效率,并且充分利用系统的底层拓扑结构,每一个递归结点对应着一个或多个超级结点,由该结点负责与系统中其他结点进行互联。在递归结点所包含的结点中,除了超级结点之外的结点被称作普通结点。
3.超级结点的工作模式:对于副本定位而言,系统中的结点将不按照递归结点以及基本结点进行划分,而是采用超级结点以及普通结点的不同进行区别对待。系统中的结点分为两种角色,超级结点与普通结点,超级结点作为普通结点的接入结点,负责维护普通结点上的元数据信息。并且,超级结点之间采用全相连的拓扑结构进行连接,每个超级结点负责转发发给它所负责的普通结点的消息以及它所负责的普通结点向外界的查询消息。这里对于普通结点与超级结点的划分与结点的规模没有一定的对应关系,一个超级结点可以是一个基本结点,也可以是一个递归结点。相应的,一个普通结点也可以是一个递归结点,或者是一个基本结点。这里是从消息的转发以及元数据的存储的角度来对结点进行划分的。与上面的结点之间的拓扑结构的维护以及系统的可管理性、可控制性是相辅相成的。
4.全局元数据的定义:元数据的定义中,采用一种全局统一的编码方案。在该方案中,元数据分为两部分,引导信息与编码信息。引导信息主要是用于数据的定位操作,它指出了元数据存储的位置信息,即结点的路径信息,从系统的顶层结点开始。整个数据网格系统可以认为是顶层结点S0,每个结点的完整路径编码为S0/Sh1/Sh1h2/.../Sh1h2...hk,为了简便起见,结点的路径编码缩写为Sh1/Sh1h2/.../Sh1h2...hk。编码信息是用户原有元数据的信息,可以是原来元数据进行加密处理后的信息,或者是将原来的元数据进行压缩、位移等操作的信息。同时,还需要给出在两种元数据之间进行双向映射时的变换规则。根据该规则,系统将会自动进行转换。双向映射关系由系统管理员进行定义与发布、维护等操作。
5.元数据的存储:为了减少元数据定位操作所需的步数,元数据的存储不仅存储该结点所负责的元数据,而且对于一些历史信息,也进行存储。元数据分为两种,属于本结点或者属于本结点下辖的普通结点的元数据,以及外围的元数据。这两部分元数据分别进行管理,且其存储空间相互独立。在这两个元数据存储池中,保存的都是经过映射的全局统一编码的元数据信息。
数据网格系统提供以下应用程序接口,即API:
Join(EntranceNodeIP):通过在线的网络地址为EntranceNodeIP的结点把一个普通结点或者递归结点带入系统;
AddMappingRule(mapXML):向系统中添加一个用可扩展标记语言XML描述文件mapXML表示的双向映射规则;
InsertUserMetadata(userElement):向系统中插入一个userElement的元数据;
LocateMetadata(objElement):负责从系统中定位与objElement相匹配的元数据;
实现:
1.结点的加入
结点N加入时,无论是以递归结点的身份加入,还是以基本结点的身份加入,都需要从系统中的一个入口结点E获取系统中当前结点的互连信息,并且根据自身的需要决定加入到系统中的哪一个层次中。具体步骤如下所示:
步骤1.1:结点N向系统中的入口结点E进行查询,获得处于最高层次的超级结点S1,S2,S3,...,Sn的信息;
步骤1.2:结点选择要连接的超级结点Sil,并获取该超级结点下属的子超级结点Sil1,Sil2,Sil3,...,Silm的信息;
步骤1.3:重复执行步骤1.2,直至到达所要最终连接的超级结点Si1i2...il,l表示最终连接的层次;
步骤1.4:向所述超级结点Si1i2...il发送消息,建立连接关系,并加入系统;
步骤1.5:若新加入的结点N是递归结点,则只要指定一个结点Ss作为超级结点,并且与最终连接的超级结点Si1i1...il所下辖的各个超级结点Si1i2...il1,Si1i2...il2,...,Si1i2...ilh发送消息,建立双向连接关系;
2.结点的退出
若为一个普通结点G退出,对于数据无需进行特别处理;
若为一个超级结点Si1i2...it退出,t表示该超级结点所在的层次,按以下步骤进行:
步骤2.1:该超级结点Si1i2...it向同层且有连接关系的超级结点发送退出消息,使得这些有互连关系的超级结点把退出的超级结点Si1i2...it从连接关系表中删除;
步骤2.2:该超级结点Si1i2...it再向其所下辖的子超级结点Si1i2...it1,Si1i2...it2,...Si1i2...itnt+1发送消息,通知这些结点修改连接关系;所述nt+1是指该超级结点Si1i2...it在t+1层的子超级结点的总数;之后,这些子超级结点将与该退出的超级结点Si1i2...it的上一层超级结点Si1i2...it-1建立连接关系;
3.拓扑结构的维护
当网络发生故障时,一些结点无故退出,可能造成系统的分裂。因此,这里的拓扑结构的维护主要是超级结点之间的拓扑关系,以及普通结点与超级结点的互连关系。对于一个超级结点而言,需要向同层的超级结点每隔一定时间发送心跳消息,验证对方的存在。同时,还需要发送心跳消息到其上层的超级结点。如果一个同层的超级结点退出系统,则将该结点标志为“不可用”,或者直接删除该结点所对应的项则可。如果是上层的超级结点退出了系统,则需要重复结点加入的过程。具体步骤如下:
步骤3.1:每隔10分钟,向同层的超级结点发送心跳消息,如果没有回复,则将该结点置为不活动的;如果连续三次没有回复,则删除与该结点的连接;
步骤3.2:每隔15分钟,向上层的超级结点发送心跳消息,如果没有回复,则重新与入口结点E通信,重复结点加入的过程。
4.双向映射规则的维护
当有一个新结点加入该数据网格系统,或者有新的映射关系生成,或者发生映射规则的修改时,则按以下步骤进行:
步骤4.1:事先在所述的系统的入口结点E维护一个元数据映射规则的超集Fsuper,该 F super = U i = 1 w F i , 其中,系统中第i类元数据的转换规则即映射规则Fi,i=1,2,...w,w是映射规则的总数,该Fsuper是由系统中每个结点把自己所存储的数据的映射规则逐级上传得到的;
步骤4.2:该入口结点E负责把新结点的映射规则、或者新的映射规则,或者已修改的映射规则代替原来相应的映射规则,形成新的Fsuper,再逐级向各超级结点转发;
5.双向映射规则的转换
当需要由用户元数据向全局元数据转换时,依次按以下步骤进行:
步骤5.11:系统首先确定转换后全局元数据的长度L1
步骤5.12:系统根据管理员设定的转换规则,取出用户元数据中相应的字段中的位于某些位置的字符,填入到全局元数据内所述转换规则指定的位置中;
步骤5.13:重复步骤5.12,直到用户元数据所有的字段都转换完毕;
步骤5.14:生成全局元数据,结束转换;
从全局元数据向用户元数据转换则按以下步骤进行:
步骤5.21:系统收到全局元数据后,首先确定转换后用户元数据的长度L2
步骤5.22:系统根据管理员设定的转换规则,取出全局元数据中相应的字段中的位于某些位置的字符,填入到用户元数据内所述转换规则指定的位置中;
步骤5.23:重复步骤5.22,直到全局元数据所有的字段都转换完毕;
步骤5.24:生成用户元数据,结束转换;
6.元数据的定位
当结点N根据目标元数据中的引导信息中给出的超级结点的路径信息S0/Sh1/Sh1h2/.../Sh1h2...hk发起一个查询,执行元数据定位操作时,依次按以下步骤进行:
步骤6.1:该结点N首先判断该目标元数据属于本地结点还是属于远端结点,若是属于本地结点的元数据,则直接返回该目标元数据所对应的目标结点;否则,进入步骤6.2;
步骤6.2:若属于远端结点的元数据,则结点N查询该本地结点的外围元数据缓存,如果命中,则返回;否则,进入步骤6.3;
步骤6.3:该结点N把该查询请求发送给负责自己的超级结点Si1i2...il,该结点Si1i2...il对元数据中的引导信息进行解析,决定向哪个超级结点发送请求消息;
步骤6.4:若引导信息中指示负责目标元数据的超级结点在Si1i2...il的连接关系表中,则该结点Si1i2...il直接与负责目标元数据的超级结点通信,并发送相应的元数据;否则,该结点Si1i2...il把该查询消息向上转移,直至到达某个超级结点Si1i2...im,1≤m≤l,停止的条件是该结点Si1i2...im或者其下辖的超级结点已负责存储目标元数据,或者是已经到达Sil
步骤6.5:若步骤6.4到达的是中间过渡用的超级结点是Sil,则需要根据目标元数据的引导信息路由到负责目标元数据的超级结点Sj1;否则,转步骤6.6;
步骤6.6:在步骤6.4中到达的超级结点Si1i2...im或者在步骤6.5中到达的超级结点Sj1,便根据该目标元数据的引导信息开始向下回溯,直至到达Sh1h2...hk,路由结束,并返回结果给发起查询的结点N;
步骤6.7:结点N把本次查询的元数据添加到自己的远端元数据缓存,再进行缓存更新;
步骤6.8:用TCP/IP协议或FTP协议,进行数据传输。

Claims (1)

1.数据网格系统中数据副本的混合定位方法,其特征在于:该方法是在一个多层次的计算机组成的数据网格系统中实现的,所属数据网格系统中的每一层由基本结点和递归结点组成,所述基本结点是一个在逻辑上无法再分的结点,反之,便是递归结点,所述递归结点又包含任意多的基本结点和递归结点;在每一层中的递归结点称为超级结点,该超级结点中所包含的基本结点或递归结点称为普通结点,所述超级结点是所述普通结点的接入结点,负责维护普通结点上的元数据信息,即负责转发发给该超级结点所负责的普通结点的信息以及该超级结点所负责的普通结点所发出的向外界查询的信息;处于同一层并且位于同一个递归结点中的所有结点采用完全图的拓扑结构进行互连,而处于同一层次的超级结点之间采用全相连的拓扑结构进行连接;
所述数据网格系统设有一个入口结点E,并由系统提供以下应用程序接口:
Join:通过在线的网络地址为EntranceNodeIP的结点把一个普通结点或者递归结点带入系统;
AddMappingRule:向系统中添加一个用可扩展标记语言XML描述文件mapXML表示的双向映射规则;
InsertUserMetadata:向系统中插入一个用户元数据userElement;
LocateMetadata:负责从系统中定位目标元数据objElement;所述目标元数据是指:本结点或者本结点下辖的普通结点的元数据,以及外围的元数据;其中,包括以下两个部分:
用户原有元数据的信息,其中,包括连历史信息在内的原来元数据进行加密后的信息或者是把原来的元数据进行压缩或位移操作后的信息,即用户元数据;
用于元数据定位操作的全局元数据,包括引导信息与编码信息:引导信息为结点的路径信息,从系统的顶层结点S0开始,每个结点的完整路径编码为S0/Sh1/Sh1h2/.../Sh1h2...hk;编码信息是指双向映射之后的信息,映射规则由用户指定;所述映射规则是指:从全局元数据向用户元数据转换的映射关系,或者是指从用户元数据向全局元数据转换的映射关系,均有管理员定义、发布与维护;所述映射关系包括加密与解密,或压缩与解压缩,或移位与反移位;
所述数据网格中数据副本的混合定位方法在该数据网格系统中依次含有以下步骤:
步骤1:结点N加入时按以下步骤进行:
步骤1.1:结点N向系统中的入口结点E进行查询,获得处于最高层次的超级结点S1,S2,S3,...,Sn的信息;
步骤1.2:结点选择超级结点Si1,并获取该超级结点下属的子超级结点Si11,Si12,Si13,…,Si1m的信息;
步骤1.3:从Si11,Si12,Si13,…,Si1m中选择子超级结点Si1i2,并递归选择Si1i2的子超级结点,直至到达所要最终连接的子超级结点Si1i2...il,l表示最终连接的层次;
步骤1.4:向所述子超级结点Si1i2...il发送消息,建立连接关系,并加入系统;
步骤1.5:若新加入的结点N是递归结点,则只要指定一个结点Ss作为超级结点,并且向最终连接的子超级结点Si1i2…il所下辖的各个子超级结点发送消息通知结点N已加入系统,建立双向连接关系;
步骤2:若有结点退出,则按以下步骤执行:
若为一个普通结点G退出,对于数据无需进行特别处理;
若为一个超级结点Si1i2...it退出,t表示该超级结点所在的层次,按以下步骤进行:
步骤2.1:该超级结点Si1i2...it向同层且有连接关系的超级结点发送退出消息,使得这些有互连关系的超级结点把退出的超级结点Si1i2...it从连接关系表中删除;
步骤2.2:该超级结点Si1i2...it再向其所下辖的子超级结点Si1i2...it1,Si1i2...it2,...S1i2...itnt+1发送消息,通知这些结点修改连接关系;所述nt+1是指该超级结点Si1i2...it在t+1层的子超级结点的总数;之后,这些子超级结点将与该退出的超级结点Si1i2...it的上一层超级结点Si1i2...it-1建立连接关系;
步骤3:当网络发生故障时,拓扑结构的维护按以下步骤进行:对于每一个超级结点而言,需要向同层的超级结点每隔设定的时间发送心跳消息,验证对方的存在;同时还需要发送心跳消息到该超级结点上层的超级结点;如果一个同层的超级结点退出系统,则将该结点标志为“不可用”,或者直接删除;如果是上层的超级结点退出了系统,则该超级结点下辖的所有结点需重复结点加入过程;
步骤4:当有新的映射关系生成,或者发生映射规则的修改时,则按以下步骤进行:
步骤4.1:事先在所述的系统的入口结点E维护映射规则的超集Fsuper,该 F super = ∪ i = 1 w F i ,其中,系统中第i类映射规则Fi,i=1,2,...w,w是映射规则的总数,该Fsuper是由系统中每个结点把自己所存储的数据的映射规则逐级上传得到的;
步骤4.2:该入口结点E负责把新结点的映射规则、或者新的映射规则,或者已修改的映射规则代替原来相应的映射规则,形成新的Fsuper,再逐级向各超级结点转发;
步骤5:当需要由用户元数据向全局元数据转换时,依次按以下步骤进行:
步骤5.11:系统首先确定转换后全局元数据的长度L1
步骤5.12:系统根据管理员设定的转换规则,取出用户元数据中相应的字段中的位于某些位置的字符,填入到全局元数据内所述转换规则指定的位置中;
步骤5.13:重复步骤5.12,直到用户元数据所有的字段都转换完毕;
步骤5.14:生成全局元数据,结束转换;
从全局元数据向用户元数据转换则按以下步骤进行:
步骤5.21:系统收到全局元数据后,首先确定转换后用户元数据的长度L2
步骤5.22:系统根据管理员设定的转换规则,取出全局元数据中相应的字段中的位于某些位置的字符,填入到用户元数据内所述转换规则指定的位置中;
步骤5.23:重复步骤5.22,直到全局元数据所有的字段都转换完毕;
步骤5.24:生成用户元数据,结束转换;
步骤6:当结点N根据全局元数据中的引导信息中给出的超级结点的路径信息S0/Sh1/Sh1h2/.../Sh1h2...hk发起一个查询,执行元数据定位操作时,依次按以下步骤进行:
步骤6.1:该结点N首先判断该目标元数据属于本地结点还是属于远端结点,若是属于本地结点的元数据,则直接返回该目标元数据所对应的目标结点;否则,进入步骤6.2;
步骤6.2:若属于远端结点的元数据,则结点N查询该本地结点的外围元数据缓存,如果命中,则返回该目标元数据所对应的目标结点;否则,进入步骤6.3;
步骤6.3:该结点N把该查询请求发送给负责自己的超级结点Si1i2..il,该结点Si1i2...il对全局元数据中的引导信息进行解析,决定向哪个超级结点发送请求消息;
步骤6.4:若引导信息中指示负责目标元数据的超级结点在Si1i2...il的连接关系表中,则该结点Si1i2...il直接与负责目标元数据的超级结点通信,并发送相应的元数据;否则,该结点Si1i2...il把该查询消息向上转移,直至到达某个超级结点Si1i2...im,1≤m≤l,停止的条件是该结点Si1i2...im或者其下辖的超级结点已负责存储目标元数据,或者是已经到达Si1
步骤6.5:若步骤6.4到达的是中间过渡用的超级结点是Si1,则需要根据全局元数据的引导信息路由到负责目标元数据的超级结点Si1;否则,转步骤6.6;
步骤6.6:在步骤6.4中到达的超级结点Si1i2...im或者在步骤6.5中到达的超级结点Sj1,便根据该全局元数据的引导信息开始向下回溯,直至到达Sh1h2...hk,路由结束,并返回结果给发起查询的结点N;
步骤6.7:结点N把本次查询的全局元数据添加到自己的远端元数据缓存,再进行缓存更新;
步骤6.8:用TCP/IP协议或FTP协议,进行数据传输。
CNB2006100114690A 2006-03-10 2006-03-10 数据网格系统中数据副本的混合定位方法 Active CN100386986C (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CNB2006100114690A CN100386986C (zh) 2006-03-10 2006-03-10 数据网格系统中数据副本的混合定位方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNB2006100114690A CN100386986C (zh) 2006-03-10 2006-03-10 数据网格系统中数据副本的混合定位方法

Publications (2)

Publication Number Publication Date
CN1815963A CN1815963A (zh) 2006-08-09
CN100386986C true CN100386986C (zh) 2008-05-07

Family

ID=36907943

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2006100114690A Active CN100386986C (zh) 2006-03-10 2006-03-10 数据网格系统中数据副本的混合定位方法

Country Status (1)

Country Link
CN (1) CN100386986C (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1997013B (zh) * 2006-12-22 2010-09-08 华中科技大学 基于多副本的具有质量保证的网格数据传输系统
CN101247309B (zh) * 2007-11-28 2010-06-02 华中科技大学 一种通用访问多网格平台的系统
CN101471845B (zh) * 2007-12-27 2011-06-15 中国移动通信集团公司 数据块副本数量调整方法及元数据服务器节点
CN101217571B (zh) * 2008-01-18 2010-07-28 清华大学 用于多副本数据网格系统中的写/读文件操作的方法
US20100088309A1 (en) * 2008-10-05 2010-04-08 Microsoft Corporation Efficient large-scale joining for querying of column based data encoded structures
CN101833741A (zh) * 2010-03-16 2010-09-15 浙江大学 基于弧线骨骼的网格序列的拓扑修补方法
CN102629256B (zh) * 2012-02-29 2014-07-16 浙江工商大学 一种农业信息本体的xml数据信息表示方法
CN103019654B (zh) * 2012-11-28 2015-01-14 清华大学 一种用于地球系统模式的耦合通信方法
GB2562520A (en) * 2017-05-17 2018-11-21 John Hamlin Derrick Digital processing connectivity

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1159858A (zh) * 1994-08-19 1997-09-17 皮尔罗杰克公司 规模可以改变的分布式计算环境
WO2002035391A1 (en) * 2000-10-23 2002-05-02 Sri International Resource distribution and addressing
WO2005015395A1 (en) * 2003-07-28 2005-02-17 Sap Aktiengesellschaft Grid browser component
WO2005064864A1 (en) * 2003-12-23 2005-07-14 Telefonaktiebolaget Lm Ericsson (Publ) Cost determination in a multihop network
CN1687917A (zh) * 2005-05-11 2005-10-26 上海理工大学 网格环境下的大规模数据并行型计算主系统及方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1159858A (zh) * 1994-08-19 1997-09-17 皮尔罗杰克公司 规模可以改变的分布式计算环境
WO2002035391A1 (en) * 2000-10-23 2002-05-02 Sri International Resource distribution and addressing
WO2005015395A1 (en) * 2003-07-28 2005-02-17 Sap Aktiengesellschaft Grid browser component
WO2005064864A1 (en) * 2003-12-23 2005-07-14 Telefonaktiebolaget Lm Ericsson (Publ) Cost determination in a multihop network
CN1687917A (zh) * 2005-05-11 2005-10-26 上海理工大学 网格环境下的大规模数据并行型计算主系统及方法

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
"一种可扩展的分布式副本定位方法". 闫晓东,徐惠民.北京邮电大学学报,第28卷第3期. 2005
"给予区域性分割索引节点的分布式副本定位方法". 闫晓东,徐惠民,刘超英,窦海峰.计算机应用研究. 2005
"一种可扩展的分布式副本定位方法". 闫晓东,徐惠民.北京邮电大学学报,第28卷第3期. 2005 *
"给予区域性分割索引节点的分布式副本定位方法". 闫晓东,徐惠民,刘超英,窦海峰.计算机应用研究. 2005 *

Also Published As

Publication number Publication date
CN1815963A (zh) 2006-08-09

Similar Documents

Publication Publication Date Title
CN100386986C (zh) 数据网格系统中数据副本的混合定位方法
Mayer et al. Fogstore: Toward a distributed data store for fog computing
US6336134B1 (en) Dynamic clients, dynamic partitions, locking, and migration capability for distributed server for real-time collaboration
CN101741696A (zh) 一种分布式地理信息环境中的多用户实时协作系统
CN106354565B (zh) 一种分布式锁客户端及控制方法
CN110166220B (zh) 一种根据分区键的散列值进行切分的分片方法
CN106484713A (zh) 一种基于面向服务的分布式请求处理系统
CN103248726A (zh) 一种多根对等的物联网标识解析方法
CN112835977B (zh) 一种基于区块链的数据库管理方法及系统
CN110213304A (zh) 一种区块链网络互联方法与系统
CN104539681A (zh) 分布式gis加速系统和gis服务的处理方法
CN105207885B (zh) 在会话界面中展示用户信息的方法及装置
CN102034144A (zh) 用于在场的群组组成算法
CN114124384B (zh) 一种qkd网络的虚拟化方法及量子密钥云平台
CN100420245C (zh) 路由器内部物理设备配置管理方法及系统
Confais et al. Data location management protocol for object stores in a fog computing infrastructure
CN100559758C (zh) 基于组合式建造p2p系统的方法
CN113392160A (zh) 一种人员信息同步方法、装置、设备及存储介质
CN107124300A (zh) 一种软件定义网络中的交换机迁移方法
CN107203594A (zh) 一种数据处理设备、方法和计算机可读存储介质
CN102082811B (zh) 分域网络建立方法、分域网络、节点通信方法及网络节点
Raju et al. Using Distributed Ledger Technology to Mitigate Challenges with Flight Information Exchange
KR102628759B1 (ko) 블록체인 네트워크에서 어카운트의 워킹샤드 변경 시스템 및 방법
CN113190518B (zh) 基于移动云计算的协同编辑中一致性维护方法
Guroob et al. Data Replication in Data Grid Environment

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant