发明名称 数据网格系统中数据副本的混合定位方法
摘要 本发明属于网格数据管理与共享技术领域,其特征在于:系统采用了一种自相似的分层同构的体系结构,系统中的结点的粒度可以任意调整。因此,增加了系统的灵活性以及可扩展性。同时,系统中引入了超级结点的概念,这些超级结点之间采用全相连的体系结构,减少了结点之间由于维护庞大的路由表带来的开销,以及由于结点频繁加入、退出时对系统造成的影响。系统中的数据拥有两种元数据:本地元数据与全局元数据。对于用户而言,无需改变其使用惯;采用全局统一的元数据,可以使得元数据的存储、传输变得简单。另外,元数据的搜索采用逐步解析的方法,使得副本定位的查询消息尽量限制在局域范围内。
申请公布号 CN100386986C 申请公布日期 2008.05.07
申请号 CN200610011469.0 申请日期 2006.03.10
申请人 清华大学 发明人 杨广文;姜建锦;张武生
分类号 H04L12/00(2006.01);H04L12/24(2006.01);H04L12/28(2006.01) 主分类号 H04L12/00(2006.01)
代理机构 代理人
主权项 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,该<math><mrow><msub><mi>F</mi><mi>super</mi></msub><mo>=</mo><munderover><mi>&cup;</mi><mrow><mi>i</mi><mo>=</mo><mn>1</mn></mrow><mi>w</mi></munderover><msub><mi>F</mi><mi>i</mi></msub></mrow></math>,其中,系统中第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协议,进行数据传输。
地址 100084北京市北京100084-82信箱