分布式数据管理设备和分布式数据操作设备的制作方法

文档序号:6534557阅读:176来源:国知局
分布式数据管理设备和分布式数据操作设备的制作方法【专利摘要】由分布式数据管理设备实现的对象逻辑节点包括:存储单元,用于存储对象节点标识符,每一个对象节点标识符被唯一地分配到多个逻辑节点;存储单元,用于存储所述多个部分数据单元的至少一个;链接表,用于存储在对象逻辑节点和链接目的地逻辑节点之间的链接信息;存储单元,用于存储相对于与所述部分数据单元对应的每一个属性的值范围边界值;以及,存储单元,用于存储相包括多个树节点的相对于每一个属性的树结构数据单元,每一个树节点指示值范围,所述值范围用于识别存储与访问请求对应的所述部分数据单元的所述逻辑节点,所述树结构数据单元包括根树节点,所述根树节点包括使用指向与链接目的地逻辑节点相关联的子树节点的指示符和用于指示用于选择所述指示符的值范围的值形成的至少一个条目。【专利说明】分布式数据管理设备和分布式数据操作设备【
技术领域
】[0001]本发明涉及对于以属性值顺序排序的数据单元的分布式管理技术。【
背景技术
】[0002]作为由应用程序或数据库系统等使用的数据结构,存在被称为相关联阵列、键值存储、映射和从关键字获取值的存储引擎的已知结构。而且,这样的数据结构被分类为其中关键字通过其值排序的数据结构和其中关键字未或被排序地存储的数据结构。在其中未执行排序的配置中,基于通过将关键字散列化而获得的值来确定关键字的数据存储目的地。另一方面,在其中执行排序的配置中,每一个存储目的地与用于处理为值范围数据单元的值范围相关联,并且因此从该值范围数据单元和关键字确定数据存储目的地。[0003]NPL1提出了一种在信息系统中的值范围管理方法的一个示例。在NPL1的示例中,被称为Bigtable的系统包括存储多个数据单元的平板服务器、Bigtable主机、作为集中式服务器的Chubby、元数据平板服务器和客户端。每一个平板服务器存储作为平板的特定值范围的数据单元。Bigtable主机通过B+树来管理其中存储平板的平板服务器,在多个元数据平板服务器上存储构成B+树的多个部分树,并且在Chubby上存储与根对应的部分树。当改变由平板服务器管理的平板时,向主机通知该改变。访问这个Bigtable的客户端通过访问Chubby来获取B+树的根,并且然后从要高速缓存的元数据平板服务器获取其部分树。在该高速缓存有效的同时,客户端可以本地识别与键值对应的平板服务器。当改变由平板服务器处理的平板时,在客户端上的高速缓存变得无效。但是非如此直到客户端访问与客户端检测到该无效时的键值对应的平板服务器,并且然后向元数据平板服务器查询关于有效信息。[0004]NPL2提出了该值范围管理方法的另一个示例。在NPL2的示例中,被称为Baton的系统包括多个P2P(对等)节点。每一个节点存储具有连续的值范围的数据单元。每一个节点与另一个节点具有链接关系,并且这个链接关系整体形成平衡树。每一个节点包括到与在树结构中的父节点对应的节点的链接、到与子节点对应的节点的链接和到同一层的相邻节点的链接。关于到同一层的相邻节点的链接,也管理相对于每一个链接目的地的值范围。在已经获取了对于给定值的访问请求时,某个节点确定有意在同一层中的相邻节点处理的值范围的哪个包括该值,并且然后将访问请求传送到该确定的节点。当传送目的地的节点继续类似的处理时,检测到具有与该值对应的数据单元的节点。当新增加节点或节点离开思,在节点之间的链接关系被依序改变以保持平衡树。而且,当因为在节点之间的不一致导致存储的数据单元的分布变形时,每一个节点改变值范围和链接关系,以便使得数据分布均勾。[0005][引用列表][0006][非专利文献][0007][NPL1][0008]FayChang,JeffreyDean,SanjayGhemawat,WilsonC.Hsieh,DeborahA.WallachMikeBurrows,TusharChandra,AndrewFikes,RobertE.Gruber,^Bigtable:ADistributedStorageSystemForStructuredData",SymposiumonOperatingSystemsDesign(SOSP)2006,2006/11/6-8.[0009][NPL2][0010]H.V.Jagadish,BengChin0〇i,QuangHieuVu,"BATON:ABalancedTreeStructureforPeer-to-PeerNetworks",Verylargedatabases(VLDB)2005,2005/8/30-9/2【
发明内容】[0011][技术问题][0012]然而,上面的值范围管理方法具有如下所述的问题。[0013]在NPL1的方法中,当例如存储数据单元的节点的值范围改变时,客户端的数据访问时间增大。原因是客户端在执行对于数据单元的访问时检测数据存储节点的值范围的改变。换句话说,在该检测后,客户端从元数据服务器获取新的值范围,并且然后重新执行数据访问,并且因此,该通信延迟被作为已经花费的数据访问时间。[0014]为了解决该问题,可设想向NPL1的方法增加其中客户端周期地对于元数据服务器查询关于值范围的配置。然而,根据这样的配置,在系统内的多个公共研宄所服务器以预定间隔从所有客户端接收请求,并且随着在客户端的数量上的增大,元数据服务器的负载和在系统内的通信负载增大,导致整个系统的性能的变差。[0015]而且,在NPL2的方法中,当例如从P2P节点向另一个节点依序传送数据访问请求时,检测存储要访问的数据单元的节点,并且因此,数据访问处理的时间趋向于增大。而且,在NPL2的方法中,根据相对于每一个属性或节点的负载的值范围来更新在节点之间的链接关系,并且因此,随着在系统内处理的属性的数量上的增大,在P2P节点之间的链接关系的数量增大,导致用于该关系的管理和更新的负载和生成其中故障进一步容易出现的情况的可能性的增大。[0016]鉴于如上所述的情况,本发明已经被完成并且意欲提供一种分布式数据管理技术,所述分布式数据管理技术用于通过抑制在以属性值顺序排序的数据单元的分布式管理的系统中的负载而减少数据访问时间。[0017][对于问题的解决方案][0018]本发明的各个方面每一个使用下面的配置来解决上面的问题。[0019]第一方面涉及一种分布式数据管理设备,用于实现在存储多个部分数据单元的多个逻辑节点中的至少一个对象逻辑节点,其中,划分以属性值顺序排序的数据单元,所述多个部分数据单元每一个包括相对于每一个属性的值范围。由根据第一方面的所述分布式数据管理在获得的所述对象逻辑节点包括:节点标识符存储单元,用于存储作为对象节点标识符的、在多个标识符中的向对象逻辑节点分配的标识符,所述多个标识符被分别唯一地分配到在具有环形结构的有限标识符空间中的多个逻辑节点;数据存储单元,用于存储所述多个部分数据单元的至少一个;链接表,用于存储链接信息,所述链接信息用于指示在所述对象逻辑节点和另一个逻辑节点之间的可通信关系,根据与在所述标识符空间中的所述对象节点标识符的关系来建立在所述对象逻辑节点和所述链接目的地节点之间的所述链接信息;值范围存储单元,用于存储相对于与在所述数据存储单元上存储的所述部分数据单元对应的每一个属性的值范围边界值,相对于所述每一个属性的值范围边界位于在所述标识符空间中的所述对象逻辑节点和与所述对象逻辑节点相邻的逻辑节点之间;以及,树存储单元,用于存储相对于每一个属性的树结构数据单元,所述树结构数据单元包括多个树节点,每一个树节点指示用于识别用于存储与访问请求对应的所述部分数据单元的逻辑节点的值范围,所述树结构数据单元包括根树节点,所述根树节点包括使用指向与所述链接目的地逻辑节点相关联的子树节点的指示符和用于指示用于选择所述指示符的值范围的之后形成的至少一个条目。[0020]本发明的另一个方面可以是使得计算机获得如上所述的对象逻辑节点的程序或者可以是被记录了这样的程序的计算机可读记录介质。这个记录介质包括永久有形介质。[0021]根据上面的方面,在用于以属性值顺序排序的数据单元的分布式管理的系统中,可以提供用于通过禁止负载来减少数据访问时间的分布式数据管理技术。【专利附图】【附图说明】[0022]通过下面结合下面的附图描述优选实施例,上述目的和其他目的以及特征和优点将变得更清楚。[0023]图1是示意地图示在第一实施例中的分布式系统的配置示例的视图。[0024]图2是示意地图示在第一实施例中的数据服务器的处理配置示例的视图。[0025]图3是示意地图示在逻辑节点之间的链接关系的示例的视图。[0026]图4是示意地图示作为参考的包括在图3中所示的节点N(l)的链接关系的视图。[0027]图5是示意地图示在ID环和值范围信息之间的关系的视图。[0028]图6A是示意地图示在管理形式3中的、基于图3和图4的链接示例的节点N(l)的树结构数据单元的示例的视图。[0029]图6B是示意地图示在管理形式6中的、基于图3和图4的链接示例的节点N(l)的树结构数据单元的示例的视图。[0030]图7是图示在第一实施例中的树生成单元的操作示例的流程图。[0031]图8是图示在第一实施例中的树更新单元和版本比较单元的操作示例的流程图。[0032]图9是图示在第一实施例中的树搜索单元的操作示例的流程图。[0033]图10是图示在第一实施例中的树搜索单元中的、用于从层L的树数据单元识别地址节点的操作的示例的流程图。[0034]图11是示意地图示在第二实施例中的数据服务器的处理配置示例的视图。[0035]图12是示意地图示在第三实施例中的分布式系统的配置示例的视图。[0036]图13是示意地图示在第三实施例中的数据操作客户端的处理配置示例的视图。[0037]图14是示意地图示在示例1中的ID环和值范围信息之间的关系的视图。[0038]图15是图示在示例1中生成的链接关系的一部分的视图。[0039]图16是图示由在示例1中的每一个节点11生成的树结构数据单元的一部分的视图。[0040]图17是示意地图示在示例1中的负载分散的示例的视图。[0041]图18是示意的图示在示例1中的负载分散后的节点(980)的树结构数据单元的示例的视图。[0042]图19是示意地图示在示例1中的节点(413)的版本更新后的树结构数据单元的示例的视图。【具体实施方式】[0043]现在描述本发明的实施例。下面给出的实施例是说明性的,并且本发明不限于下面的实施例的配置。[0044]根据本实施例的一种分布式数据管理设备实现在存储多个部分数据单元的多个逻辑节点中的至少一个对象逻辑节点,其中,划分以属性值顺序排序的数据单元,该多个部分数据单元每一个具有相对于每一个属性的值范围。在本实施例中的对象逻辑节点包括:节点标识符存储单元,用于存储对象节点标识符;数据存储单元,用于存储部分数据单元;链接表,用于存储在对象逻辑节点和链接目的地逻辑节点之间的链接信息;值范围存储单元,用于存储与在数据存储单元上存储的部分数据单元对应的相对于每一个属性的值范围边界值;以及,树存储单元,用于存储相对于每一个属性的树结构数据单元,其包括根树节点,该根树节点包括至少一个条目,该至少一个条目包括指向与链接目的地逻辑节点相关联的子树节点的指示符和用于指示用于选择该指示符的值范围的值。[0045]该逻辑节点指的是诸如任务、进程和实例等的软件元素,并且被诸如根据本实施例的分布式数据管理设备的计算机实现。而且该对象节点标识符指的是在多个标识符中的向对象逻辑节点分配的标识符,该多个标识符的每一个被唯一地分配到在具有环形结构的有限标识符空间中的多个逻辑节点。换句话说,每一个逻辑节点被平方唯一标识符(以下,也被表达为节点ID或ID)。具有环形结构的有限标识符空间指的是以下述方式限定的标识符空间:在该空间中,最大标识符被最小标识符跟随。[0046]对象逻辑节点根据在标识符空间中在对象节点标识符和另一个标识符之间的关系来建立与另一个逻辑节点(链接目的地逻辑节点)的链接。链接建立意味着对象逻辑节点变得与链接目的地逻辑节点可通信,并且通过例如IP(因特网协议)地址的相互拥有而被实现。本实施例不限制用于实现该链接的任何方法。[0047]以这种方式,在本实施例中,在用于数据单元的分布式管理的多个逻辑节点中,构造基于节点ID的拓扑。[0048]另一方面,每一个逻辑节点管理与类似于上面的值范围存储单元存储的部分数据单元对应的值范围信息。因此,相对于每一个属性的值范围边界位于在标识符空间中的彼此相邻的逻辑节点之间。换句话说,根据节点ID空间的环形结构来确定相对于由每一个逻辑节点处理的每一个属性的值范围。由此,以与在节点ID空间中的相同的方式,可以管理相对于每一个属性的属性值空间,使得具有循环顺序(环形结构)。这也指的是下述配置,其中,通过在节点ID空间的链接拓扑上叠加属性值空间的值范围信息视图来执行管理。该配置使得有可能通过下述方式响应于值范围改变,而不改变节点ID空间的链接拓扑:仅改变与其重叠的值范围信息视图。[0049]在值范围存储单元上存储的值范围边界值可以是由对象逻辑节点存储的部分数据单元的值范围的开始点、该值范围的终点或该值范围的开始点和终点的组合。而且,值范围存储单元可以存储不仅对象逻辑节点的值范围边界值,而且存储由对象逻辑节点的相邻节点存储的部分数据单元的值范围边界值。[0050]在本实施例中,对象逻辑节点存储使用每一个逻辑节点的这样的值范围反映的树结构数据单元,并且当引用在这个树结构数据单元中存储的树节点的条目时,识别用于存储包括任意属性值的部分数据单元的逻辑节点。在本实施例中,如上所述,在树结构数据单元中包括的根树节点的条目包括指向与链接目的地逻辑节点相关联的子树节点的指示符。[0051]以这种方式,使用在基于ID构造的拓扑上的逻辑节点之间的链接关系来反映在本实施例中的树结构数据单元,并且因此,对象逻辑节点可以在搜索树结构数据单元的同时立即识别链接目的地逻辑节点。由此,本实施例使得容易实现用于从链接目的地逻辑节点获取值范围信息的形式和用于链接目的地节点m由链接目的地逻辑节点包括的值范围信息的形式等。使用这样的像素的任何一种,对象逻辑节点不需向给定服务器查询关于值范围改变,并且因此,可以防止在这样的给定服务器上的负载集中。[0052]而且,在本实施例中,当引用如上所述由其本身存储的树结构数据单元时,逻辑节点可以识别用于存储期望的值范围的逻辑节点,并且因此,用于数据访问请求的节点之间的传送变得不必要。结果,可以防止在与数据访问请求的节点之间传送相关联的数据访问时间上的增大。[0053]下面更详细地描述上面的实施例。[0054][第一实施例][0055][系统配置][0056]图1是示意地图示在第一实施例中的分布式系统1的配置示例的视图。在第一实施例中的分布式系统1包括多个数据服务器10。数据服务器10经由网络9可通信地彼此连接。数据服务器10对应于在上述实施例中的分布式数据管理设备。数据服务器10根据应用或来自另一个终端的请求来访问在数据服务器10上存储的数据单元,以获取期望的数据单元。[0057]数据服务器10是缩微的计算机,并且包括经由例如总线5彼此连接的CPU(中央处理单元)2、存储器3和输入/输出接口(I/F)4。存储器3是RAM(随机存取存储器)、ROM(只读存储器)、硬盘或便携存储介质等。输入/输出接口4经由网络9连接到用于与另一个数据服务器10进行通信的通信设备7、数据操作客户端50和另一个终端等。输入/输出接口4可以连接到用户界面设备,诸如显示设备和输入设备等。本实施例不限制数据服务器10的硬件配置。[0058][设备配置][0059]图2是示意地图示在第一实施例中的数据服务器10的处理配置示例的视图。如图2中所示,数据服务器10包括数据操作单元12、树搜索单元13、树生成单元14、树更新单元15、版本比较单元16和至少一个逻辑节点11。每一个逻辑节点包括链接生成单元17、节点ID存储单元18、链接表19、树存储单元20、数据访问单元21、数据存储单元22和值范围存储单元23。[0060]通过使用CPU2来执行在存储器3上存储的程序来实现这些处理单元。从诸如⑶(致密盘)和存储卡25等的便携记录介质或经由输入/输出接口4从在网络上的另一个计算机安装该程序,并且在存储器3上存储该程序。在图2的示例能量,逻辑节点11和相应的处理单元数据操作单元12至16被图示为不同的软件元件、但是可以对于每一个逻辑节点11提供处理单元12至16。以下,逻辑节点11也被简单地表达为节点11。[0061]〈逻辑节点〉[0062]将描述在每一个节点11中包括的相应的处理单元的每一个。[0063]节点ID存储单元18对应于在上面的实施例中的节点标识符存储单元。换句话说,节点ID存储单元18存储向在具有环形结构的有限ID空间中的每一个节点11分配的节点ID。作为例如节点ID,使用对应的服务器的ID地址的散列值。[0064]链接表19存储如在上面的实施例中所述的在节点11和另一个节点之间的链接关系。在第一实施例中的链接表19存储关于其他节点的每一个的节点ID和与该节点对应的IP地址以及与本身节点11的链接关系。与每一个节点对应的IP地址指的是用于与相应的节点进行通信的IP地址,并且例如是其中实现相应的节点的数据服务器10的IP地址。而且,在链接表19上存储的链接关系包括是否使用本身节点11来建立链接的信息和当进行乐链接建立时用于识别链接的编号(链接的顺序等)。[0065]链接生成单元17基于在分布式系统1中的本身节点11的ID和另一个任意节点之间的ID之间在空间上的距离来构造链接关系,并且反映在链接表19中的内容。对于链接关系的该构造(ID拓扑的构造),例如,使用Chord算法或Koorde算法等。第一实施例不限制用于当构造拓扑以便在有限ID空间中具有环形结构时构造ID拓扑的方法。[0066]图3是示意地图示在逻辑节点11之间的链接关系的示例的视图。图4是示意地图示包括作为参考的在图2中所示的节点N(l)的链接关系的视图。在图3和图4的示例中,节点N(l)与节点N(3)和节点N(4)链接,并且节点N(3)与节点N(5)、节点N(6)和节点N(7)链接,并且节点N(4)与节点N(7)和节点N(8)链接。[0067]另一方面,如图3的示例中所示,ID空间具有环形结构。以下,该环形结构也被表达为ID环。在该ID环上,关于每一个节点11,具有大于并且也最接近本身节点11的ID的ID的节点11被表达为后继节点或Sue节点,并且,具有小于或也最接近本身节点11的ID的ID的节点11被表达为前任节点或Pred节点。在ID环上,具有在ID空间中的最大值的节点ID的节点11将具有在ID空间中的最小值的节点ID的节点11看作Sue节点,并且具有在ID空间中的最小值的节点ID的节点11将具有在ID空间上的最大值的节点ID的节点11看作Pred节点。在ID环上的这样的链接关系可以被节点ID值立即识别,并且因此不必被存储在链接表19上或可以连同在如上所述在ID空间中不彼此相邻的节点之间的关系被存储在链接表19上。[0068]以下,在ID环上的相邻节点11被表达为Sue节点或Pred节点,并且,其中不在ID环上相邻地建立链接的节点11被表达为链接目的地节点。而且,如图4中所示,从特定节点11到通过跟随链接而达到的另一个节点的距离被表达为跳。换句话说,直接地与某个对象节点11链接的节点被表达为对象节点11的第一跳的链接目的地节点,并且直接地与第一跳的链接目的地节点链接的节点被表达为对象节点11的第二跳的链接目的地节点。[0069]数据存储单元22存储在多个部分数据单元之间的部分数据单元的一部分,其中,划分以属性值顺序排序的数据单元,如在上面的实施例中所述。在本实施例中处理的数据单元是使用多个列(元组)配置的数据单元,每一个列包括多行(属性)。例如,本实施例不限制数据单元的形式。例如,所存储的属性值可以是其中通过多个属性值的空间填充曲线处理获得一维值的那些。而且,当例如本实施例被应用到数据流系统或公布/预订(Pub/Sub)系统时,数据单元可以是条件方程等而不是数据单元本身。在这样的系统中,被看作用于对于数据库搜索数据单元的条件的搜索密钥的值或范围等变为要检测的数据单元。换句话说,当作为一个条件方程(预订)来提供意欲检测的温度的范围时,该范围被设置为作为(X0,XI)=(下限值,上限值)的二维值,并且然后被存储为通过被允许为一维而获得的值。当提供多个条件方程时,在协同性上存储多个一维值,每一个一维值表示每一个条件方程。当给定属性值的数据单元被公布到系统,并且然后被通知到与诸如包括在条件中的属性值的那个的条件方程对应的通知目的地时,搜索多维范围,其中,在[_<-,属性值]的范围中包括X0,并且在[属性值,0]的范围中包括XI。可以通过下述方式来实现这一点:从先前存储的多个条件方程搜索在与这个多维空间对应的一维范围中包括的条件方程。以这种方式,本实施例不仅适用于数据搜索,而且以相同的方式适用于作为条件的包括范围的Pub/Sub。[0070]在数据存储单元22上存储的部分数据单元每一个具有相对于每一个属性的值范围。[0071]值范围存储单元23存储作为元数据单元的、在另一个节点上的相对于每一个属性的值范围的边界值,与该另一个节点一起划分数据单元,如在上面的实施例中所述。其中与给定的节点一起划分值范围的另一个节点是相邻节点,该相邻节点具有在相对于在ID空间中的给定节点的ID的距离上最近的ID。如上所述,在每一个节点中存在关于在值范围存储单元23上存储的值范围边界值的各种形式。存在例如:一种形式,其中,关于与由本身节点存储的部分数据单元对应的值范围,值范围的开始点被管理为值范围边界值(管理形式1);一种形式,其中,将值范围的终点管理为值范围边界值(管理形式2);以及,一种形式,其中,管理开始点和终点(管理形式3)。而且,可设想:一种形式,其中,管理与由Sue节点存储的部分数据单元对应的值范围的开始点和终点两者(管理形式4);一种形式,其中,管理与由Pred节点存储的部分数据单元对应的值范围的开始点和终点两者(管理形式5);-种形式,其中,管理关于本身节点和Sue节点的每一个的值范围的开始点和终点两者(管理形式6);以及,一种形式,其中,管理关于本身节点和Pred节点的每一个的值范围的开始点和终点两者(管理形式7);等等。[0072]期望通过系统要求来选择管理形式。当例如期望最简单的配置时,可选择管理形式1或2。而且,在其中例如需要数据一致性的系统中,可选择管理形式3、6或7。在这样的系统中,在相邻节点之间同步值范围边界值。而且,在其中例如需要较高的故障抵抗力的系统中,根据作为本身节点的辅助节点(备份节点)的相邻节点(Sue节点或Pred节点)可选择管理形式4、5、6或7。在这样的系统中,对象节点的相邻节点(Sue节点或Pred节点)管理对象节点的值范围信息。本实施例不限制在每一个节点中管理的这样的值范围信息的形式。[0073]图5是示意地图示在ID环和值范围信息之间的关系的视图。在图5的示例中的管理形式2的使用中,节点N(0)存储关于具有相邻节点N(l)的值范围的边界的值范围边界值(25),并且,节点N(l)存储关于具有相邻节点N(2)的值范围的边界的值范围边界值(32)。即使当任何管理形式以这种方式被用作值范围信息的管理形式时,根据ID的环形结构来确定相对于由每一个节点处理的每一个属性的值范围,并且因此,有可能以与节点ID空间相同的方式来管理作为具有循环顺序(环形结构)者的属性值空间。[0074]根据这个循环顺序,当在给定的属性中将特定值范围边界值指定为参考值(在循环顺序中的开始点)时,从参考值到在属性值空间中的最大值的某处的任意值小于从在属性值空间中的最小值到参考值的某处的任意值。根据在图5的示例中的循环顺序,在考虑由节点N(6)到节点N(8)每一个处理的属性值的范围时,当由节点N(6)处理的值范围边界值(175)被指定为参考值时,将属性值(5)确定为大于由节点N(6)处理的值范围边界值(175)。而且,将属性值(200)确定为大于由节点N(6)拥有的值范围边界值(175),并且小于由节点N(7)拥有的值范围边界值(3)。树搜索单元13等例如使用在属性值空间中的这样的循环顺序。[0075]数据访问单元21接收对于本身节点11的数据访问请求,并且然后确定在值范围存储单元23上存储的由本身节点11处理的值范围中是否包括在请求中包括的属性值或属性值的范围。在不包括的情况下,数据访问单元21向请求的请求者发出无效的答复,并且当所包括的属性值或属性值的范围存在时,允许用于数据存储单元22的任意处理,并且然后向请求的请求者返回结果。[0076]树存储单元20存储相对于每一个属性的树结构数据单元,其包括多个树节点,每一个树节点指示值范围,如在上面的实施例中所述。在第一实施例中在树存储单元20上存储的树结构数据单元包括多层,并且每层包括树数据单元。以下,为了与逻辑节点11相区另IJ,作为构成该树结构数据单元的元素的节点将被表达为树节点。而且,为了与由树结构数据单元拥有的层相区别,由在树结构数据单元中包括的相应层中的每一个树数据单元拥有的层将被表达为级。[0077]树节点根据现有的级被区分为根树节点、分支树节点或叶树节点。根节点和分支节点每一个包括指向低一级的节点(子树节点)的指示符,并且叶节点包括指向能够识别作为数据存储目的地的逻辑节点11的数据单元的指示符。每一个树节点包括条目,该条目包括这样的指示符和用于识别用于选择这样的指示符的范围的值范围信息。[0078]在第一实施例中的树节点具有与诸如B树等的用于数据搜索的现有树数据结构类似的结构以及下面的结构。具体地说,在每一个树数据单元的每一个根树节点中,可以设置不包括在对象属性中的属性值的属性值的范围。传统的树数据结构包括一个树数据单元,并且因此,在在根树节点中,设置包括在对象属性中的所有属性值的属性值的范围。另一方面,在第一实施例中的每层的每一个根树节点支持在对象属性中的所有属性值的分组的一部分,并且,所有层的所有根树节点支持在对象属性中的全部属性值的范围。[0079]从在值范围存储单元23中的由本身节点拥有的值范围信息生成第一层(层0)的树数据单元。因此,层〇的树数据单元的配置对应于如上所述的值范围信息的管理形式。因此,例如,使用包括如下所述的三个条目的根树节点来形成管理形式6的层0的树数据单元。在该情况下,根树节点包括叶树节点的布置。第一条目包括由本身节点处理的值范围的开始点(由本身节点的Pred节点处理的值范围的终点)和指向能够识别本身节点的数据单元的指示符。第二条目包括由本身节点处理的值范围的终点(由本身节点的Sue节点处理的值范围的开始点)和指向能够识别本身节点的Sue节点的数据单元的指示符。第三条目包括由本身节点的Sue节点处理的值范围的终点,并且不包括值(空)。以下将能够识别特定节点的数据单元表达为节点识别数据单元,并且对于节点识别数据单元,例如,使用节点ID。[0080]从在值范围存储单元23中的由链接目的地节点拥有的值范围信息生成第二层(层1)的树数据单元。因此,层1的树数据单元的配置叶对应于如上所述的值范围信息的管理形式。例如,管理形式4的层1的树数据单元包括如下所述的多个条目。在每一个条目中,设置由每一个链接目的地节点处理的值范围的终点和指向链接目的地节点的Sue节点的节点识别数据单元的指示符,并且,对于最后条目的值范围边界值,设置由最后链接目的地节点的Sue节点处理的值范围的终点,并且对于指示符,设置空。最后链接目的地节点指的是在多个链接目的地节点中的具有最大ID之后的链接目的地节点。[0081]层L(L是至少2的整数)的树数据单元被使用关于第L跳的每一个链接目的地节点的信息形成,并且具有L级配置。层L的树数据单元的根树节点包括至少一个条目,该条目包括指向与链接目的地节点相关联的子树节点的指示符和用于指示用于选择这个指示符的值范围的值。当可以从指示符获取对应的链接目的地节点的节点识别接收单元(例如,节点ID)时,将指向子树节点的指示符与链接目的地节点相关联的形式不被限制。从在链接目的地节点中的层(L-1)的树数据单元生成比层L的根树节点低的树节点。以下将描述该生成方法。[0082]图6A是示意地图示在管理形式3中的、基于图3和图4的链接示例的节点N(l)的树结构数据单元的示例的视图。图6B是示意地图示乐在管理形式6中的、基于图3和图4的链接示例的节点N(l)的树结构数据单元的示例的视图。图6A和图6B的每一个的左侧的三角形指示每层,并且,在右侧上图示了在每层中的树数据单元。图6A和图6B的每一个的箭头指示指示符,并且该箭头的目的地指示节点识别数据单元。而且,N(x).sV指示节点N(x)的值范围开始点,并且N(x).eV指示节点N(x)的值范围终点。图6A和图6B的示例每一个图示了由节点N(l)存储的树结构数据单元,并且该树结构数据单元包括三层的树数据单元。图6A或图6B未图示其中设置了空的部分。[0083]下面将描述在图6A中图示的每层的树数据单元。[0084]在层0的树数据单元中,设置本身节点的值范围开始点(N(l).sV)和本身节点的值范围终点(N(l).eV)和指向本身节点的节点识别数据单元的指示符。[0085]在层1的树数据单元的相应条目中,设置下面的数据单元。对于第一条目的值范围边界值,设置作为链接目的地节点的节点N(3)的值范围开始点(N(3).sV),并且对于在第一条目中的指示符,设置指向节点N(3)的节点识别数据单元的指示符。对于第二条目的值范围边界值,设置作为链接目的地节点的节点N(4)的值范围开始点(N(4).sV),并且对于在第二条目中的指示符,设置指向节点N(4)的节点识别数据单元的指示符。对于第三条目的值范围边界值,设置节点N(4)的值范围开始点(N(4).sV),并且对于在第三条目中的指示符,设置空。[0086]层2的树数据单元包括根树节点和两个叶树节点,并且根树节点包括指向与作为链接目的地节点的节点N(3)和节点N(4)相关联的子树节点(叶树节点)的两个指示符。使用作为作为参考的从节点N(l)的第二跳的链接目的地节点的节点N(5)至节点N(8)上存储的信息形成该两个叶树节点,其中,节点N(5)至节点N(8)与节点N(3)和节点N(4)链接。在本实施例中,从节点N(3)的层1的树数据单元生成由与节点N(3)相关联的指示符指示的叶树节点,并且从节点N(4)的层1的树数据单元生成由与节点N(4)相关联的指示符指示的叶树节点。而且,在层2的树节点中,设置用于指示第二跳的节点N(5)至节点N(8)的值范围的条目。[0087]下面将描述在图6B中图示的每层的树数据单元。在图6B的层0的树数据单元中,除了图6A的配置之外,设置指向节点识别数据单元的字汇怎和关于作为本身节点N(l)的Sue节点的节点N(2)的值范围的终点。在层1的树数据单元中,除了图6A的配置之外,设置指向节点识别数据单元的指示符和关于作为最后的链接目的地节点N(4)的Sue节点的节点N(5)的值范围的终点。在层2的树数据单元中,除了图6的配置之外,设置指向节点识别数据单元的指示符和关于作为第二跳的最后链接目的地节点N(8)的Sue节点的节点N(9)的值范围的终点。[0088]以这种方式,以与在每一个节点中的值范围信息的管理形式对应的形式来生成每层的树数据单元。然而,存在下述一致性:从在值范围存储单元23中的由本身节点拥有的值范围信息生成层〇的树数据单元,从在值范围存储单元23中的由链接目的地节点拥有的值范围信息生成层1的树数据单元,并且,从链接目的地节点的层(L-1)的树数据单元生成层L(L至少是1)的树数据单元。而且,随着树数据单元的层数量减少,在该树数据单元中反映的值范围信息的新鲜度增加。[0089]而且,每一个树数据单元的每一个树节点具有版本信息。根据值范围改变来更新该版本信息。该版本信息被版本比较单元16等使用。[0090]数据操作单元12从要阿比应用程序获取的要操作的数据单元的确定条件或来自用户界面设备的输入等获取对象属性和属性值或属性值的范围,检测与该属性值或属性值的范围对应的节点11,并且执行对于节点11的数据访问处理。通过向树搜索单元13发送对象属性或属性值或属性值的范围来从树搜索单元13获取对应的节点11。当数据访问已经失败时,数据操作单元12再一次向树搜索单元13查询关于数据访问地址的节点。[0091]当从数据操作单元12获取对象属性或属性值或属性值的范围时,树搜索单元13从树存储单元20获取关于任意节点的指定属性的树结构数据单元,并且从该树结构数据单元识别用于存储与属性值或属性值的范围对应的部分数据单元的节点11。当未识别节点11或不存在树结构数据单元的某个层的树数据单元时,树搜索单元13请求树生成单元14生成树数据单元。将在操作示例的部分中详细说明树搜索单元13的详细处理。[0092]树生成单元14如上所述生成树结构数据单元。当生成在对象节点11中的层L(L至少是2)的树数据单元时,树生成单元14从对象节点11的链接表19获取链接目的地节点的通信地址,并且使用该通信地址从链接目的地节点获取在链接目的地节点的树存储单元20上存储的层(L-1)的树数据单元。当生成在对象节点11中的层1的树数据单元时,树生成单元14可以获取在链接目的地节点的树存储单元20上存储的层0的树数据单元,或者可以获取在链接目的地节点的值范围存储单元23上存储的值范围信息。将在操作示例的部分中详细描述树生成单元14的详细处理。[0093]通过每一个节点11的负载或在每一个节点11上存储的数据量的平衡等来改变向每一个节点11分配的每一个属性的值范围。另一方面,每一个节点11叶通过在树存储单元20上存储的树结构数据单元来管理关于另一个节点的值范围信息。因此,虽然存在已经在另一个节点中改变了值范围的情况,但是生成其中在特定节点11的树结构数据单元中未反映值范围改变的情况。在这样的情况下,有可能树搜索单元13识别不适当的节点11,即,不存储与对象的属性值或属性值的范围对应的部分数据单元的节点11。[0094]为了尽可能减少这样的情况,树更新单元15在任意定时确认由每一个节点11存储的树结构数据单元是否是最新的值范围信息,并且然后使用最新的值范围信息来更新包括旧的值范围信息的树数据单元。具体地说,树更新单元15发送版本确认请求,其中,关于等与或高于层2的每层的树数据单元,由在根树节点中包括的指示符指向的子树节点的版本信息被设置为与该指示符相关联的链接目的地节点。使用树数据单元15和在来自链接目的地节点的答复中包括的版本信息,树更新单元更新具有不同版本的层的树数据单元和其版本信息。[0095]树更新单元15根据期望与由数据操作单元12执行的数据访问处理异步地、在预定循环中周期地执行版本确认和树结构数据单元的更新。这样的方式使得有可能缩短向所有节点的值范围改变的发送的时间,并且因此,可以减少其中树生成单元14识别不适当的节点11的情况的出现,导致抑制因为该情况导致的在数据访问时间上的增加。[0096]响应于对于从另一个节点发送的层L的树数据单元的版本确认请求,版本比较单元16将在该版本确认请求中包括的版本信息与由节点11拥有的层(L-1)的树数据单元的版本信息作比较。版本比较单元16向请求者的另一个节点返回不同版本的层(L-1)的树数据单元连同每一个树节点的版本信息。[0097][操作示例][0098]下面参考图7至图10来描述在第一实施例中的数据服务器10的操作示例。在下面的描述中,作为在每一个节点中的值范围信息的管理形式,使用管理形式6,S卩,其中管理关于本身节点和Sue节点的每一个的值范围的开始点和终点两者的形式。[0099]图7是图示在第一实施例中的树生成单元14的操作示例的流程图。当接收到其中指定任意节点11(对象节点11)生成对象的属性和层的生成请求时,树生成单元14识别生成对象的属性(S51),并且根据指定层来运行如下(S52)。[0100]当指定层是0时,树生成单元14基于在值范围存储单元23上存储的值范围信息来生成在对象节点11的层0的树数据单元中的根树节点的相应条目。树生成单元14在第一条目中设置对象节点11的值范围开始点和指向能够识别对象节点11的数据单元的指示符(S53)?[0101]然后,树生成单元14生成对象节点11的层0的树数据单元中的根树节点的第二条目(S54)。树生成单元14在第二条目中设置对象节点11的Sue节点的值范围开始点和指向对象节点11的Sue节点的节点识别数据单元的指示符。[0102]然后,树生成单元14生成对象节点11的层0的树数据单元中的根树节点的第三条目(S55)。树生成单元14在第三条目中设置对象节点11的Sue节点的值范围终点,并且不设置值(空)。[0103]当该指定层是1时,树生成单元14初始参考链接表19,并且然后识别对象节点11的链接目的地节点m(S61)。当多个链接目的地节点存在时,其中的一个被识别为链接目的地节点m。m的初始值是1。[0104]树生成单元14生成在层1的树数据单元中的根树节点的第m个条目(S62)。树生成单元14在该第m个条目中设置链接目的地节点m的值范围开始点和指向链接目的地节点m的节点识别数据单元的指示符。此时,树生成单元14从链接表19获取链接目的地节点m的通信地址,并且然后使用该通信地址从链接目的地节点m获取值范围开始点和节点识别数据单元。[0105]树生成单元14对于所有链接目的地节点执行如上所述的步骤S61和步骤S62两者(S66)。[0106]当链接目的地节点m是最后链接目的地节点时(S63;是),树生成单元14生成第m+1条目(S64),并且进一步生成第m+2条目(S65)。具体地说,树生成单元14在第m+1条目中设置链接目的地节点m的值范围终点和指向链接目的地节点m的Sue节点的节点识别数据单元的指示符(S64)。而且,树生成单元14在第m+2条目中设置链接目的地节点m的Sue节点的值范围终点(S65)。如上所述,从链接目的地节点m获取链接目的地节点的值范围终点、链接目的地节点m的Sue节点的节点识别数据单元和链接目的地节点m的Sue节点的值范围终点。树生成单元14对于最后条目的指示符不设置值(空)。[0107]当指定层是L(L至少是2)时,树生成单元14以与在如上所述的步骤S61中相同的方式来识别对象节点11的链接目的地节点m(S56)。然后,树生成单元14向链接目的地节点m发出对于层(L-1)的树数据单元的请求,并且根据这个请求从链接目的地节点m获取层(L-1)的树数据单元(S57)。同样在那个时间,如上所述,从链接表19获取链接目的地节点m的通信地址。[0108]树生成单元14从获取的树数据单元传送层由层L的树数据单元的根树节点的某个指示符识别的树节点和比前者低的树节点(S58)。换句话说,树生成单元14基于所获取的树数据单元生成第二级的树节点和比其低的树节点。当使用两级树节点形成所获取的树数据单元时,树生成单元14将该两级树数据单元连接到根树节点。[0109]然后,树生成单元14生成层L的树数据单元的根树节点的第m条目(S59)。树生成单元14在第m条目中设置在所获取的树数据单元的根树节点的第一条目中设置的值范围边界值和指向从所获取的树数据单元的根值范围生成的树数据单元的指示符。在那个时间,可以根据情况删除与除了第m条目之外的条目的树重叠的信息。[0110]树生成单元14对于所有的链接目的地节点执行如上所述的步骤S56、S57、S58和S59(S60)。关于层L的树数据单元的根树节点的最后链接,树生成单元14设置在树数据单元的根树节点的最后条目和其中对于指示符不设置值(空)的条目中设置的值范围终点。[0111]在图7的示例中,已经区别地表达了层1的树数据单元的生成步骤和层L(L彡2)的树数据单元的生成步骤,但是也可能在对于层L的树数据单元的相同的步骤中生成层1的树数据单元。在该情况下,在步骤S52中,将层确定为0或L(L多1),并且当指定层1时,执行步骤S56和随后的步骤。[0112]图8是图示在第一实施例中的树更新单元15和版本比较单元16的操作示例的流程图。每一个节点11(在下面的说明中称为"对象节点11")使得树更新单元15在预定的定时运行如下。[0113]树更新单元15初始参考链接表19,并且识别对象节点11的链接目的地节点m(S70)。当存在多个链接目的地节点时,其中之一被识别为链接目的地节点m。m的初始值是1。[0114]然后,树更新单元15相对于对象节点11的等于或大于层2的相应层获取由与在根树节点上包括的链接目的地节点m相关联的、被指示符识别的树节点的版本信息(S71)。当由指示符识别的子树节点是分支树节点时,有可能获取子树节点和其下的所有三个节点的版本信息。[0115]树更新单元15向链接目的地节点m发送版本确认请求,其包括关于等于或高于层2的相应层获取的多个版本信息(S72)。同样在那个时间,如上所述,从链接表19获取链接目的地节点m的通信地址。[0116]当接收到这个版本确认请求时(S81),链接目的地节点m使得版本比较单元16运行如下。版本比较单元16将在版本确认请求中包括的每层n的版本信息与低一级的每层(n-1)的版本信息作比较(S82)。例如,将在版本确认请求中包括的层2的版本信息与链接目的地节点m的层1的版本信息作比较,并且,将在版本确认请求中包括的层3的版本信息与链接目的地节点m的层2的版本信息作比较。[0117]作为比较(S82)结果,版本比较单元16向对象节点11返回在具有不同版本的层中的树数据单元(包括版本信息)连同由链接目的地节点m(等同于链接目的地节点m的层〇的树数据单元的)拥有的值范围信息(S83)。当使用多个树节点形成具有不同版本的层的树数据单元时,返回数据单元和关于这些多个树节点的版本信息。在那个时间,当在版本确认请求中包括的层n和链接目的地节点m的层n-1在版本上彼此不同时,作为树数据单元和层n的版本信息,设置树数据单元和链接目的地节点m的层(n-1)的版本信息来用于答复。[0118]当接收到这个答复时(S73),对象节点11使得树更新单元15运行如下。初始,树更新单元15相对于层1的树数据单元将在与由链接目的地节点m拥有的值范围信息对应的条目中设置的值范围边界值和在答复中包括的由链接目的地节点m拥有的最新值范围信息作比较。当这些彼此不同时,树更新单元15使用最新的值范围信息来更新条目的值范围边界值,并且将层1的树数据单元的版本信息前进(S74)。[0119]然后,树更新单元15参考该答复,并且确定是否存在具有不同版本的层(S75)。[0120]树更新单元15使用在答复中包括的新的树数据单元来更新与在具有对象节点11的不同版本的层中的链接目的地节点m对应的部分树数据单元(S76)。当例如层2的版本不同时,树更新单元15使用在答复中的树数据单元更新与在对象节点11的层2的树数据单元中的根树节点中包括的链接目的地节点对应的、由指示符识别的子树节点和比子树节点低的树节点。此时,也更新在子树节点后的每一个树节点的版本信息。而且,而且,也更新与层2的根树节点的链接目的地节点对应的条目的值范围边界值。[0121]而且,树更新单元15将具有不同版本的层的根树节点的版本信息前进(S77)。树更新单元15对于所有的链接目的地节点执行如上所述的步骤S70至S77。[0122]如上所述的图8已经图示了下述示例,其中,对于等于或高于对象节点11的层2的相应层执行处理,但是可以对于等于或高于层1的相应层执行处理。在该情况下,在步骤S71中,树更新单元15相对于等于或高于对象节点11的层1的相应层获取与在根树节点中的链接目的地节点m相关联的、由指示符识别的树节点的版本信息。在步骤S83中,版本比较单元16不必返回链接目的地节点m的值范围边界值,或者树更新单元15不必执行步骤S74〇[0123]图9是图示在第一实施例中的树搜索单元13的操作示例的流程图。当从数据操作单元12获取对象属性和像素值或属性值的范围时,树搜索单元13从任意节点11(以下表达为对象节点11)的树存储单元20获取关于对象属性的树结构数据单元(S90)。树搜索单元13设置用于层L的初始值0(S91)。层0是最低层,并且层L(至少为1)是大于前者的层。[0124]树搜索单元13确定在获取的树结构数据单元中是否存在层L的树数据单元(S92)。当不存在层L的树数据单元时(S92:否),树搜索单元13请求树生成单元14准备对象节点11的层L的树数据单元(S93)。响应于该请求,如上所述,生成对象节点11的层L的树数据单元。[0125]树搜索单元13获取层L的树数据单元(S94),并且从层L的树数据单元识别具有对象属性的属性值或与该属性值的范围对应的值范围的节点(地址节点)(S95)。以下将参考图10来描述用于地址节点的该识别处理的细节。[0126]当已经成功地识别地址节点时(S96;是),树搜索单元13输出关于地址节点的信息(S97)。基于该输出信息,数据操作单元12向地址节点传送数据访问请求。[0127]另一方面,当已经未能识别地址节点时(S96;否),树搜索单元13将层L前进1(L=L+l)(S98),并且对于已经被前进的层L执行处理步骤S92和随后的步骤。其后,树搜索单元13将要搜索的层依序前进,直到识别了地址节点。当在一个数据服务器10(物理服务器)上提供多个虚拟节点(对象节点11)时,在一层中的所有虚拟节点的地址节点识别失败时,可以将层L前进1。[0128]图10是图示在第一实施例中的用于从树搜索单元13中的层L的树数据单元识别地址节点的操作的示例的流程图。换句话说,图10图示了图9的步骤S95的详细操作。初始,树搜索单元13识别层L的树数据单元的根树节点(S100)。初始,对于层L,设置初始值〇(指示最上层)(S101)。[0129]然后,树搜索单元13基于在其中在被识别的树节点(在此指示根树节点)的第一条目的值范围边界值被指定为参考之后的对象属性的属性值空间中的循环顺序从被识别的树节点识别包括对象属性的属性值或与属性值的范围对应的值范围的条目(S102)。该循环顺序对应于由属性值空间与如上所述的ID环对应地拥有的环形结构。[0130]当未从所识别的树节点识别条目时(S103;否),树搜索单元13确定地址节点的识另IJ失败(S108)。另一方面,当已经成功地识别条目时(S103;是),树搜索单元13确定被识别的条目的指示符是否指向节点识别数据单元(S104)。[0131]当指向节点识别数据单元时(S105;是),树搜索单元13获取由指示符指向的节点识别数据单元(S107)。该处理对应于地址节点的识别。[0132]当未指向节点识别数据单元时(S105;否)时,即,当指示符指向子树节点时,树搜索单元13识别被指示符指向的子树节点(S106)。树搜索单元13对于这个被识别的树节点执行步骤S102和随后的步骤。[0133][第一实施例的操作和效果][0134]如上所述,在第一实施例中,响应于对于对象属性的属性值或属性值的范围的数据访问请求,节点11使用在本身节点11的树存储单元20上存储的树结构数据单元来识别用于存储被发出数据访问请求的部分数据单元的地址节点。由此,根据第一实施例,数据访问请求可以被直接地传送到由某个节点11识别的地址节点,并且因此,可以防止在与数据访问请求的节点之间传送相关联的数据访问时间上的增大。[0135]而且,在第一实施例中,从自每一个节点11的链接目的地节点获取的树数据单元自动生成使用由每一个节点11拥有的值范围信息反映的树结构数据单元。而且,在第一实施例中,在树结构数据单元中包括的每一个树节点具有版本信息,并且每一个节点11在数据访问处理的背景中在预定定时使用该版本信息来执行版本确认和本身的树结构数据单元的更新。此时,每一个节点11从链接目的地节点获取使用值范围改变反映的最新树数据单元。[0136]以这种方式,根据第一实施例,因为在在节点11和链接目的地节点之间传送值范围信息,所以不必提供用于值范围信息的集中管理的识别服务器组,诸如元数据服务器等,并且因此,可以防止在识别服务器组上的负载集中。而且,当提供识别服务器组时,必须通过对于系统提供强壮性使得这些服务器不变为单个故障点来管理系统,但是,如上所述的配置使得有可能减少用于故障对策的努力的数量和通过提供识别服务器组而给出的操作和维护。根据第一实施例,即使当由每一个节点11生成的值范围信息因为某种原因而单独消失时,通过再一次从链接目的地节点获取值范围信息能够恢复该值范围信息,并且因此,有可能也减少用于故障对策的努力的数量和关于每一个节点11的操作和维护。[0137]而且,在第一实施例中,每一个节点11运行以便自发地和与数据访问处理分离地存储在最新条件下的值范围信息(树结构数据单元),并且因此,可以减少访问未中,其中,与对象的属性值或属性值的范围对应的部分数据单元未被存储在作为地址节点识别的节点11中。换句话说,根据第一实施例,当缩短值范围改变向所有节点的发送的时间时,可以减少在数据访问执行期间的访问未中,并且因此,可以减少在数据访问时间上的增大。[0138]而且,在第一实施例中,形成使用值范围信息反映的树结构数据单元,使得将与节点ID的链接关系相同的结构,并且在每一个节点11和其链接目的地节点之间执行版本确认和值范围信息(树结构数据单元)的获取。因此,根据第一实施例,关于每一个节点11,在预定时间段中的版本确认(值范围改变确认)的次数是每一个节点11的链接的数量,并且因此,也可以抑制在每一个节点11中的用于值范围改变确认的负载。[0139]而且,在第一实施例中,有可能每一个节点11不仅在每一个预定时间执行版本确认,而且在数据访问执行时更新树结构数据单元。数据访问执行的时间指的是当通过参考树结构数据单元而获取与给定的键值对应的节点ID时的时间,其后是对于其节点的访问,并且其后,该访问因为无效而失败,因为值范围已经旧了。在那个时间,关于与从在树结构数据单元中的值树节点到叶树节点的路径对应的链接,也可以更新树结构。[0140][第二实施例][0141]在第一实施例中,未限制基于节点ID的链接关系的构造方法。在第二实施例中,作为用于链接关系的构造方法,应用新的方法,并且,增加对于与其相关的系统参数的调整处理。在第二实施例中的分布式系统1的配置与在第一实施例中相同,并且,数据服务器10的处理与在第一实施例中不同。下面通过聚焦在与在第一实施例中的事项不同的那些来描述在第二实施例中的数据服务器10,并且将酌情省略与在第一实施例中相同的事项的描述。[0142][设备配置][0143]图11是示意地图示在第二实施例中的数据服务器10的处理配置实例化的视图。在第二实施例中的数据服务器10除了第一实施例的配置之外进一步包括参数设置单元31〇[0144]链接生成单元17使用新的算法(以下被表达为扩展Koorde)来构造基于节点ID的链接关系,并且在链接表19中反映该内容。[0145]在公知的Koorde中,每一个节点11分别与Sue节点、用于通过将每一个节点11的ID乘以参数k(自然数)而获得的值的Pred节点和与来自这个Pred节点的第k-1个对应的Sue节点建立链接。在公知的Koorde中,通过固定值k来确定所有节点11的链接目的地节点的数量。在公知的Koorde中,将其中在作为在deBruijn图形中的节点的同时其ID不作为节点逻辑地存在的节点看作虚拟节点,并且然后,该虚拟节点被Pred节点管理以获取所需的数量的链接的分布的预期值。换句话说,本发明得出用于在deBruijn图形中的节点之间的跳跃所需的数量的链接的分布,但是解释说公知的方法已经仅获取该分布的预期值,并且链接目的地节点的数量未被固定地设置为k。因此,在公知的Koorde中,存在其中存在比所需的程度(链接目的地节点的数量)更高的程度或存在比所需程度更低的程度,并且因此,在不足的情况下,已经经由到Sue节点到路由(传送)来补充了程度。而且,独立于链接的方式,在公知的Koorde中,对于与k元编号对应的(log2k)比特编号的移位计算,k已经被限于2的指数幂。[0146]因此,在第二实施例中的扩展Koorde中,在每一个节点11中的链接目的地节点的数量(程度)被指定为概率度。具体地说,在扩展Koorde中,每一个节点11分别与下述部分相关联:作为用于通过将本身节点的ID乘以参数k(至少2的整数)而获得的值等的Pred节点的第一链接目的地节点;作为用于通过将本身节点的Sue节点的ID乘以参数k而获得的值等的Pred节点的第二链接目的地节点;以及,在ID环中的第一链接目的地节点和第二链接目的地节点之间存在的链接目的地节点。由此,在扩展的Koorde中,对于每一个节点11确定的链接目的地节点的数量(程度)变为被参数k控制的概率分布,并且大量的节点11具有比参数k小的程度,而节点11的一部分具有大于参数k的程度。程度的预期值是k+1。"通过将ID乘以参数k而获得的值等"是下述表达:其中,为了说明方便,简化通过将(IDXk)除以2b(ID空间的大小)而获得的余数的含义。而且,在其他位置,作为用于指示"通过将(IDXk)除以2b(ID空间的大小)而获得的余数"的含义的表达,可以作出作为"通过将ID乘以参数k而获得的值"的简化。[0147]树更新单元15存储轮询间隔的值,并且以轮询间隔T来执行版本确认。轮询间隔T可以是与每一个节点的程度成反比的值或在整个系统上为同一值。在反比中,存在相应的节点的轮询负载被均匀化的优点。在整个系统上同一值的情况下,变得可能可以将关于每一个节点的树的从值范围改变的出现到在原始值范围上的反映的时间约束在至少某个范围内。[0148]参数设置单元31设置作为参数的k或T的至少一个,使得满足直到对于下述部分的系统要求(约束):直到在某个节点11中的值范围的改变被发送到在分布式系统1中的所有节点11所需的最大时间wmax;由每一个节点11执行的版本确认的单位时间负载A;或者,在执行期间的关于树更新的树的最大高度hmax;等等。该系统要求指的是对于至少是某个值的需要的上限约束的设置和为了获得尽可能小的负载的最小化要求。而且,关于最大高度hmax,将树的高度的每一个级获得的一个跳的通信延迟和处理时间(被表达为t〇)作为系统要求(约束)。更新所花费的在执行期间的延迟变为(hmaxXt〇)时间,并且t〇是预定值。单位时间负载X表示例如由每一个节点执行的每秒的版本确认的次数。以下,用于更新的在执行期间所花费的延迟将被简单地表达为执行时间延迟,并且,在树的高度的每级所花费的一个跳的通信延迟和处理时间被表达为每一个跳的执行延迟。[0149]作为参数k和T的设置方法,可设想如下所述的相应的方法。在第一参数设置方法中,假定T在所有的节点11中(总的节点数量:N)相同,并且将约束时间wc提供用于最大时间wmax。在第二参数设置方法中,T可以在所有节点中不同,并且基于相对于单位时间负载A的约束负载Ac来确定每一个节点的轮询间隔T。参数设置单元31以所确定的轮询间隔T来更新由树更新单元15存储的值。另一方面,在第三参数设置方法中,基于相对于树的最大高度hmax的树的高度约束he来确定参数k。[0150]有可能约束时间wc、约束负载Ac和树的高度约束he被经由通信设备7从另一个设备获取,通过连接到输入/输出接口4的用户界面设备的用户操作被输入,或者经由输入/输出接口4从便携存储介质被获取。[0151]在第一参数设置方法中,参数设置单元31使用所获取的约束时间wc、节点11的总数N和由链接生成单元17使用的参数k来计算满足下面的方程1的轮询间隔。而且,在第二参数设置方法中,参数设置单元31使用所获取的约束负载Xc和由链接生成单元17获取的节点的链接目的地节点的数量(程度)D来计算满足下面的方程2的轮询间隔T。在第三参数设置方法中,参数设置单元31使用所获取的树的高度约束he来通过下面的方程3设置参数k。可以从如上所述的每个跳的执行时间延迟(t〇)和执行时间延迟的约束来计算树的高度约束he。【权利要求】1.一种分布式数据管理设备,用于实现在存储多个部分数据单元的多个逻辑节点当中的至少一个对象逻辑节点,其中,划分以属性值顺序排序的数据单元,所述多个部分数据单元中的每一个具有关于每一个属性的值范围,所述对象逻辑节点包括:节点标识符存储单元,所述节点标识符存储单元用于存储在具有环形结构的有限标识符空间中的多个标识符当中的向所述对象逻辑节点分配的标识符作为对象节点标识符,所述多个标识符被分别唯一地分配给多个逻辑节点;数据存储单元,所述数据存储单元用于存储所述多个部分数据单元中的至少一个;链接表,所述链接表用于存储链接信息,所述链接信息指示在所述对象逻辑节点和另一逻辑节点之间的可通信关系,在所述对象逻辑节点和所述链接目的地节点之间的所述链接信息是根据与在所述标识符空间中的与所述对象节点标识符的关系来建立的;值范围存储单元,所述值范围存储单元用于存储关于与在所述数据存储单元上存储的所述部分数据单元相对应的每个属性的值范围边界值,关于所述每个属性的值范围边界位于在所述标识符空间中的所述对象逻辑节点和与所述对象逻辑节点相邻的逻辑节点之间;以及树存储单元,所述树存储单元用于存储关于每个属性的树结构数据单元,所述树结构数据单元包括多个树节点,每一个树节点指示用于识别存储与访问请求相对应的所述部分数据单元的逻辑节点的值范围,所述树结构数据单元包括根树节点,所述根树节点包括通过指向与所述链接目的地逻辑节点相关联的子树节点的指示符和指示用于选择所述指示符的值范围的值形成的至少一个条目。2.根据权利要求1所述的分布式数据管理设备,其中,所述对象逻辑节点进一步包括:树生成单元,所述树生成单元用于从与在所述根树节点中所包括的所述指示符相关联的所述链接目的地逻辑节点获取树数据单元,并且从所获取的树数据单元生成比所述根树节点低的至少一个树节点。3.根据权利要求2所述的分布式数据管理设备,其中,在所述树存储单元上存储的所述树结构数据单元包括多个层和用于每层的树数据单元,第一层的树数据单元包括在所述链接目的地逻辑节点中的、与在所述值范围存储单元上存储的值范围信息相对应的条目,并且比所述第一层高的层L(L至少为2)的一个或多个树数据单元包括所述根树节点,并且所述树生成单元从与在所述根树节点中所包括的所述指示符相关联的所述链接目的地逻辑节点获取在所述链接目的地逻辑节点上存储的层(L-1)的树数据单元,并且从所获取的层(L-1)的树数据单元生成与在层L的所述树数据单元中的所述链接目的地逻辑节点相对应的部分树数据单元。4.根据权利要求3所述的分布式数据管理设备,其中,包括在所述树存储单元上存储的每一个树数据单元的每个树节点包括版本信息,并且所述对象逻辑节点进一步包括:树更新单元,所述树更新单元用于向与在层L的所述根树节点中所包括的所述指示符相关联的所述链接目的地逻辑节点发送版本确认请求,其中,设置了由所述指示符所指向的子树节点的版本信息,并且使用在响应于所述版本确认请求而来自所述链接目的地逻辑节点的答复中包括的树数据单元和版本信息来更新每个树节点和所述每个树节点的版本信息;以及版本比较单元,所述版本比较单元用于从另一逻辑节点接收所述版本确认请求,将在所述版本确认请求中所包括的关于层L的版本信息与由所述对象逻辑节点所拥有的层(L-1)的每一个树数据单元的版本信息作比较,并且向所述另一逻辑节点返回具有不同版本的层(L-1)的树数据单元以及版本信息。5.根据权利要求4所述的分布式数据管理设备,其中,所述对象逻辑节点进一步包括:树搜索单元,所述树搜索单元用于使用基于属性值空间的循环顺序的包含确定来从所述树结构数据单元识别包括要在值范围中搜索的属性值的条目,包括下述情况:关于搜索对象属性的由所述树结构数据中所包括的树节点的第一条目所指示的值范围边界值被指定为在所述搜索对象属性的属性值空间中的参考值,并且从所述参考值到在所述属性值空间中的最大值之间的任意值小于从在所述属性值空间中的最小值到所述参考值之间的任意值。6.根据权利要求5所述的分布式数据管理设备,其中,在每层的所述根树节点中设置不包括在所述属性值空间中的所述属性值的值范围,并且当没有从某个层的所述树数据单元识别包括在值范围中的所述搜索对象属性值的条目时,所述树搜索单元尝试搜索高一级的层的树数据单元,并且当所述高一级的层的所述树数据单元不存在时,所述树搜索单元请求所述树生成单元生成所述高一级的层的所述树数据单元。7.根据权利要求1至6中的任何一项所述的分布式数据管理设备,其中,在所述链接表上存储的所述链接信息包括在所述对象逻辑节点和下述中的每一个之间的多个链接:第一链接目的地逻辑节点,所述第一链接目的地逻辑节点具有通过使所述对象节点标识符乘以参数k(k是自然数)所获得的值或小于或非常接近所述值的标识符;第二链接目的地逻辑节点,所述第二链接目的地逻辑节点具有通过使具有大于或非常接近所述对象节点标识符的标识符的后继逻辑节点的标识符乘以所述参数k所获得的值或小于和接近所述值的标识符;以及至少一个第三链接目的地逻辑节点,所述至少一个第三链接目的地逻辑节点具有在所述标识符空间中从所述第一链接目的地逻辑节点的所述标识符到所述第二链接目的地逻辑节点的所述标识符之间的标识符。8.根据权利要求4至6中的任何一项所述的分布式数据管理设备,其中,所述链接表存储来自所述对象逻辑节点的链接信息,所述链接信息包括到下述中的多个链接:第一链接目的地逻辑节点,所述第一链接目的地逻辑节点具有通过使所述对象节点标识符乘以参数k(k是自然数)所获得的值或小于或非常接近所述值的标识符;第二链接目的地逻辑节点,所述第二链接目的地逻辑节点具有通过使具有大于或非常接近所述对象节点标识符的标识符的后继逻辑节点的标识符乘以所述参数k所获得的值或者小于和非常接近所述值的标识符;以及至少一个第三链接目的地逻辑节点,所述至少一个第三链接目的地逻辑节点具有在所述标识符空间中从所述第一链接目的地逻辑节点的所述标识符到所述第二链接目的地逻辑节点的所述标识符之间的标识符,所述树更新单元以轮询间隔T来发送所述版本确认请求,并且所述对象逻辑节点进一步包括:参数设置单元,所述参数设置单元用于获取直到在所述多个逻辑节点的至少一个中的值范围的改变被发送到所有所述多个逻辑节点的最大时间的系统约束时间或者其中所述逻辑节点中的每一个发送所述版本确认请求的单位时间负载的系统约束负载Ac,并且通过对以下(方程1)或以下(方程2)应用所述获取的系统约束时间或所获取的系统约束负载Ac以及所述逻辑节点的总数N或所述对象逻辑节点的链接目的地节点的数量D:其中,k表示所述参数k。9.根据权利要求7或8所述的分布式数据管理设备,其中,所述参数k被设置为4。10.-种分布式数据操作设备,用于存储与访问请求相对应的部分数据单元,并且将由根据权利要求6所述的分布式数据管理设备所实现的所述对象逻辑节点识别为所述访问请求的地址,所述分布式数据操作设备包括:链接表,所述链接表用于存储能够与包括所述对象逻辑节点的多个链接目的地逻辑节点通信的链路信息;所述树存储单元;所述树更新单元;以及所述树搜索单元。11.一种程序,使得计算机实现在存储多个部分数据单元的多个逻辑节点当中的至少一个对象逻辑节点,其中,划分以属性值顺序排序的数据单元,所述多个部分数据单元中的每一个具有关于每个属性的值范围,所述对象逻辑节点包括:节点标识符存储单元,所述节点标识符存储单元用于存储在具有环形结构的有限标识符空间中的多个标识符当中的向所述对象逻辑节点分配的标识符作为对象节点标识符,所述多个标识符被分别唯一地分配给多个逻辑节点;数据存储单元,所述数据存储单元用于存储所述多个部分数据单元中的至少一个;链接表,所述链接表用于存储链接信息,所述链接信息指示在所述对象逻辑节点和另一逻辑节点之间的可通信关系,在所述对象逻辑节点和所述链接目的地节点之间的所述链接信息是根据与在所述标识符空间中的与所述对象节点标识符的关系来建立的;值范围存储单元,所述值范围存储单元用于存储关于与在所述数据存储单元上存储的所述部分数据单元相对应的每个属性的值范围边界值,关于所述每个属性的值范围边界位于在所述标识符空间中的所述对象逻辑节点和与所述对象逻辑节点相邻的逻辑节点之间;以及树存储单元,所述树存储单元用于存储关于每个属性的树结构数据单元,所述树结构数据单元包括多个树节点,每一个树节点指示用于识别存储与访问请求相对应的所述部分数据单元的逻辑节点的值范围,所述树结构数据单元包括根树节点,所述根树节点包括通过指向与所述链接目的地逻辑节点相关联的子树节点的指示符和指示用于选择所述指示符的值范围的值形成的至少一个条目。12.根据权利要求11所述的程序,其中,所述对象逻辑节点进一步包括树生成单元,所述树生成单元用于从与在所述根树节点中所包括的所述指示符相关联的所述链接目的地逻辑节点获取树数据单元,并且从所获取的树数据单元生成比所述根树节点低的至少一个树节点。13.根据权利要求12所述的程序,其中,在所述树存储单元上存储的所述树结构数据单元包括多个层和用于每层的树数据单元,第一层的树数据单元包括在所述链接目的地逻辑节点中的、与在所述值范围存储单元上存储的值范围信息相对应的条目,并且比所述第一层高的层L(L至少为2)的一个或多个树数据单元包括所述根树节点,并且所述树生成单元从与在所述根树节点中所包括的所述指示符相关联的所述链接目的地逻辑节点获取在所述链接目的地逻辑节点上存储的层(L-1)的树数据单元,并且从所获取的层(L-1)的树数据单元生成与在层L的所述树数据单元中的所述链接目的地逻辑节点相对应的部分树数据单元。14.根据权利要求13所述的程序,其中,包括在所述树存储单元上存储的每一个树数据单元的每个树节点包括版本信息,并且所述对象逻辑节点进一步包括:树更新单元,所述树更新单元用于向与在层L的所述根树节点中所包括的所述指示符相关联的所述链接目的地逻辑节点发送版本确认请求,其中,设置了由所述指示符所指向的子树节点的版本信息,并且使用在响应于所述版本确认请求而来自所述链接目的地逻辑节点的答复中包括的树数据单元和版本信息来更新每个树节点和所述每个树节点的版本信息;以及版本比较单元,所述版本比较单元用于从另一逻辑节点接收所述版本确认请求,将在所述版本确认请求中所包括的关于层L的版本信息与由所述对象逻辑节点所拥有的层(L-1)的每一个树数据单元的版本信息作比较,并且向所述另一逻辑节点返回具有不同版本的层(L-1)的树数据单元以及版本信息。15.根据权利要求14所述的程序,其中,所述对象逻辑节点进一步包括:树搜索单元,所述树搜索单元用于使用基于属性值空间的循环顺序的包含确定来从所述树结构数据单元识别包括要在值范围中搜索的属性值的条目,包括下述情况:关于搜索对象属性的由所述树结构数据中所包括的树节点的第一条目所指示的值范围边界值被指定为在所述搜索对象属性的属性值空间中的参考值,并且从所述参考值到在所述属性值空间中的最大值之间的任意值小于从在所述属性值空间中的最小值到所述参考值之间的任意值。16.根据权利要求15所述的程序,其中,在每层的所述根树节点中设置不包括在所述属性值空间中的所述属性值的值范围,并且当没有从某个层的所述树数据单元识别包括在值范围中的所述搜索对象属性值的条目时,所述树搜索单元尝试搜索高一级的层的树数据单元,并且当所述高一级的层的所述树数据单元不存在时,所述树搜索单元请求所述树生成单元生成所述高一级的层的所述树数据单元。17.根据权利要求11至16的任何一项所述的程序,其中,在所述链接表上存储的所述链接信息包括在所述对象逻辑节点和下述中的每一个之间的多个链接:第一链接目的地逻辑节点,所述第一链接目的地逻辑节点具有通过使所述对象节点标识符乘以参数k(k是自然数)所获得的值或小于或非常接近所述值的标识符;第二链接目的地逻辑节点,所述第二链接目的地逻辑节点具有通过使具有大于或非常接近所述对象节点标识符的标识符的后继逻辑节点的标识符乘以所述参数k所获得的值或小于和接近所述值的标识符;以及至少一个第三链接目的地逻辑节点,所述至少一个第三链接目的地逻辑节点具有在所述标识符空间中从所述第一链接目的地逻辑节点的所述标识符到所述第二链接目的地逻辑节点的所述标识符之间的标识符。18.根据权利要求14所述的程序,其中,所述链接表存储来自所述对象逻辑节点的链接信息,所述链接信息包括到下述中的多个链接:第一链接目的地逻辑节点,所述第一链接目的地逻辑节点具有通过使所述对象节点标识符乘以参数k(k是自然数)所获得的值或小于或非常接近所述值的标识符;第二链接目的地逻辑节点,所述第二链接目的地逻辑节点具有通过使具有大于或非常接近所述对象节点标识符的标识符的后继逻辑节点的标识符乘以所述参数k所获得的值或者小于和非常接近所述值的标识符;以及至少一个第三链接目的地逻辑节点,所述至少一个第三链接目的地逻辑节点具有在所述标识符空间中从所述第一链接目的地逻辑节点的所述标识符到所述第二链接目的地逻辑节点的所述标识符之间的标识符,所述树更新单元以轮询间隔T来发送所述版本确认请求,并且所述对象逻辑节点进一步包括:参数设置单元,所述参数设置单元用于获取直到在所述多个逻辑节点的至少一个中的值范围的改变被发送到所有所述多个逻辑节点的最大时间的系统约束时间或者其中所述逻辑节点中的每一个发送所述版本确认请求的单位时间负载的系统约束负载Ac,并且通过对以下(方程1)或以下(方程2)应用所述获取的系统约束时间或所获取的系统约束负载Ac以及所述逻辑节点的总数N或所述对象逻辑节点的链接目的地节点的数量D:其中,k表示所述参数k。19.根据权利要求17或18所述的程序,其中,所述参数k被设置为4。20.-种分布式数据管理设备,用于实现在存储多个部分数据单元的多个逻辑节点中的至少一个对象逻辑节点,其中,划分数据单元,所述对象逻辑节点包括:节点标识符存储单元,所述节点标识符存储单元用于存储在具有环形结构的有限标识符空间中的多个标识符当中的向所述对象逻辑节点分配的标识符作为对象节点标识符,所述多个标识符被分别唯一地分配给多个逻辑节点;数据存储单元,所述数据存储单元用于存储所述多个部分数据单元中的至少一个;以及链接表,所述链接表用于存储链接信息,所述链接信息指示在所述对象逻辑节点和另一逻辑节点之间的可通信关系,所述链接信息包括在所述对象逻辑节点和下述中的每一个之间的多个链接:第一链接目的地逻辑节点,所述第一链接目的地逻辑节点具有通过使所述对象节点标识符乘以参数k(k是自然数)所获得的值或小于或非常接近所述值的标识符;第二链接目的地逻辑节点,所述第二链接目的地逻辑节点具有通过使具有大于或非常接近所述对象节点标识符的标识符的后继逻辑节点的标识符乘以所述参数k所获得的值或小于和接近所述值的标识符;以及至少一个第三链接目的地逻辑节点,所述至少一个第三链接目的地逻辑节点具有在所述标识符空间中从所述第一链接目的地逻辑节点的所述标识符到所述第二链接目的地逻辑节点的所述标识符之间的标识符。21.-种分布式数据管理方法,其中,计算机用于实现在存储多个部分数据单元的多个逻辑节点中的至少一个对象逻辑节点,其中,划分数据单元,所述对象逻辑节点包括:节点标识符存储单元,所述节点标识符存储单元用于存储在具有环形结构的有限标识符空间中的多个标识符当中的向所述对象逻辑节点分配的标识符作为对象节点标识符,所述多个标识符被分别唯一地分配给多个逻辑节点;以及数据存储单元,所述数据存储单元用于存储所述多个部分数据单元中的至少一个,生成链接信息,所述链接信息指示在所述对象逻辑节点和另一逻辑节点之间的可通信关系,所述链接信息包括在所述对象逻辑节点和下述中的每一个之间的多个链接:第一链接目的地逻辑节点,所述第一链接目的地逻辑节点具有通过使所述对象节点标识符乘以参数k(k是自然数)所获得的值或小于或非常接近所述值的标识符;第二链接目的地逻辑节点,所述第二链接目的地逻辑节点具有通过使具有大于或非常接近所述对象节点标识符的标识符的后继逻辑节点的标识符乘以所述参数k所获得的值或小于和接近所述值的标识符;以及至少一个第三链接目的地逻辑节点,所述至少一个第三链接目的地逻辑节点具有在所述标识符空间中从所述第一链接目的地逻辑节点的所述标识符到所述第二链接目的地逻辑节点的所述标识符之间的标识符。【文档编号】G06F12/00GK104487951SQ201380037661【公开日】2015年4月1日申请日期:2013年3月15日优先权日:2012年5月15日【发明者】中台慎二申请人:日本电气株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1