CN104487951A - 分布式数据管理设备和分布式数据操作设备 - Google Patents
分布式数据管理设备和分布式数据操作设备 Download PDFInfo
- Publication number
- CN104487951A CN104487951A CN201380037661.5A CN201380037661A CN104487951A CN 104487951 A CN104487951 A CN 104487951A CN 201380037661 A CN201380037661 A CN 201380037661A CN 104487951 A CN104487951 A CN 104487951A
- Authority
- CN
- China
- Prior art keywords
- node
- tree
- value
- identifier
- data cell
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2246—Trees, e.g. B+trees
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2272—Management thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0644—Management of space entities, e.g. partitions, extents, pools
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Information Transfer Between Computers (AREA)
- Computer And Data Communications (AREA)
Abstract
由分布式数据管理设备实现的对象逻辑节点包括:存储单元,用于存储对象节点标识符,每一个对象节点标识符被唯一地分配到多个逻辑节点;存储单元,用于存储所述多个部分数据单元的至少一个;链接表,用于存储在对象逻辑节点和链接目的地逻辑节点之间的链接信息;存储单元,用于存储相对于与所述部分数据单元对应的每一个属性的值范围边界值;以及,存储单元,用于存储相包括多个树节点的相对于每一个属性的树结构数据单元,每一个树节点指示值范围,所述值范围用于识别存储与访问请求对应的所述部分数据单元的所述逻辑节点,所述树结构数据单元包括根树节点,所述根树节点包括使用指向与链接目的地逻辑节点相关联的子树节点的指示符和用于指示用于选择所述指示符的值范围的值形成的至少一个条目。
Description
技术领域
本发明涉及对于以属性值顺序排序的数据单元的分布式管理技术。
背景技术
作为由应用程序或数据库***等使用的数据结构,存在被称为相关联阵列、键值存储、映射和从关键字获取值的存储引擎的已知结构。而且,这样的数据结构被分类为其中关键字通过其值排序的数据结构和其中关键字未或被排序地存储的数据结构。在其中未执行排序的配置中,基于通过将关键字散列化而获得的值来确定关键字的数据存储目的地。另一方面,在其中执行排序的配置中,每一个存储目的地与用于处理为值范围数据单元的值范围相关联,并且因此从该值范围数据单元和关键字确定数据存储目的地。
NPL 1提出了一种在信息***中的值范围管理方法的一个示例。在NPL 1的示例中,被称为Bigtable的***包括存储多个数据单元的平板服务器、Bigtable主机、作为集中式服务器的Chubby、元数据平板服务器和客户端。每一个平板服务器存储作为平板的特定值范围的数据单元。Bigtable主机通过B+树来管理其中存储平板的平板服务器,在多个元数据平板服务器上存储构成B+树的多个部分树,并且在Chubby上存储与根对应的部分树。当改变由平板服务器管理的平板时,向主机通知该改变。访问这个Bigtable的客户端通过访问Chubby来获取B+树的根,并且然后从要高速缓存的元数据平板服务器获取其部分树。在该高速缓存有效的同时,客户端可以本地识别与键值对应的平板服务器。当改变由平板服务器处理的平板时,在客户端上的高速缓存变得无效。但是非如此直到客户端访问与客户端检测到该无效时的键值对应的平板服务器,并且然后向元数据平板服务器查询关于有效信息。
NPL 2提出了该值范围管理方法的另一个示例。在NPL 2的示例中,被称为Baton的***包括多个P2P(对等)节点。每一个节点存储具有连续的值范围的数据单元。每一个节点与另一个节点具有链接关系,并且这个链接关系整体形成平衡树。每一个节点包括到与在树结构中的父节点对应的节点的链接、到与子节点对应的节点的链接和到同一层的相邻节点的链接。关于到同一层的相邻节点的链接,也管理相对于每一个链接目的地的值范围。在已经获取了对于给定值的访问请求时,某个节点确定有意在同一层中的相邻节点处理的值范围的哪个包括该值,并且然后将访问请求传送到该确定的节点。当传送目的地的节点继续类似的处理时,检测到具有与该值对应的数据单元的节点。当新增加节点或节点离开思,在节点之间的链接关系被依序改变以保持平衡树。而且,当因为在节点之间的不一致导致存储的数据单元的分布变形时,每一个节点改变值范围和链接关系,以便使得数据分布均匀。
[引用列表]
[非专利文献]
[NPL 1]
Fay Chang,Jeffrey Dean,Sanjay Ghemawat,Wilson C.Hsieh,Deborah A.Wallach Mike Burrows,Tushar Chandra,Andrew Fikes,Robert E.Gruber,"Bigtable:A Distributed Storage System For StructuredData",Symposium on Operating Systems Design(SOSP)2006,2006/11/6-8.
[NPL 2]
H.V.Jagadish,Beng Chin Ooi,Quang Hieu Vu,"BATON:ABalanced Tree Structure for Peer-to-Peer Networks",Very large data bases(VLDB)2005,2005/8/30-9/2
发明内容
[技术问题]
然而,上面的值范围管理方法具有如下所述的问题。
在NPL 1的方法中,当例如存储数据单元的节点的值范围改变时,客户端的数据访问时间增大。原因是客户端在执行对于数据单元的访问时检测数据存储节点的值范围的改变。换句话说,在该检测后,客户端从元数据服务器获取新的值范围,并且然后重新执行数据访问,并且因此,该通信延迟被作为已经花费的数据访问时间。
为了解决该问题,可设想向NPL 1的方法增加其中客户端周期地对于元数据服务器查询关于值范围的配置。然而,根据这样的配置,在***内的多个公共研究所服务器以预定间隔从所有客户端接收请求,并且随着在客户端的数量上的增大,元数据服务器的负载和在***内的通信负载增大,导致整个***的性能的变差。
而且,在NPL 2的方法中,当例如从P2P节点向另一个节点依序传送数据访问请求时,检测存储要访问的数据单元的节点,并且因此,数据访问处理的时间趋向于增大。而且,在NPL 2的方法中,根据相对于每一个属性或节点的负载的值范围来更新在节点之间的链接关系,并且因此,随着在***内处理的属性的数量上的增大,在P2P节点之间的链接关系的数量增大,导致用于该关系的管理和更新的负载和生成其中故障进一步容易出现的情况的可能性的增大。
鉴于如上所述的情况,本发明已经被完成并且意欲提供一种分布式数据管理技术,所述分布式数据管理技术用于通过抑制在以属性值顺序排序的数据单元的分布式管理的***中的负载而减少数据访问时间。
[对于问题的解决方案]
本发明的各个方面每一个使用下面的配置来解决上面的问题。
第一方面涉及一种分布式数据管理设备,用于实现在存储多个部分数据单元的多个逻辑节点中的至少一个对象逻辑节点,其中,划分以属性值顺序排序的数据单元,所述多个部分数据单元每一个包括相对于每一个属性的值范围。由根据第一方面的所述分布式数据管理在获得的所述对象逻辑节点包括:节点标识符存储单元,用于存储作为对象节点标识符的、在多个标识符中的向对象逻辑节点分配的标识符,所述多个标识符被分别唯一地分配到在具有环形结构的有限标识符空间中的多个逻辑节点;数据存储单元,用于存储所述多个部分数据单元的至少一个;链接表,用于存储链接信息,所述链接信息用于指示在所述对象逻辑节点和另一个逻辑节点之间的可通信关系,根据与在所述标识符空间中的所述对象节点标识符的关系来建立在所述对象逻辑节点和所述链接目的地节点之间的所述链接信息;值范围存储单元,用于存储相对于与在所述数据存储单元上存储的所述部分数据单元对应的每一个属性的值范围边界值,相对于所述每一个属性的值范围边界位于在所述标识符空间中的所述对象逻辑节点和与所述对象逻辑节点相邻的逻辑节点之间;以及,树存储单元,用于存储相对于每一个属性的树结构数据单元,所述树结构数据单元包括多个树节点,每一个树节点指示用于识别用于存储与访问请求对应的所述部分数据单元的逻辑节点的值范围,所述树结构数据单元包括根树节点,所述根树节点包括使用指向与所述链接目的地逻辑节点相关联的子树节点的指示符和用于指示用于选择所述指示符的值范围的之后形成的至少一个条目。
本发明的另一个方面可以是使得计算机获得如上所述的对象逻辑节点的程序或者可以是被记录了这样的程序的计算机可读记录介质。这个记录介质包括永久有形介质。
根据上面的方面,在用于以属性值顺序排序的数据单元的分布式管理的***中,可以提供用于通过禁止负载来减少数据访问时间的分布式数据管理技术。
附图说明
通过下面结合下面的附图描述优选实施例,上述目的和其他目的以及特征和优点将变得更清楚。
图1是示意地图示在第一实施例中的分布式***的配置示例的视图。
图2是示意地图示在第一实施例中的数据服务器的处理配置示例的视图。
图3是示意地图示在逻辑节点之间的链接关系的示例的视图。
图4是示意地图示作为参考的包括在图3中所示的节点N(1)的链接关系的视图。
图5是示意地图示在ID环和值范围信息之间的关系的视图。
图6A是示意地图示在管理形式3中的、基于图3和图4的链接示例的节点N(1)的树结构数据单元的示例的视图。
图6B是示意地图示在管理形式6中的、基于图3和图4的链接示例的节点N(1)的树结构数据单元的示例的视图。
图7是图示在第一实施例中的树生成单元的操作示例的流程图。
图8是图示在第一实施例中的树更新单元和版本比较单元的操作示例的流程图。
图9是图示在第一实施例中的树搜索单元的操作示例的流程图。
图10是图示在第一实施例中的树搜索单元中的、用于从层L的树数据单元识别地址节点的操作的示例的流程图。
图11是示意地图示在第二实施例中的数据服务器的处理配置示例的视图。
图12是示意地图示在第三实施例中的分布式***的配置示例的视图。
图13是示意地图示在第三实施例中的数据操作客户端的处理配置示例的视图。
图14是示意地图示在示例1中的ID环和值范围信息之间的关系的视图。
图15是图示在示例1中生成的链接关系的一部分的视图。
图16是图示由在示例1中的每一个节点11生成的树结构数据单元的一部分的视图。
图17是示意地图示在示例1中的负载分散的示例的视图。
图18是示意的图示在示例1中的负载分散后的节点(980)的树结构数据单元的示例的视图。
图19是示意地图示在示例1中的节点(413)的版本更新后的树结构数据单元的示例的视图。
具体实施方式
现在描述本发明的实施例。下面给出的实施例是说明性的,并且本发明不限于下面的实施例的配置。
根据本实施例的一种分布式数据管理设备实现在存储多个部分数据单元的多个逻辑节点中的至少一个对象逻辑节点,其中,划分以属性值顺序排序的数据单元,该多个部分数据单元每一个具有相对于每一个属性的值范围。在本实施例中的对象逻辑节点包括:节点标识符存储单元,用于存储对象节点标识符;数据存储单元,用于存储部分数据单元;链接表,用于存储在对象逻辑节点和链接目的地逻辑节点之间的链接信息;值范围存储单元,用于存储与在数据存储单元上存储的部分数据单元对应的相对于每一个属性的值范围边界值;以及,树存储单元,用于存储相对于每一个属性的树结构数据单元,其包括根树节点,该根树节点包括至少一个条目,该至少一个条目包括指向与链接目的地逻辑节点相关联的子树节点的指示符和用于指示用于选择该指示符的值范围的值。
该逻辑节点指的是诸如任务、进程和实例等的软件元素,并且被诸如根据本实施例的分布式数据管理设备的计算机实现。而且该对象节点标识符指的是在多个标识符中的向对象逻辑节点分配的标识符,该多个标识符的每一个被唯一地分配到在具有环形结构的有限标识符空间中的多个逻辑节点。换句话说,每一个逻辑节点被平方唯一标识符(以下,也被表达为节点ID或ID)。具有环形结构的有限标识符空间指的是以下述方式限定的标识符空间:在该空间中,最大标识符被最小标识符跟随。
对象逻辑节点根据在标识符空间中在对象节点标识符和另一个标识符之间的关系来建立与另一个逻辑节点(链接目的地逻辑节点)的链接。链接建立意味着对象逻辑节点变得与链接目的地逻辑节点可通信,并且通过例如IP(因特网协议)地址的相互拥有而被实现。本实施例不限制用于实现该链接的任何方法。
以这种方式,在本实施例中,在用于数据单元的分布式管理的多个逻辑节点中,构造基于节点ID的拓扑。
另一方面,每一个逻辑节点管理与类似于上面的值范围存储单元存储的部分数据单元对应的值范围信息。因此,相对于每一个属性的值范围边界位于在标识符空间中的彼此相邻的逻辑节点之间。换句话说,根据节点ID空间的环形结构来确定相对于由每一个逻辑节点处理的每一个属性的值范围。由此,以与在节点ID空间中的相同的方式,可以管理相对于每一个属性的属性值空间,使得具有循环顺序(环形结构)。这也指的是下述配置,其中,通过在节点ID空间的链接拓扑上叠加属性值空间的值范围信息视图来执行管理。该配置使得有可能通过下述方式响应于值范围改变,而不改变节点ID空间的链接拓扑:仅改变与其重叠的值范围信息视图。
在值范围存储单元上存储的值范围边界值可以是由对象逻辑节点存储的部分数据单元的值范围的开始点、该值范围的终点或该值范围的开始点和终点的组合。而且,值范围存储单元可以存储不仅对象逻辑节点的值范围边界值,而且存储由对象逻辑节点的相邻节点存储的部分数据单元的值范围边界值。
在本实施例中,对象逻辑节点存储使用每一个逻辑节点的这样的值范围反映的树结构数据单元,并且当引用在这个树结构数据单元中存储的树节点的条目时,识别用于存储包括任意属性值的部分数据单元的逻辑节点。在本实施例中,如上所述,在树结构数据单元中包括的根树节点的条目包括指向与链接目的地逻辑节点相关联的子树节点的指示符。
以这种方式,使用在基于ID构造的拓扑上的逻辑节点之间的链接关系来反映在本实施例中的树结构数据单元,并且因此,对象逻辑节点可以在搜索树结构数据单元的同时立即识别链接目的地逻辑节点。由此,本实施例使得容易实现用于从链接目的地逻辑节点获取值范围信息的形式和用于链接目的地节点m由链接目的地逻辑节点包括的值范围信息的形式等。使用这样的像素的任何一种,对象逻辑节点不需向给定服务器查询关于值范围改变,并且因此,可以防止在这样的给定服务器上的负载集中。
而且,在本实施例中,当引用如上所述由其本身存储的树结构数据单元时,逻辑节点可以识别用于存储期望的值范围的逻辑节点,并且因此,用于数据访问请求的节点之间的传送变得不必要。结果,可以防止在与数据访问请求的节点之间传送相关联的数据访问时间上的增大。
下面更详细地描述上面的实施例。
[第一实施例]
[***配置]
图1是示意地图示在第一实施例中的分布式***1的配置示例的视图。在第一实施例中的分布式***1包括多个数据服务器10。数据服务器10经由网络9可通信地彼此连接。数据服务器10对应于在上述实施例中的分布式数据管理设备。数据服务器10根据应用或来自另一个终端的请求来访问在数据服务器10上存储的数据单元,以获取期望的数据单元。
数据服务器10是缩微的计算机,并且包括经由例如总线5彼此连接的CPU(中央处理单元)2、存储器3和输入/输出接口(I/F)4。存储器3是RAM(随机存取存储器)、ROM(只读存储器)、硬盘或便携存储介质等。输入/输出接口4经由网络9连接到用于与另一个数据服务器10进行通信的通信设备7、数据操作客户端50和另一个终端等。输入/输出接口4可以连接到用户界面设备,诸如显示设备和输入设备等。本实施例不限制数据服务器10的硬件配置。
[设备配置]
图2是示意地图示在第一实施例中的数据服务器10的处理配置示例的视图。如图2中所示,数据服务器10包括数据操作单元12、树搜索单元13、树生成单元14、树更新单元15、版本比较单元16和至少一个逻辑节点11。每一个逻辑节点包括链接生成单元17、节点ID存储单元18、链接表19、树存储单元20、数据访问单元21、数据存储单元22和值范围存储单元23。
通过使用CPU 2来执行在存储器3上存储的程序来实现这些处理单元。从诸如CD(致密盘)和存储卡25等的便携记录介质或经由输入/输出接口4从在网络上的另一个计算机安装该程序,并且在存储器3上存储该程序。在图2的示例能量,逻辑节点11和相应的处理单元数据操作单元12至16被图示为不同的软件元件、但是可以对于每一个逻辑节点11提供处理单元12至16。以下,逻辑节点11也被简单地表达为节点11。
<逻辑节点>
将描述在每一个节点11中包括的相应的处理单元的每一个。
节点ID存储单元18对应于在上面的实施例中的节点标识符存储单元。换句话说,节点ID存储单元18存储向在具有环形结构的有限ID空间中的每一个节点11分配的节点ID。作为例如节点ID,使用对应的服务器的ID地址的散列值。
链接表19存储如在上面的实施例中所述的在节点11和另一个节点之间的链接关系。在第一实施例中的链接表19存储关于其他节点的每一个的节点ID和与该节点对应的IP地址以及与本身节点11的链接关系。与每一个节点对应的IP地址指的是用于与相应的节点进行通信的IP地址,并且例如是其中实现相应的节点的数据服务器10的IP地址。而且,在链接表19上存储的链接关系包括是否使用本身节点11来建立链接的信息和当进行乐链接建立时用于识别链接的编号(链接的顺序等)。
链接生成单元17基于在分布式***1中的本身节点11的ID和另一个任意节点之间的ID之间在空间上的距离来构造链接关系,并且反映在链接表19中的内容。对于链接关系的该构造(ID拓扑的构造),例如,使用Chord算法或Koorde算法等。第一实施例不限制用于当构造拓扑以便在有限ID空间中具有环形结构时构造ID拓扑的方法。
图3是示意地图示在逻辑节点11之间的链接关系的示例的视图。图4是示意地图示包括作为参考的在图2中所示的节点N(1)的链接关系的视图。在图3和图4的示例中,节点N(1)与节点N(3)和节点N(4)链接,并且节点N(3)与节点N(5)、节点N(6)和节点N(7)链接,并且节点N(4)与节点N(7)和节点N(8)链接。
另一方面,如图3的示例中所示,ID空间具有环形结构。以下,该环形结构也被表达为ID环。在该ID环上,关于每一个节点11,具有大于并且也最接近本身节点11的ID的ID的节点11被表达为后继节点或Suc节点,并且,具有小于或也最接近本身节点11的ID的ID的节点11被表达为前任节点或Pred节点。在ID环上,具有在ID空间中的最大值的节点ID的节点11将具有在ID空间中的最小值的节点ID的节点11看作Suc节点,并且具有在ID空间中的最小值的节点ID的节点11将具有在ID空间上的最大值的节点ID的节点11看作Pred节点。在ID环上的这样的链接关系可以被节点ID值立即识别,并且因此不必被存储在链接表19上或可以连同在如上所述在ID空间中不彼此相邻的节点之间的关系被存储在链接表19上。
以下,在ID环上的相邻节点11被表达为Suc节点或Pred节点,并且,其中不在ID环上相邻地建立链接的节点11被表达为链接目的地节点。而且,如图4中所示,从特定节点11到通过跟随链接而达到的另一个节点的距离被表达为跳。换句话说,直接地与某个对象节点11链接的节点被表达为对象节点11的第一跳的链接目的地节点,并且直接地与第一跳的链接目的地节点链接的节点被表达为对象节点11的第二跳的链接目的地节点。
数据存储单元22存储在多个部分数据单元之间的部分数据单元的一部分,其中,划分以属性值顺序排序的数据单元,如在上面的实施例中所述。在本实施例中处理的数据单元是使用多个列(元组)配置的数据单元,每一个列包括多行(属性)。例如,本实施例不限制数据单元的形式。例如,所存储的属性值可以是其中通过多个属性值的空间填充曲线处理获得一维值的那些。而且,当例如本实施例被应用到数据流***或公布/预订(Pub/Sub)***时,数据单元可以是条件方程等而不是数据单元本身。在这样的***中,被看作用于对于数据库搜索数据单元的条件的搜索密钥的值或范围等变为要检测的数据单元。换句话说,当作为一个条件方程(预订)来提供意欲检测的温度的范围时,该范围被设置为作为(×0,×l)=(下限值,上限值)的二维值,并且然后被存储为通过被允许为一维而获得的值。当提供多个条件方程时,在协同性上存储多个一维值,每一个一维值表示每一个条件方程。当给定属性值的数据单元被公布到***,并且然后被通知到与诸如包括在条件中的属性值的那个的条件方程对应的通知目的地时,搜索多维范围,其中,在[-∞,属性值]的范围中包括×0,并且在[属性值,∞]的范围中包括×l。可以通过下述方式来实现这一点:从先前存储的多个条件方程搜索在与这个多维空间对应的一维范围中包括的条件方程。以这种方式,本实施例不仅适用于数据搜索,而且以相同的方式适用于作为条件的包括范围的Pub/Sub。
在数据存储单元22上存储的部分数据单元每一个具有相对于每一个属性的值范围。
值范围存储单元23存储作为元数据单元的、在另一个节点上的相对于每一个属性的值范围的边界值,与该另一个节点一起划分数据单元,如在上面的实施例中所述。其中与给定的节点一起划分值范围的另一个节点是相邻节点,该相邻节点具有在相对于在ID空间中的给定节点的ID的距离上最近的ID。如上所述,在每一个节点中存在关于在值范围存储单元23上存储的值范围边界值的各种形式。存在例如:一种形式,其中,关于与由本身节点存储的部分数据单元对应的值范围,值范围的开始点被管理为值范围边界值(管理形式1);一种形式,其中,将值范围的终点管理为值范围边界值(管理形式2);以及,一种形式,其中,管理开始点和终点(管理形式3)。而且,可设想:一种形式,其中,管理与由Suc节点存储的部分数据单元对应的值范围的开始点和终点两者(管理形式4);一种形式,其中,管理与由Pred节点存储的部分数据单元对应的值范围的开始点和终点两者(管理形式5);一种形式,其中,管理关于本身节点和Suc节点的每一个的值范围的开始点和终点两者(管理形式6);以及,一种形式,其中,管理关于本身节点和Pred节点的每一个的值范围的开始点和终点两者(管理形式7);等等。
期望通过***要求来选择管理形式。当例如期望最简单的配置时,可选择管理形式1或2。而且,在其中例如需要数据一致性的***中,可选择管理形式3、6或7。在这样的***中,在相邻节点之间同步值范围边界值。而且,在其中例如需要较高的故障抵抗力的***中,根据作为本身节点的辅助节点(备份节点)的相邻节点(Suc节点或Pred节点)可选择管理形式4、5、6或7。在这样的***中,对象节点的相邻节点(Suc节点或Pred节点)管理对象节点的值范围信息。本实施例不限制在每一个节点中管理的这样的值范围信息的形式。
图5是示意地图示在ID环和值范围信息之间的关系的视图。在图5的示例中的管理形式2的使用中,节点N(0)存储关于具有相邻节点N(1)的值范围的边界的值范围边界值(25),并且,节点N(1)存储关于具有相邻节点N(2)的值范围的边界的值范围边界值(32)。即使当任何管理形式以这种方式被用作值范围信息的管理形式时,根据ID的环形结构来确定相对于由每一个节点处理的每一个属性的值范围,并且因此,有可能以与节点ID空间相同的方式来管理作为具有循环顺序(环形结构)者的属性值空间。
根据这个循环顺序,当在给定的属性中将特定值范围边界值指定为参考值(在循环顺序中的开始点)时,从参考值到在属性值空间中的最大值的某处的任意值小于从在属性值空间中的最小值到参考值的某处的任意值。根据在图5的示例中的循环顺序,在考虑由节点N(6)到节点N(8)每一个处理的属性值的范围时,当由节点N(6)处理的值范围边界值(175)被指定为参考值时,将属性值(5)确定为大于由节点N(6)处理的值范围边界值(175)。而且,将属性值(200)确定为大于由节点N(6)拥有的值范围边界值(175),并且小于由节点N(7)拥有的值范围边界值(3)。树搜索单元13等例如使用在属性值空间中的这样的循环顺序。
数据访问单元21接收对于本身节点11的数据访问请求,并且然后确定在值范围存储单元23上存储的由本身节点11处理的值范围中是否包括在请求中包括的属性值或属性值的范围。在不包括的情况下,数据访问单元21向请求的请求者发出无效的答复,并且当所包括的属性值或属性值的范围存在时,允许用于数据存储单元22的任意处理,并且然后向请求的请求者返回结果。
树存储单元20存储相对于每一个属性的树结构数据单元,其包括多个树节点,每一个树节点指示值范围,如在上面的实施例中所述。在第一实施例中在树存储单元20上存储的树结构数据单元包括多层,并且每层包括树数据单元。以下,为了与逻辑节点11相区别,作为构成该树结构数据单元的元素的节点将被表达为树节点。而且,为了与由树结构数据单元拥有的层相区别,由在树结构数据单元中包括的相应层中的每一个树数据单元拥有的层将被表达为级。
树节点根据现有的级被区分为根树节点、分支树节点或叶树节点。根节点和分支节点每一个包括指向低一级的节点(子树节点)的指示符,并且叶节点包括指向能够识别作为数据存储目的地的逻辑节点11的数据单元的指示符。每一个树节点包括条目,该条目包括这样的指示符和用于识别用于选择这样的指示符的范围的值范围信息。
在第一实施例中的树节点具有与诸如B树等的用于数据搜索的现有树数据结构类似的结构以及下面的结构。具体地说,在每一个树数据单元的每一个根树节点中,可以设置不包括在对象属性中的属性值的属性值的范围。传统的树数据结构包括一个树数据单元,并且因此,在在根树节点中,设置包括在对象属性中的所有属性值的属性值的范围。另一方面,在第一实施例中的每层的每一个根树节点支持在对象属性中的所有属性值的分组的一部分,并且,所有层的所有根树节点支持在对象属性中的全部属性值的范围。
从在值范围存储单元23中的由本身节点拥有的值范围信息生成第一层(层0)的树数据单元。因此,层0的树数据单元的配置对应于如上所述的值范围信息的管理形式。因此,例如,使用包括如下所述的三个条目的根树节点来形成管理形式6的层0的树数据单元。在该情况下,根树节点包括叶树节点的布置。第一条目包括由本身节点处理的值范围的开始点(由本身节点的Pred节点处理的值范围的终点)和指向能够识别本身节点的数据单元的指示符。第二条目包括由本身节点处理的值范围的终点(由本身节点的Suc节点处理的值范围的开始点)和指向能够识别本身节点的Suc节点的数据单元的指示符。第三条目包括由本身节点的Suc节点处理的值范围的终点,并且不包括值(空)。以下将能够识别特定节点的数据单元表达为节点识别数据单元,并且对于节点识别数据单元,例如,使用节点ID。
从在值范围存储单元23中的由链接目的地节点拥有的值范围信息生成第二层(层1)的树数据单元。因此,层1的树数据单元的配置叶对应于如上所述的值范围信息的管理形式。例如,管理形式4的层1的树数据单元包括如下所述的多个条目。在每一个条目中,设置由每一个链接目的地节点处理的值范围的终点和指向链接目的地节点的Suc节点的节点识别数据单元的指示符,并且,对于最后条目的值范围边界值,设置由最后链接目的地节点的Suc节点处理的值范围的终点,并且对于指示符,设置空。最后链接目的地节点指的是在多个链接目的地节点中的具有最大ID之后的链接目的地节点。
层L(L是至少2的整数)的树数据单元被使用关于第L跳的每一个链接目的地节点的信息形成,并且具有L级配置。层L的树数据单元的根树节点包括至少一个条目,该条目包括指向与链接目的地节点相关联的子树节点的指示符和用于指示用于选择这个指示符的值范围的值。当可以从指示符获取对应的链接目的地节点的节点识别接收单元(例如,节点ID)时,将指向子树节点的指示符与链接目的地节点相关联的形式不被限制。从在链接目的地节点中的层(L-1)的树数据单元生成比层L的根树节点低的树节点。以下将描述该生成方法。
图6A是示意地图示在管理形式3中的、基于图3和图4的链接示例的节点N(1)的树结构数据单元的示例的视图。图6B是示意地图示乐在管理形式6中的、基于图3和图4的链接示例的节点N(1)的树结构数据单元的示例的视图。图6A和图6B的每一个的左侧的三角形指示每层,并且,在右侧上图示了在每层中的树数据单元。图6A和图6B的每一个的箭头指示指示符,并且该箭头的目的地指示节点识别数据单元。而且,N(x).sV指示节点N(x)的值范围开始点,并且N(x).eV指示节点N(x)的值范围终点。图6A和图6B的示例每一个图示了由节点N(1)存储的树结构数据单元,并且该树结构数据单元包括三层的树数据单元。图6A或图6B未图示其中设置了空的部分。
下面将描述在图6A中图示的每层的树数据单元。
在层0的树数据单元中,设置本身节点的值范围开始点(N(1).sV)和本身节点的值范围终点(N(1).eV)和指向本身节点的节点识别数据单元的指示符。
在层1的树数据单元的相应条目中,设置下面的数据单元。对于第一条目的值范围边界值,设置作为链接目的地节点的节点N(3)的值范围开始点(N(3).sV),并且对于在第一条目中的指示符,设置指向节点N(3)的节点识别数据单元的指示符。对于第二条目的值范围边界值,设置作为链接目的地节点的节点N(4)的值范围开始点(N(4).sV),并且对于在第二条目中的指示符,设置指向节点N(4)的节点识别数据单元的指示符。对于第三条目的值范围边界值,设置节点N(4)的值范围开始点(N(4).sV),并且对于在第三条目中的指示符,设置空。
层2的树数据单元包括根树节点和两个叶树节点,并且根树节点包括指向与作为链接目的地节点的节点N(3)和节点N(4)相关联的子树节点(叶树节点)的两个指示符。使用作为作为参考的从节点N(1)的第二跳的链接目的地节点的节点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)的值范围的条目。
下面将描述在图6B中图示的每层的树数据单元。在图6B的层0的树数据单元中,除了图6A的配置之外,设置指向节点识别数据单元的字汇怎和关于作为本身节点N(1)的Suc节点的节点N(2)的值范围的终点。在层1的树数据单元中,除了图6A的配置之外,设置指向节点识别数据单元的指示符和关于作为最后的链接目的地节点N(4)的Suc节点的节点N(5)的值范围的终点。在层2的树数据单元中,除了图6的配置之外,设置指向节点识别数据单元的指示符和关于作为第二跳的最后链接目的地节点N(8)的Suc节点的节点N(9)的值范围的终点。
以这种方式,以与在每一个节点中的值范围信息的管理形式对应的形式来生成每层的树数据单元。然而,存在下述一致性:从在值范围存储单元23中的由本身节点拥有的值范围信息生成层0的树数据单元,从在值范围存储单元23中的由链接目的地节点拥有的值范围信息生成层1的树数据单元,并且,从链接目的地节点的层(L-1)的树数据单元生成层L(L至少是1)的树数据单元。而且,随着树数据单元的层数量减少,在该树数据单元中反映的值范围信息的新鲜度增加。
而且,每一个树数据单元的每一个树节点具有版本信息。根据值范围改变来更新该版本信息。该版本信息被版本比较单元16等使用。
数据操作单元12从要阿比应用程序获取的要操作的数据单元的确定条件或来自用户界面设备的输入等获取对象属性和属性值或属性值的范围,检测与该属性值或属性值的范围对应的节点11,并且执行对于节点11的数据访问处理。通过向树搜索单元13发送对象属性或属性值或属性值的范围来从树搜索单元13获取对应的节点11。当数据访问已经失败时,数据操作单元12再一次向树搜索单元13查询关于数据访问地址的节点。
当从数据操作单元12获取对象属性或属性值或属性值的范围时,树搜索单元13从树存储单元20获取关于任意节点的指定属性的树结构数据单元,并且从该树结构数据单元识别用于存储与属性值或属性值的范围对应的部分数据单元的节点11。当未识别节点11或不存在树结构数据单元的某个层的树数据单元时,树搜索单元13请求树生成单元14生成树数据单元。将在操作示例的部分中详细说明树搜索单元13的详细处理。
树生成单元14如上所述生成树结构数据单元。当生成在对象节点11中的层L(L至少是2)的树数据单元时,树生成单元14从对象节点11的链接表19获取链接目的地节点的通信地址,并且使用该通信地址从链接目的地节点获取在链接目的地节点的树存储单元20上存储的层(L-1)的树数据单元。当生成在对象节点11中的层1的树数据单元时,树生成单元14可以获取在链接目的地节点的树存储单元20上存储的层0的树数据单元,或者可以获取在链接目的地节点的值范围存储单元23上存储的值范围信息。将在操作示例的部分中详细描述树生成单元14的详细处理。
通过每一个节点11的负载或在每一个节点11上存储的数据量的平衡等来改变向每一个节点11分配的每一个属性的值范围。另一方面,每一个节点11叶通过在树存储单元20上存储的树结构数据单元来管理关于另一个节点的值范围信息。因此,虽然存在已经在另一个节点中改变了值范围的情况,但是生成其中在特定节点11的树结构数据单元中未反映值范围改变的情况。在这样的情况下,有可能树搜索单元13识别不适当的节点11,即,不存储与对象的属性值或属性值的范围对应的部分数据单元的节点11。
为了尽可能减少这样的情况,树更新单元15在任意定时确认由每一个节点11存储的树结构数据单元是否是最新的值范围信息,并且然后使用最新的值范围信息来更新包括旧的值范围信息的树数据单元。具体地说,树更新单元15发送版本确认请求,其中,关于等与或高于层2的每层的树数据单元,由在根树节点中包括的指示符指向的子树节点的版本信息被设置为与该指示符相关联的链接目的地节点。使用树数据单元15和在来自链接目的地节点的答复中包括的版本信息,树更新单元更新具有不同版本的层的树数据单元和其版本信息。
树更新单元15根据期望与由数据操作单元12执行的数据访问处理异步地、在预定循环中周期地执行版本确认和树结构数据单元的更新。这样的方式使得有可能缩短向所有节点的值范围改变的发送的时间,并且因此,可以减少其中树生成单元14识别不适当的节点11的情况的出现,导致抑制因为该情况导致的在数据访问时间上的增加。
响应于对于从另一个节点发送的层L的树数据单元的版本确认请求,版本比较单元16将在该版本确认请求中包括的版本信息与由节点11拥有的层(L-1)的树数据单元的版本信息作比较。版本比较单元16向请求者的另一个节点返回不同版本的层(L-1)的树数据单元连同每一个树节点的版本信息。
[操作示例]
下面参考图7至图10来描述在第一实施例中的数据服务器10的操作示例。在下面的描述中,作为在每一个节点中的值范围信息的管理形式,使用管理形式6,即,其中管理关于本身节点和Suc节点的每一个的值范围的开始点和终点两者的形式。
图7是图示在第一实施例中的树生成单元14的操作示例的流程图。当接收到其中指定任意节点11(对象节点11)生成对象的属性和层的生成请求时,树生成单元14识别生成对象的属性(S51),并且根据指定层来运行如下(S52)。
当指定层是0时,树生成单元14基于在值范围存储单元23上存储的值范围信息来生成在对象节点11的层0的树数据单元中的根树节点的相应条目。树生成单元14在第一条目中设置对象节点11的值范围开始点和指向能够识别对象节点11的数据单元的指示符(S53).
然后,树生成单元14生成对象节点11的层0的树数据单元中的根树节点的第二条目(S54)。树生成单元14在第二条目中设置对象节点11的Suc节点的值范围开始点和指向对象节点11的Suc节点的节点识别数据单元的指示符。
然后,树生成单元14生成对象节点11的层0的树数据单元中的根树节点的第三条目(S55)。树生成单元14在第三条目中设置对象节点11的Suc节点的值范围终点,并且不设置值(空)。
当该指定层是1时,树生成单元14初始参考链接表19,并且然后识别对象节点11的链接目的地节点m(S61)。当多个链接目的地节点存在时,其中的一个被识别为链接目的地节点m。m的初始值是1。
树生成单元14生成在层1的树数据单元中的根树节点的第m个条目(S62)。树生成单元14在该第m个条目中设置链接目的地节点m的值范围开始点和指向链接目的地节点m的节点识别数据单元的指示符。此时,树生成单元14从链接表19获取链接目的地节点m的通信地址,并且然后使用该通信地址从链接目的地节点m获取值范围开始点和节点识别数据单元。
树生成单元14对于所有链接目的地节点执行如上所述的步骤S61和步骤S62两者(S66)。
当链接目的地节点m是最后链接目的地节点时(S63;是),树生成单元14生成第m+1条目(S64),并且进一步生成第m+2条目(S65)。具体地说,树生成单元14在第m+1条目中设置链接目的地节点m的值范围终点和指向链接目的地节点m的Suc节点的节点识别数据单元的指示符(S64)。而且,树生成单元14在第m+2条目中设置链接目的地节点m的Suc节点的值范围终点(S65)。如上所述,从链接目的地节点m获取链接目的地节点的值范围终点、链接目的地节点m的Suc节点的节点识别数据单元和链接目的地节点m的Suc节点的值范围终点。树生成单元14对于最后条目的指示符不设置值(空)。
当指定层是L(L至少是2)时,树生成单元14以与在如上所述的步骤S61中相同的方式来识别对象节点11的链接目的地节点m(S56)。然后,树生成单元14向链接目的地节点m发出对于层(L-1)的树数据单元的请求,并且根据这个请求从链接目的地节点m获取层(L-1)的树数据单元(S57)。同样在那个时间,如上所述,从链接表19获取链接目的地节点m的通信地址。
树生成单元14从获取的树数据单元传送层由层L的树数据单元的根树节点的某个指示符识别的树节点和比前者低的树节点(S58)。换句话说,树生成单元14基于所获取的树数据单元生成第二级的树节点和比其低的树节点。当使用两级树节点形成所获取的树数据单元时,树生成单元14将该两级树数据单元连接到根树节点。
然后,树生成单元14生成层L的树数据单元的根树节点的第m条目(S59)。树生成单元14在第m条目中设置在所获取的树数据单元的根树节点的第一条目中设置的值范围边界值和指向从所获取的树数据单元的根值范围生成的树数据单元的指示符。在那个时间,可以根据情况删除与除了第m条目之外的条目的树重叠的信息。
树生成单元14对于所有的链接目的地节点执行如上所述的步骤S56、S57、S58和S59(S60)。关于层L的树数据单元的根树节点的最后链接,树生成单元14设置在树数据单元的根树节点的最后条目和其中对于指示符不设置值(空)的条目中设置的值范围终点。
在图7的示例中,已经区别地表达了层1的树数据单元的生成步骤和层L(L≥2)的树数据单元的生成步骤,但是也可能在对于层L的树数据单元的相同的步骤中生成层1的树数据单元。在该情况下,在步骤S52中,将层确定为0或L(L≥1),并且当指定层1时,执行步骤S56和随后的步骤。
图8是图示在第一实施例中的树更新单元15和版本比较单元16的操作示例的流程图。每一个节点11(在下面的说明中称为“对象节点11”)使得树更新单元15在预定的定时运行如下。
树更新单元15初始参考链接表19,并且识别对象节点11的链接目的地节点m(S70)。当存在多个链接目的地节点时,其中之一被识别为链接目的地节点m。m的初始值是1。
然后,树更新单元15相对于对象节点11的等于或大于层2的相应层获取由与在根树节点上包括的链接目的地节点m相关联的、被指示符识别的树节点的版本信息(S71)。当由指示符识别的子树节点是分支树节点时,有可能获取子树节点和其下的所有三个节点的版本信息。
树更新单元15向链接目的地节点m发送版本确认请求,其包括关于等于或高于层2的相应层获取的多个版本信息(S72)。同样在那个时间,如上所述,从链接表19获取链接目的地节点m的通信地址。
当接收到这个版本确认请求时(S81),链接目的地节点m使得版本比较单元16运行如下。版本比较单元16将在版本确认请求中包括的每层n的版本信息与低一级的每层(n-1)的版本信息作比较(S82)。例如,将在版本确认请求中包括的层2的版本信息与链接目的地节点m的层1的版本信息作比较,并且,将在版本确认请求中包括的层3的版本信息与链接目的地节点m的层2的版本信息作比较。
作为比较(S82)结果,版本比较单元16向对象节点11返回在具有不同版本的层中的树数据单元(包括版本信息)连同由链接目的地节点m(等同于链接目的地节点m的层0的树数据单元的)拥有的值范围信息(S83)。当使用多个树节点形成具有不同版本的层的树数据单元时,返回数据单元和关于这些多个树节点的版本信息。在那个时间,当在版本确认请求中包括的层n和链接目的地节点m的层n-1在版本上彼此不同时,作为树数据单元和层n的版本信息,设置树数据单元和链接目的地节点m的层(n-1)的版本信息来用于答复。
当接收到这个答复时(S73),对象节点11使得树更新单元15运行如下。初始,树更新单元15相对于层1的树数据单元将在与由链接目的地节点m拥有的值范围信息对应的条目中设置的值范围边界值和在答复中包括的由链接目的地节点m拥有的最新值范围信息作比较。当这些彼此不同时,树更新单元15使用最新的值范围信息来更新条目的值范围边界值,并且将层1的树数据单元的版本信息前进(S74)。
然后,树更新单元15参考该答复,并且确定是否存在具有不同版本的层(S75)。
树更新单元15使用在答复中包括的新的树数据单元来更新与在具有对象节点11的不同版本的层中的链接目的地节点m对应的部分树数据单元(S76)。当例如层2的版本不同时,树更新单元15使用在答复中的树数据单元更新与在对象节点11的层2的树数据单元中的根树节点中包括的链接目的地节点对应的、由指示符识别的子树节点和比子树节点低的树节点。此时,也更新在子树节点后的每一个树节点的版本信息。而且,而且,也更新与层2的根树节点的链接目的地节点对应的条目的值范围边界值。
而且,树更新单元15将具有不同版本的层的根树节点的版本信息前进(S77)。树更新单元15对于所有的链接目的地节点执行如上所述的步骤S70至S77。
如上所述的图8已经图示了下述示例,其中,对于等于或高于对象节点11的层2的相应层执行处理,但是可以对于等于或高于层1的相应层执行处理。在该情况下,在步骤S71中,树更新单元15相对于等于或高于对象节点11的层1的相应层获取与在根树节点中的链接目的地节点m相关联的、由指示符识别的树节点的版本信息。在步骤S83中,版本比较单元16不必返回链接目的地节点m的值范围边界值,或者树更新单元15不必执行步骤S74。
图9是图示在第一实施例中的树搜索单元13的操作示例的流程图。当从数据操作单元12获取对象属性和像素值或属性值的范围时,树搜索单元13从任意节点11(以下表达为对象节点11)的树存储单元20获取关于对象属性的树结构数据单元(S90)。树搜索单元13设置用于层L的初始值0(S91)。层0是最低层,并且层L(至少为1)是大于前者的层。
树搜索单元13确定在获取的树结构数据单元中是否存在层L的树数据单元(S92)。当不存在层L的树数据单元时(S92:否),树搜索单元13请求树生成单元14准备对象节点11的层L的树数据单元(S93)。响应于该请求,如上所述,生成对象节点11的层L的树数据单元。
树搜索单元13获取层L的树数据单元(S94),并且从层L的树数据单元识别具有对象属性的属性值或与该属性值的范围对应的值范围的节点(地址节点)(S95)。以下将参考图10来描述用于地址节点的该识别处理的细节。
当已经成功地识别地址节点时(S96;是),树搜索单元13输出关于地址节点的信息(S97)。基于该输出信息,数据操作单元12向地址节点传送数据访问请求。
另一方面,当已经未能识别地址节点时(S96;否),树搜索单元13将层L前进1(L=L+1)(S98),并且对于已经被前进的层L执行处理步骤S92和随后的步骤。其后,树搜索单元13将要搜索的层依序前进,直到识别了地址节点。当在一个数据服务器10(物理服务器)上提供多个虚拟节点(对象节点11)时,在一层中的所有虚拟节点的地址节点识别失败时,可以将层L前进1。
图10是图示在第一实施例中的用于从树搜索单元13中的层L的树数据单元识别地址节点的操作的示例的流程图。换句话说,图10图示了图9的步骤S95的详细操作。初始,树搜索单元13识别层L的树数据单元的根树节点(S100)。初始,对于层L,设置初始值0(指示最上层)(S101)。
然后,树搜索单元13基于在其中在被识别的树节点(在此指示根树节点)的第一条目的值范围边界值被指定为参考之后的对象属性的属性值空间中的循环顺序从被识别的树节点识别包括对象属性的属性值或与属性值的范围对应的值范围的条目(S102)。该循环顺序对应于由属性值空间与如上所述的ID环对应地拥有的环形结构。
当未从所识别的树节点识别条目时(S103;否),树搜索单元13确定地址节点的识别失败(S108)。另一方面,当已经成功地识别条目时(S103;是),树搜索单元13确定被识别的条目的指示符是否指向节点识别数据单元(S104)。
当指向节点识别数据单元时(S105;是),树搜索单元13获取由指示符指向的节点识别数据单元(S107)。该处理对应于地址节点的识别。
当未指向节点识别数据单元时(S105;否)时,即,当指示符指向子树节点时,树搜索单元13识别被指示符指向的子树节点(S106)。树搜索单元13对于这个被识别的树节点执行步骤S102和随后的步骤。
[第一实施例的操作和效果]
如上所述,在第一实施例中,响应于对于对象属性的属性值或属性值的范围的数据访问请求,节点11使用在本身节点11的树存储单元20上存储的树结构数据单元来识别用于存储被发出数据访问请求的部分数据单元的地址节点。由此,根据第一实施例,数据访问请求可以被直接地传送到由某个节点11识别的地址节点,并且因此,可以防止在与数据访问请求的节点之间传送相关联的数据访问时间上的增大。
而且,在第一实施例中,从自每一个节点11的链接目的地节点获取的树数据单元自动生成使用由每一个节点11拥有的值范围信息反映的树结构数据单元。而且,在第一实施例中,在树结构数据单元中包括的每一个树节点具有版本信息,并且每一个节点11在数据访问处理的背景中在预定定时使用该版本信息来执行版本确认和本身的树结构数据单元的更新。此时,每一个节点11从链接目的地节点获取使用值范围改变反映的最新树数据单元。
以这种方式,根据第一实施例,因为在在节点11和链接目的地节点之间传送值范围信息,所以不必提供用于值范围信息的集中管理的识别服务器组,诸如元数据服务器等,并且因此,可以防止在识别服务器组上的负载集中。而且,当提供识别服务器组时,必须通过对于***提供强壮性使得这些服务器不变为单个故障点来管理***,但是,如上所述的配置使得有可能减少用于故障对策的努力的数量和通过提供识别服务器组而给出的操作和维护。根据第一实施例,即使当由每一个节点11生成的值范围信息因为某种原因而单独消失时,通过再一次从链接目的地节点获取值范围信息能够恢复该值范围信息,并且因此,有可能也减少用于故障对策的努力的数量和关于每一个节点11的操作和维护。
而且,在第一实施例中,每一个节点11运行以便自发地和与数据访问处理分离地存储在最新条件下的值范围信息(树结构数据单元),并且因此,可以减少访问未中,其中,与对象的属性值或属性值的范围对应的部分数据单元未被存储在作为地址节点识别的节点11中。换句话说,根据第一实施例,当缩短值范围改变向所有节点的发送的时间时,可以减少在数据访问执行期间的访问未中,并且因此,可以减少在数据访问时间上的增大。
而且,在第一实施例中,形成使用值范围信息反映的树结构数据单元,使得将与节点ID的链接关系相同的结构,并且在每一个节点11和其链接目的地节点之间执行版本确认和值范围信息(树结构数据单元)的获取。因此,根据第一实施例,关于每一个节点11,在预定时间段中的版本确认(值范围改变确认)的次数是每一个节点11的链接的数量,并且因此,也可以抑制在每一个节点11中的用于值范围改变确认的负载。
而且,在第一实施例中,有可能每一个节点11不仅在每一个预定时间执行版本确认,而且在数据访问执行时更新树结构数据单元。数据访问执行的时间指的是当通过参考树结构数据单元而获取与给定的键值对应的节点ID时的时间,其后是对于其节点的访问,并且其后,该访问因为无效而失败,因为值范围已经旧了。在那个时间,关于与从在树结构数据单元中的值树节点到叶树节点的路径对应的链接,也可以更新树结构。
[第二实施例]
在第一实施例中,未限制基于节点ID的链接关系的构造方法。在第二实施例中,作为用于链接关系的构造方法,应用新的方法,并且,增加对于与其相关的***参数的调整处理。在第二实施例中的分布式***1的配置与在第一实施例中相同,并且,数据服务器10的处理与在第一实施例中不同。下面通过聚焦在与在第一实施例中的事项不同的那些来描述在第二实施例中的数据服务器10,并且将酌情省略与在第一实施例中相同的事项的描述。
[设备配置]
图11是示意地图示在第二实施例中的数据服务器10的处理配置实例化的视图。在第二实施例中的数据服务器10除了第一实施例的配置之外进一步包括参数设置单元31。
链接生成单元17使用新的算法(以下被表达为扩展Koorde)来构造基于节点ID的链接关系,并且在链接表19中反映该内容。
在公知的Koorde中,每一个节点11分别与Suc节点、用于通过将每一个节点11的ID乘以参数k(自然数)而获得的值的Pred节点和与来自这个Pred节点的第k-1个对应的Suc节点建立链接。在公知的Koorde中,通过固定值k来确定所有节点11的链接目的地节点的数量。在公知的Koorde中,将其中在作为在de Bruijn图形中的节点的同时其ID不作为节点逻辑地存在的节点看作虚拟节点,并且然后,该虚拟节点被Pred节点管理以获取所需的数量的链接的分布的预期值。换句话说,本发明得出用于在de Bruijn图形中的节点之间的跳跃所需的数量的链接的分布,但是解释说公知的方法已经仅获取该分布的预期值,并且链接目的地节点的数量未被固定地设置为k。因此,在公知的Koorde中,存在其中存在比所需的程度(链接目的地节点的数量)更高的程度或存在比所需程度更低的程度,并且因此,在不足的情况下,已经经由到Suc节点到路由(传送)来补充了程度。而且,独立于链接的方式,在公知的Koorde中,对于与k元编号对应的(log2k)比特编号的移位计算,k已经被限于2的指数幂。
因此,在第二实施例中的扩展Koorde中,在每一个节点11中的链接目的地节点的数量(程度)被指定为概率度。具体地说,在扩展Koorde中,每一个节点11分别与下述部分相关联:作为用于通过将本身节点的ID乘以参数k(至少2的整数)而获得的值等的Pred节点的第一链接目的地节点;作为用于通过将本身节点的Suc节点的ID乘以参数k而获得的值等的Pred节点的第二链接目的地节点;以及,在ID环中的第一链接目的地节点和第二链接目的地节点之间存在的链接目的地节点。由此,在扩展的Koorde中,对于每一个节点11确定的链接目的地节点的数量(程度)变为被参数k控制的概率分布,并且大量的节点11具有比参数k小的程度,而节点11的一部分具有大于参数k的程度。程度的预期值是k+1。“通过将ID乘以参数k而获得的值等”是下述表达:其中,为了说明方便,简化通过将(ID×k)除以2b(ID空间的大小)而获得的余数的含义。而且,在其他位置,作为用于指示“通过将(ID×k)除以2b(ID空间的大小)而获得的余数”的含义的表达,可以作出作为“通过将ID乘以参数k而获得的值”的简化。
树更新单元15存储轮询间隔的值,并且以轮询间隔T来执行版本确认。轮询间隔T可以是与每一个节点的程度成反比的值或在整个***上为同一值。在反比中,存在相应的节点的轮询负载被均匀化的优点。在整个***上同一值的情况下,变得可能可以将关于每一个节点的树的从值范围改变的出现到在原始值范围上的反映的时间约束在至少某个范围内。
参数设置单元31设置作为参数的k或T的至少一个,使得满足直到对于下述部分的***要求(约束):直到在某个节点11中的值范围的改变被发送到在分布式***1中的所有节点11所需的最大时间wmax;由每一个节点11执行的版本确认的单位时间负载λ;或者,在执行期间的关于树更新的树的最大高度hmax;等等。该***要求指的是对于至少是某个值的需要的上限约束的设置和为了获得尽可能小的负载的最小化要求。而且,关于最大高度hmax,将树的高度的每一个级获得的一个跳的通信延迟和处理时间(被表达为τ0)作为***要求(约束)。更新所花费的在执行期间的延迟变为(hmax×τ0)时间,并且τ0是预定值。单位时间负载λ表示例如由每一个节点执行的每秒的版本确认的次数。以下,用于更新的在执行期间所花费的延迟将被简单地表达为执行时间延迟,并且,在树的高度的每级所花费的一个跳的通信延迟和处理时间被表达为每一个跳的执行延迟。
作为参数k和T的设置方法,可设想如下所述的相应的方法。在第一参数设置方法中,假定T在所有的节点11中(总的节点数量:N)相同,并且将约束时间wc提供用于最大时间wmax。在第二参数设置方法中,T可以在所有节点中不同,并且基于相对于单位时间负载λ的约束负载λc来确定每一个节点的轮询间隔T。参数设置单元31以所确定的轮询间隔T来更新由树更新单元15存储的值。另一方面,在第三参数设置方法中,基于相对于树的最大高度hmax的树的高度约束hc来确定参数k。
有可能约束时间wc、约束负载λc和树的高度约束hc被经由通信设备7从另一个设备获取,通过连接到输入/输出接口4的用户界面设备的用户操作被输入,或者经由输入/输出接口4从便携存储介质被获取。
在第一参数设置方法中,参数设置单元31使用所获取的约束时间wc、节点11的总数N和由链接生成单元17使用的参数k来计算满足下面的方程1的轮询间隔。而且,在第二参数设置方法中,参数设置单元31使用所获取的约束负载λc和由链接生成单元17获取的节点的链接目的地节点的数量(程度)D来计算满足下面的方程2的轮询间隔T。在第三参数设置方法中,参数设置单元31使用所获取的树的高度约束hc来通过下面的方程3设置参数k。可以从如上所述的每个跳的执行时间延迟(τ0)和执行时间延迟的约束来计算树的高度约束hc。
以下,轮询间隔T在每一个节点中具有相同的值,或者当在相应的节点中不同时具有通过在上面的方程2中设置的轮询间隔的分布而获得的值。例如,预期值是(1+k)/λc。单位时间负载λ和最大时间wmax随着每一个节点11的轮询间隔T和参数k而改变。输出程度的预期值如上所述是k+1,并且因此,可以将单位时间负载λ表达为下面的方程4。而且,通过下面的方程5来表达直到值范围改变达到所有节点11所花费的时间w的预期值。可以将最大时间wmax表达为下面的方程6。
wmax≥TlogkN (方程6)
上面的方程5的右侧被导出如下。当由相应的节点11执行的版本确认在某个定时处彼此相同地并且独立于彼此地被执行并且在logkN个级存在时,用于传播值范围改变所花费的时间w遵循Irwin-Hall分布,该分布是遵循logkN个的均匀分布U(O,T)的概率变量的和。因此,从时间w的预期值计算上面的方程5的右侧。作为该分布的最大值,获得上面的方程6。
[第二实施例的操作和效果]
在第二实施例中,每一个节点11的链接生成单元17使用扩展的Koorde算法来确定每一个节点11的链接目的地节点。在扩展的Koorde中,如上所述,概率地确定在每一个节点11中的链接目的地节点的数量(程度)。由此,在扩展Koorde中,每一个节点11的链接的数量变得概率性,而在公知Koorde中,源自经由散列化的节点ID的生成的概率元素未在每一个节点11的数量(常数)中出现,而是在Suc节点和除了Suc节点之外的节点之间的使用比率中出现。
因此,在使用扩展Koorde的第二实施例中,当在同一数据服务器10中具体设置多个虚拟节点(逻辑节点11)时,在一个数据服务器10中存在具有大的链接编号的节点11和具有小的链接编号的节点11,并且因此,相应的节点11的树结构数据单元的版本确认的负载变得不同。然而,当使得每一个数据服务器10获得预定数量的节点11时,变得很可能同一数据服务器10获得具有大的链接编号的节点11和具有小的链接编号的节点11,并且结果,每一个数据服务器10的版本确认负载可以基本上恒定。
而且,在公知Koorde中,其中一个节点链接到其他节点的数量(程度,具体地说为输出程度)已经恒定,但是其中从其他节点链接到一个节点的数量(输入程度)已经是概率化和可变。虽然在扩展Koorde中该变化存在,但是该变化小于在公知Koorde中,并且可能进行负载分散。在输出程度上的变化的情况下,如在第二参数设置方法中所述,有可能通过考虑诸如轮询间隔T等的另一个因素来实现复杂均匀性。然而,相对于作为因为被链接导致的数量的输入程度,难以实现如上所述的负载均匀性,并且因此,如在扩展Koorde中看到的那样,在程度上的小的变化是期望的属性。
而且,在第二实施例中,因为根据由扩展Koorde确定的链接关系来生成等于或大于层1的层的树数据单元,所以可以通过排除Suc节点仅向链接目的地节点分配版本确认请求的发送目的地,并且,可以容易管理使用值范围信息反映的树结构数据单元。换句话说,可以生成数结构,其中,平衡从每一个节点到第h跳的节点组的通路。
而且,在第二实施例中,当提供值范围改变的最大发送时间wmax和诸如用于版本确认的单位时间负载λ的约束时间τc和约束负载λc的***要求(约束)时,每一个节点11执行树结构数据单元的版本确认,即,值范围改变确认。因此,根据第二实施例,在每一个节点11的值范围信息的版本确认处理使得有可能防止意料之外的负载的出现。
[第三实施例]
在如上所述的各个实施例中,实现存储部分数据单元的节点11的每一个数据服务器10执行如上所述的处理,但是未实现节点11而未存储部分数据单元的设备可以执行如上所述的处理。在第三实施例中的分布式***1进一步包括作为未实现节点11而未存储部分数据单元的数据操作客户端50。下面通过聚焦在与在第一实施例中的事项不同的那些而说明第三实施例的分布式***1,并且,将酌情省略与在第一实施例中相同的事项的说明。
[***配置]
图12是示意地图示在第三实施例中的分布式***1的配置示例的视图。除了第一实施例的配置之外,第三实施例的分布式***1进一步包括多个数据操作客户端(以下也简单地表达为客户端)50。客户端50经由网络9可通信地连接到数据服务器10。以与数据服务器10相同的方式,根据应用或来自另一个终端的请求,客户端50访问在数据服务器10上存储的数据单元以获取期望的数据单元。客户端50的硬件配置也与数据服务器10相同,并且本实施例不限制客户端50的硬件配置。
[设备配置]
图13是示意地图示在第三实施例中的数据操作客户端50的处理配置示例的视图。如在图13中所示,客户端50包括·2、树搜索单元13、树生成单元14、树更新单元15、版本比较单元16、链接生成单元17、链接表19和树存储单元20。这些处理单元与在第一实施例中基本上相同。
链接生成单元17构造在由多个数据服务器10实现的多个节点11中的至少一个任意节点11和客户端50之间的链接关系,并且在链接表19中反映该链接关系。所有节点存储关于所有其他节点的值范围,并且因此,客户端50可以具有仅单个若那一节点的链接关系。客户端50不参与由相应的节点11的节点ID构造的ID空间,即,不是从节点11主动访问的对象,并且因此,不具体限制在客户端50中的链接关系的构造方法。
在树存储单元20上存储的树结构数据单元不包括层0的树数据单元,因为客户端50在ID串中没有相邻的节点。等于或高于层1的相应层的树数据单元与在第一实施例中相同。由此,树生成单元14变得与在第一实施例中相同,除了层0的树数据单元的生成之外。
[第三实施例的操作和效果]
以这种方式,在第三实施例中,在未实现节点11而未存储部分数据单元的客户端50中,执行与在第一实施例中相同的处理。因此,也当在第三实施例中的客户端50获取数据访问请求时,可以实现与在第一实施例中相同的操作和效果。
通过引用下面的示例来进一步详细描述上面的各个实施例。本发明不被下面的示例具体限制。
示例1
将在下面作为示例1描述其中在第一实施例的分布式***1中使用扩展Koorde的形式示例。在示例1中,由节点ID的ID空间拥有的有限范围是[0,1024],并且,在分布式***1中,实现9个节点11。而且,为了简单的说明,描述仅对于一个属性的处理。以下,将具有特定ID值的节点表达为节点(ID值)。
图14是示意地图示在示例1中的ID环和值范围向之间的关系的视图。根据图14的示例,节点(70)具有(10,25]的值范围,并且节点(803)具有(175,255]和(0,3]的值范围。
每一个节点11的链接生成单元17通过扩展的Koorde算法来确定本身节点11的链接目的地节点。在示例1中,在扩展的Koorde算法中使用的参数k被设置为2。
图15是图示在示例1中生成的链接关系的一部分的视图。节点(413)建立在ID环中的下述节点之间存在的与如上所述作为第一链接目的地节点的节点(803)、如上所述作为第二链接目的地节点的节点(70)和如上所述作为第三链接目的地节点的节点(980)的链接。节点(803)是用于通过将节点(413))的ID(413)乘以参数k(2)而获得的值(826)的Pred节点。节点(70)是用于通过将节点(413)的Suc节点的ID(551)乘以参数k(2)而获得的值(78=1102-1024)的Pred节点。
节点(803)具有与从节点(551)到节点(803)的相应节点的链接。节点(551)是用于通过将节点(803)的ID(803)乘以参数k(2)而获得的值(582=1606-1024)的Pred节点。节点(803)是用于通过将节点(803)的Suc节点(980)的ID(980)乘以参数k(2)而获得的值(936=1960-1024)的Pred节点。作为第二链接目的地节点的节点(803)是本身节点,并且因此,不存储其链接信息。节点(551)与节点(70)和节点(129)建立链接。而且,节点(70)与节点(129)和节点(250)建立链接。
根据这样的链接关系,节点(551)通过两个跳从节点(70)到达节点(250)。这样的链接关系被每一个节点11的链接生成单元17生成,并且然后被存储在每一个节点11的链接表19上。
假定在构造这样的链接关系的同时,数据操作单元12获取对于对象属性的属性值(35)的数据访问请求,下面参考图7、图9和图10的流程图来描述在示例1中的树搜索单元13和树生成单元14的操作。假定在那个时间,数据操作单元12指令树搜索单元13识别用于存储部分数据单元的节点11,该部分数据单元包括属性值(35),其中,将节点(413)指定为对象节点。
树搜索单元13获取对象属性的属性值(35)(S90),设置用于层L的初始值0(S91),并且确定层0的树数据单元是否存在(S92)。因为不存在层0的树数据单元(S92:否),所以树搜索单元13请求树生成单元14生成节点的层0的树数据单元(413)(S93)。
在示例1中,作为在每一个节点中的值范围信息的管理形式,使用管理形式6,即,其中管理关于本身节点和Suc节点的每一个的值范围的开始点和终点的形式。因此,在那时,节点(413)在值范围存储单元23中具有本身节点(413)的值范围的开始点(53)和终点(67)与Suc节点(551)的开始点(67)和终点(138)。
树生成单元14基于本身节点(413)的值范围开始点(53)和值范围终点(67)与Suc节点(551)的值范围开始点(67)和值范围终点(138)来生成如下所述的层0的树数据单元。
第一条目:值范围边界值(53),关于节点(413)的指示符
第二条目:值范围边界值(67),关于节点(551)的指示符
第三条目:值范围边界值(138),空
树搜索单元13尝试从层0的树数据单元识别具有包括属性值(35)的值范围的地址节点(S95)。然而,由层0的树数据单元指示的值范围是(53,138],并且因此,不包括属性值(35)。因此,因为不能通过层0的树数据单元来识别地址节点(S96;否),所以树搜索单元13将要搜索的层L前进一级(S98)。
因为不存在层1的树数据单元(S92;否),所以树搜索单元13请求树生成单元14生成节点(413)的层1的树数据单元(S93)。树生成单元14基于链接目的地节点(803)的值范围开始点(175)、链接目的地节点(980)的值范围开始点(3)、链接目的地节点(70)的值范围开始点(10)和值范围终点(25)与链接目的地节点(70)的Suc节点(129)的值范围终点(32)来生成如下所述的层1的树数据单元(S62)。
第一条目:值范围边界值(175),关于节点(803)的指示符
第二条目:值范围边界值(3),关于节点(980)的指示符
第三条目:值范围边界值(10),关于节点(70)的指示符
第四条目:值范围边界值(25),关于节点(129)的指示符
第五条目:值范围边界值(32),空
树搜索单元13尝试从层1的树数据单元识别具有包括属性值(35)的值范围的地址节点(S95)。然而,由层1的树数据单元指示的值范围是(175,32],并且因此,不包括属性值(35)。因此,因为不能通过层1的树数据单元来识别地址节点(S96;否),所以树搜索单元13将要搜索的层L前进一级(S98)。
因为不存在层2的树数据单元(S92;否),所以树搜索单元13请求树生成单元14生成节点(413)的层2的树数据单元(S93)。树生成单元14从链接目的地节点(803,980和70)的每一个生成层1的树数据单元(S57),并且基于所获取的树数据单元来生成层2的树数据单元(S58和S59)。由此,生成层2的树数据单元的根树节点如下。
第一条目:值范围边界值(67),指向子树节点(对应于链接目的地节点(803))的指示符
第二条目:值范围边界值(175),指向子树节点(对应于链接目的地节点(980))的指示符
第三条目:值范围边界值(25),指向子树节点(对应于链接目的地节点(70))的指示符
第四条目:值范围边界值(67),空
由层2的树数据单元的根树节点指示的值范围(67,67]涵盖整个值范围,并且因此包括属性值(53)。该包括确定是循环顺序,其中,将67指定为参考,并且将(67,67]看作包括属性值(35)的(67,255]U[0,67]。而且,树搜索单元13识别其中(32,53]是值范围的条目,跟随该条目的指示符,并且识别指示符,该指示符指向在比根树节点低一级的树节点中的节点(250)的节点识别数据单元。
由此,数据操作单元12基于从树搜索单元13获取的节点(250)的节点识别数据单元来获取节点(250)的通信地址,并且使用该通信地址来执行节点(250)的属性值(35)的数据访问处理。在图16中图示了以这种方式生成的树结构数据单元。图16是图示在示例1中由每一个节点11生成的树结构数据单元的一部分的视图。
接下来,将参考图8来描述在示例1中的树更新单元15和版本比较单元16的操作示例。假定在节点(250)和节点(129)之间进行负载分散,并且如图17中所示,执行值范围改变。图17是示意地图示在示例1中的负载分散的示例的视图。经由该负载分散,节点(129)存储具有值范围(25,38]的部分数据单元,并且节点(250)存储具有值范围(38,53]的部分数据单元。在这个负载分散中的负载可以是数据存储量或数据访问频率。而且,有可能相对于每一个数据服务器10的负载被用作指示符,并且因此,相对于每一个逻辑节点11的负载被均匀化。
在这种情况下,引用了下述示例:其中,树更新单元15和版本比较单元16的要处理的对象是节点(413)。假定那时,节点(413)包括如在图16中所示的树结构数据单元。树更新单元15在预定定时执行下面的版本确认处理。
初始,树更新单元15参考节点(413)的链接表19,识别节点(413)的链接目的地节点(803,980,70),并且识别作为这些之一的链接目的地节点(803)(S70)。然后,树更新单元15获取由与在节点(413)的树结构数据单元中的层2的根树节点中设置的链接目的地节点(803)对应的指示符识别的树节点的版本信息(版本1(ver.1))(S71)。树更新单元15向链接目的地节点(803)发送包括层2的版本信息(版本1)的版本确认请求(S72)。
当链接目的地节点(803)接收到版本确认请求时(S81),版本比较单元16将在该请求中包括的层2的版本信息(版本1)和链接目的地节点(803)的层1的版本信息(版本1)作比较(S82)。在该情况下,版本相同。然后,版本比较单元16发送答复,该答复包括由链接目的地节点(803)拥有的值范围信息(S83)。根据在示例1中的每一个节点的值范围信息管理形式(管理形式6),作为由链接目的地节点(803)拥有的值范围信息,返回链接目的地节点(803)的值范围开始点(175)和Suc节点(980)的值范围开始点(3)和值范围终点(10)。
当接收到答复时(S73),树更新单元15将与由在节点(413)的层1的树数据单元中的链接目的地节点(803)拥有的值范围信息对应的、在第一条目到第三条目中设置的值范围边界值(175、3和10)和在答复中包括的由链接目的地节点(803)拥有的最新值范围信息(175、3和10)作比较。在该情况下,确定两者相同,并且不进行值范围改变。
然后,树更新单元15参考该答复以确定是否存在具有不同版本的层(S75)。在该情况下,不存在具有不同版本的层(S75;否),并且因此,树更新单元15识别下一个链接目的地节点(980)(S70)。此时,假定节点(980)包括在图18中所示的树结构数据单元。
图18是示意地图示在示例1中的在负载分散后的节点(980)的树结构数据单元的示例的视图。换句话说,已经改变了节点(980)的链接目的地节点(129)的值范围边界值,并且因此,节点(980)的层1的树数据单元的版本信息已经前进到2。
树更新单元15也对于链接目的地节点(980)执行相同的处理(S71),并且向链接目的地节点(980)发送包括层2的版本信息(版本1)的版本确认请求(S72)。
当链接目的地节点(980)接收版本确认请求时(S81),版本比较单元16将在该请求中包括的层2的版本信息(版本1)与在链接目的地节点(980)的层1的版本信息(版本2)作比较(S82)。在该情况下,版本彼此不同,并且因此,版本比较单元16发送答复,该答复包括链接目的地节点(980)的层1的树数据单元(包括版本信息)和由链接目的地节点(980)拥有的值范围信息(3、10和25)(S83)。
当接收到答复时(S73),树更新单元15将与由在节点(413)的层1的树数据单元中的链接目的地节点(980)拥有的值范围信息对应的、在第二条目到第四条目中设置的值范围边界值(3、10和25)和在答复中包括的由链接目的地节点(980)拥有的最新值范围信息(3、10和25)作比较。在该情况下,确定两者相同,并且不进行值范围改变。
然后,树更新单元15基于该答复确定层2的版本不同(S75;是),并且使用在答复中包括的链接目的地节点(980)的层1的树数据单元来更新由与在层2的根树节点中包括的链接目的地节点(980)对应的指示符识别的树节点(S76)。由此,由指示符识别的树节点的版本信息变为2。该更新可以是在答复中包括的树数据单元的复制或下述方式:其中,与在根树节点中设置的值范围边界值相关地省略在答复中包括的树数据单元中的值范围边界值信息。
而且,树更新单元15将链接目的地节点(980)的层1的树数据单元的第一条目的所获取的值范围边界值(175)设置为条目的值范围边界值,该条目包括与在节点(413)的层2的树数据单元中的链接目的地节点(980)相关联的指示符,并且然后树更新单元15将层2的根树节点的版本信息前进(S77)。然后,树更新单元15识别下一个链接目的地节点(70)(S70)。其后,也对于链接目的地节点(70)执行相同的版本确认处理。
图19是示意地图示在示例1中的在节点(413)的版本更新后的树结构数据单元的示例的视图。如图19中所示,关于层2的树数据单元,已经更新了根树节点的版本信息(版本3)、由与链接目的地节点(980)相关联的指示符识别的子树节点的版本信息(版本2)、由与链接目的地节点(70)相关联的指示符识别的子树节点的版本信息(版本2)和值范围边界值(38)的每一个。而且,也对于具有到节点(980)的链接的、除了节点(413)之外的节点执行相同的处理,并且然后,对于节点的每一个,获取新的值范围信息。
在从链接目的地节点(980)获取的树数据单元和从链接目的地节点(70)获取的树数据单元中,存在重叠的条目(包括值范围边界值(25、38和53)的三个条目),并且因此,在图19的示例中,从由与链接目的地节点(980)相关联的指示符识别的子树节点消除重叠的条目。除了等于或高于层2的层的树数据单元的根树节点之外的树节点可以是在答复中包括的树数据单元的复制品,或者可以是以这种方式从树数据单元修改以消除冗余性的那些。当以这种方式消除在分支(叶)树节点中的冗余性时,期望将版本管理与在树节点之间的差别管理相关联。在上面的示例中,在因为冗余性导致消除的条目中,已经改变了值范围边界值,并且已经将与链接目的地节点(980)相关联的指示符识别的子树节点的版本信息前进。然而,关于因为冗余性导致被消除的条目的更新(与本身的Suc节点重叠的位置),不必将版本信息前进。
接下来,作为示例2,将描述在第二实施例中使用的扩展的Koorde和参数。
示例2
要在扩展的Koorde中构造的数的输入程度、输出程度和高度(或跳编号)强烈取决于关于到每个节点的Suc节点的距离的概率变量。当相对于一个物理服务器(一个数据服务器10)的虚拟服务器的数量(逻辑节点11的数量)被指定为v并且逻辑节点11的总数被指定为N时,与到相邻节点的距离对应的概率变量遵循地理分布,并且虚拟服务器部分v的和遵循负二项分布NB(v,p)。而且,在给定范围x中包括的节点的数量遵循二项分布B(x,p)。在此,p是N/2b。通过下面的方程1和方程2来给出输出程度(δOUT)和输入程度(δIN)。
关于树的层,容易确定在相应的节点中的最高树高度hmax的上限的分布。当将由第h跳的节点组覆盖的ID的范围指定为rh时,hmax是满足rh>2b的最小高度(h)。在指定在节点和Suc节点之间的距离为r时,因为rh比rkh宽,所以hmax至多是h的最小值,其中,至少满足rkh>2b,并且这个值变为hmax的上限。当满足f(h)=2b/kh时,通过上面的方程X3来给出这个上限的概率分布。
据认为,直到在给定的节点11中的值范围的改变时的最大时间wmax的约束(约束时间wc)被发送到在分布式***1中的所有节点11;设置执行时间延迟的上界约束;并且然后,最小化由每一个节点11执行的版本确认的单位时间负载λ。在该情况下,基于拉格朗日乘子法来执行优化。当将拉格朗日乘子指定为λ1和λ2时,KKT(Karush-Kuhn-Tucker)条件包括λ1≥1,(wc-TlogkN)≥0和λ1(wc-TlogkN)=0以及λ2≥0、(hc-logkN)≥0和λ2(hc-logkN)=0。在此,hc是如上所述的树的高度约束hc。这些条件被用作约束,并且然后,最小化下面的方程X4的拉格朗日函数。
当相对于轮询间隔T部分地将上面的方程4微分时,获得下面的方程X5。
当满足λ1=0时,T>0和k<0使得单位时间负载λ在T→∞最小,但是对此,约束时间wc需要满足wc>∞,导致不真实。因此,从KKT条件满足wc=TlogkN。在最佳点处,上面的方程5给出0,并且因此,获得下面的方程X6。
另一方面,当相对于k部分地将上面的方程X4微分并且使用上面的方程X6时,获得下面的方程X7。
考虑(hc-logkN)>0的情况(被表达为条件(i))。此时,从KKT条件,λ2=0;允许上面的方程X8是0的k是满足logek=(1+k)/1的k*,并且,k*=3.59…。当使用k的这样值时,条件(i)对应于满足hc>0.78logeN的情况。例如,在N=1000的情况下,所设置的hc对应于大约至少5.4的情况。此时,通过下面的方程X9设置轮询间隔T。
在除了上面的条件(i)的情况下,满足hc=logkN,并且因此,通过N的(1/hc)幂来确定参数k,并且通过T=wc/hc来确定轮询间隔T。因为对应于在de Bruijn图形中的二比特移位,所以为了方便,k*优选地被设置为k=4。
有可能当构造链接时,每一个节点11可以使用给定树的高度约束hc2与至少从Pred节点(km)到Pred节点(km+kp)的节点链接。符号ρ被下面的方程X10表示。这样的方式使得有可能将在所有节点中的跳的数量的上限(参数)控制在hc2或更少。符号km是其中简化“kmmod 2b”的表达式。
[修改示例]
在如上所述的实施例和修改示例中的版本确认处理中,在对象节点的链接目的地节点侧上比较版本信息(图8的S82),并且,将具有不同版本的层的树数据单元返回到来自链接目的地节点的对象节点(图8的S83)。在这样的配置中,有可能层2和随后的层的所有树数据单元被从链接目的地节点发送到对象节点,并且在对象节点侧上准备版本信息。
[补充]
上面的扩展Koorde算法也被有效地应用到除了由如上所述的实施例和示例说明的方面之外的那些。例如,扩展Koorde算法可以被应用到在其中不将属性值排序的数据结构中的DHT(分布式散列表)。在该情况下,可设想下面的实施例。
一种分布式数据管理设备,用于实现在存储多个部分数据单元的多个逻辑节点中的至少一个对象逻辑节点,其中,划分数据单元,
所述对象逻辑节点包括:
节点标识符存储单元,用于存储作为对象节点标识符的、在多个标识符中的向对象逻辑节点分配的标识符,所述多个标识符被分别唯一地分配到在具有环形结构的有限标识符空间中的多个逻辑节点;
数据存储单元,用于存储所述多个部分数据单元的至少一个;以及
链接表,用于存储链接信息,所述链接信息用于指示在所述对象逻辑节点和另一个逻辑节点之间的可通信关系,所述链接信息包括在所述对象逻辑节点和下述部分的每一个之间的多个链接:第一链接目的地逻辑节点,所述第一链接目的地逻辑节点具有通过将所述对象节点标识符乘以参数k(k是自然数)而获得的值或小于或接近所述值的标识符;第二链接目的地逻辑节点,所述第二链接目的地逻辑节点具有通过将具有大于或接近所述对象节点标识符的标识符的后继逻辑节点的标识符乘以所述参数k而获得的值或小于和接近所述值的标识符;以及,至少一个第三链接目的地逻辑节点,所述至少一个第三链接目的地逻辑节点具有在所述标识符空间中从所述第一链接目的地逻辑节点的所述标识符到所述第二链接目的地逻辑节点的所述标识符的某处的标识符。
一种分布式数据管理方法,其中
计算机用于实现在存储多个部分数据单元的多个逻辑节点中的至少一个对象逻辑节点,其中,划分数据单元,所述对象逻辑节点包括:节点标识符存储单元,用于存储作为对象节点标识符的、在多个标识符中的向对象逻辑节点分配的标识符,所述多个标识符被分别唯一地分配到在具有环形结构的有限标识符空间中的多个逻辑节点;以及,数据存储单元,用于存储所述多个部分数据单元的至少一个,
所述计算机生成链接信息,所述链接信息用于指示在所述对象逻辑节点和另一个逻辑节点之间的可通信关系,所述链接信息包括在所述对象逻辑节点和下述部分的每一个之间的多个链接:第一链接目的地逻辑节点,所述第一链接目的地逻辑节点具有通过将所述对象节点标识符乘以参数k(k是自然数)而获得的值或小于或接近所述值的标识符;第二链接目的地逻辑节点,所述第二链接目的地逻辑节点具有通过将具有大于或接近所述对象节点标识符的标识符的后继逻辑节点的标识符乘以所述参数k而获得的值或小于和接近所述值的标识符;以及,至少一个第三链接目的地逻辑节点,所述至少一个第三链接目的地逻辑节点具有在所述标识符空间中从所述第一链接目的地逻辑节点的所述标识符到所述第二链接目的地逻辑节点的所述标识符的某处的标识符。
可以在内容中不互相矛盾地组合如上所述的实施例和修改示例。而且,在上面的说明中使用的多个流程图中,顺序地描述多个步骤(处理),但是在本实施例中执行的处理步骤的执行顺序不限于在说明书中的顺序。在本实施例中,所示的处理步骤的顺序可变,而没有在内容上的缺点。
实施例和修改示例的一部分或全部也可以被识别为下面的补充说明。然而,实施例和修改示例不限于下面的说明。
(补充说明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来发送所述版本确认请求,并且
所述对象逻辑节点进一步包括
参数设置单元,用于获取直到在所述多个逻辑节点的至少一个中的值范围的改变被发送到所有所述多个逻辑节点的最大时间的***约束时间ωc或其中所述逻辑节点的每一个发送所述版本确认请求的单位时间负载的***约束负载λc,并且通过向下面的方程1或下面的方程2应用所述获取的***约束时间ωc或所述获取的***约束负载λc以及所述逻辑节点的总数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来发送所述版本确认请求,并且
所述对象逻辑节点进一步包括
参数设置单元,用于获取直到在所述多个逻辑节点的至少一个中的值范围的改变被发送到所有所述多个逻辑节点的最大时间的***约束时间ωc或其中所述逻辑节点的每一个发送所述版本确认请求的单位时间负载的***约束负载λc,并且通过向下面的方程1或下面的方程2应用所述获取的***约束时间ωc或所述获取的***约束负载λc以及所述逻辑节点的总数N或所述对象逻辑节点的链接目的地节点的数量D:
其中,k表示所述参数k。
(补充说明19)
根据补充说明17或18所述的程序,其中,所述参数k被设置为4。
(补充说明20)
一种分布式数据管理设备,用于实现在存储多个部分数据单元的多个逻辑节点中的至少一个对象逻辑节点,其中,划分数据单元,
所述对象逻辑节点包括:
节点标识符存储单元,用于存储作为对象节点标识符的、在多个标识符中的向对象逻辑节点分配的标识符,所述多个标识符被分别唯一地分配到在具有环形结构的有限标识符空间中的多个逻辑节点;
数据存储单元,用于存储所述多个部分数据单元的至少一个;以及
链接表,用于存储链接信息,所述链接信息用于指示在所述对象逻辑节点和另一个逻辑节点之间的可通信关系,所述链接信息包括在所述对象逻辑节点和下述部分的每一个之间的多个链接:第一链接目的地逻辑节点,所述第一链接目的地逻辑节点具有通过将所述对象节点标识符乘以参数k(k是自然数)而获得的值或小于或接近所述值的标识符;第二链接目的地逻辑节点,所述第二链接目的地逻辑节点具有通过将具有大于或接近所述对象节点标识符的标识符的后继逻辑节点的标识符乘以所述参数k而获得的值或小于和接近所述值的标识符;以及,至少一个第三链接目的地逻辑节点,所述至少一个第三链接目的地逻辑节点具有在所述标识符空间中从所述第一链接目的地逻辑节点的所述标识符到所述第二链接目的地逻辑节点的所述标识符的某处的标识符。
(补充说明21)
一种分布式数据管理方法,其中
计算机用于实现在存储多个部分数据单元的多个逻辑节点中的至少一个对象逻辑节点,其中,划分数据单元,所述对象逻辑节点包括:节点标识符存储单元,用于存储作为对象节点标识符的、在多个标识符中的向对象逻辑节点分配的标识符,所述多个标识符被分别唯一地分配到在具有环形结构的有限标识符空间中的多个逻辑节点;以及,数据存储单元,用于存储所述多个部分数据单元的至少一个,
所述计算机生成链接信息,所述链接信息用于指示在所述对象逻辑节点和另一个逻辑节点之间的可通信关系,所述链接信息包括在所述对象逻辑节点和下述部分的每一个之间的多个链接:第一链接目的地逻辑节点,所述第一链接目的地逻辑节点具有通过将所述对象节点标识符乘以参数k(k是自然数)而获得的值或小于或接近所述值的标识符;第二链接目的地逻辑节点,所述第二链接目的地逻辑节点具有通过将具有大于或接近所述对象节点标识符的标识符的后继逻辑节点的标识符乘以所述参数k而获得的值或小于和接近所述值的标识符;以及,至少一个第三链接目的地逻辑节点,所述至少一个第三链接目的地逻辑节点具有在所述标识符空间中从所述第一链接目的地逻辑节点的所述标识符到所述第二链接目的地逻辑节点的所述标识符的某处的标识符。
(补充说明22)
一种计算机可读记录介质,用于记录根据补充说明11至19的任何一项所述的程序。
本申请要求基于在2012年5月15日提交的日本专利申请No.2012-111189的优先权,其整体公开通过引用被并入在此。
Claims (21)
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来发送所述版本确认请求,并且
所述对象逻辑节点进一步包括:
参数设置单元,所述参数设置单元用于获取直到在所述多个逻辑节点的至少一个中的值范围的改变被发送到所有所述多个逻辑节点的最大时间的***约束时间ωc或者其中所述逻辑节点中的每一个发送所述版本确认请求的单位时间负载的***约束负载λc,并且通过对以下(方程1)或以下(方程2)应用所述获取的***约束时间ωc或所获取的***约束负载λc以及所述逻辑节点的总数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来发送所述版本确认请求,并且
所述对象逻辑节点进一步包括:
参数设置单元,所述参数设置单元用于获取直到在所述多个逻辑节点的至少一个中的值范围的改变被发送到所有所述多个逻辑节点的最大时间的***约束时间ωc或者其中所述逻辑节点中的每一个发送所述版本确认请求的单位时间负载的***约束负载λc,并且通过对以下(方程1)或以下(方程2)应用所述获取的***约束时间ωc或所获取的***约束负载λc以及所述逻辑节点的总数N或所述对象逻辑节点的链接目的地节点的数量D:
其中,k表示所述参数k。
19.根据权利要求17或18所述的程序,其中,所述参数k被设置为4。
20.一种分布式数据管理设备,用于实现在存储多个部分数据单元的多个逻辑节点中的至少一个对象逻辑节点,其中,划分数据单元,
所述对象逻辑节点包括:
节点标识符存储单元,所述节点标识符存储单元用于存储在具有环形结构的有限标识符空间中的多个标识符当中的向所述对象逻辑节点分配的标识符作为对象节点标识符,所述多个标识符被分别唯一地分配给多个逻辑节点;
数据存储单元,所述数据存储单元用于存储所述多个部分数据单元中的至少一个;以及
链接表,所述链接表用于存储链接信息,所述链接信息指示在所述对象逻辑节点和另一逻辑节点之间的可通信关系,所述链接信息包括在所述对象逻辑节点和下述中的每一个之间的多个链接:第一链接目的地逻辑节点,所述第一链接目的地逻辑节点具有通过使所述对象节点标识符乘以参数k(k是自然数)所获得的值或小于或非常接近所述值的标识符;第二链接目的地逻辑节点,所述第二链接目的地逻辑节点具有通过使具有大于或非常接近所述对象节点标识符的标识符的后继逻辑节点的标识符乘以所述参数k所获得的值或小于和接近所述值的标识符;以及至少一个第三链接目的地逻辑节点,所述至少一个第三链接目的地逻辑节点具有在所述标识符空间中从所述第一链接目的地逻辑节点的所述标识符到所述第二链接目的地逻辑节点的所述标识符之间的标识符。
21.一种分布式数据管理方法,其中,
计算机用于实现在存储多个部分数据单元的多个逻辑节点中的至少一个对象逻辑节点,其中,划分数据单元,所述对象逻辑节点包括:节点标识符存储单元,所述节点标识符存储单元用于存储在具有环形结构的有限标识符空间中的多个标识符当中的向所述对象逻辑节点分配的标识符作为对象节点标识符,所述多个标识符被分别唯一地分配给多个逻辑节点;以及数据存储单元,所述数据存储单元用于存储所述多个部分数据单元中的至少一个,
生成链接信息,所述链接信息指示在所述对象逻辑节点和另一逻辑节点之间的可通信关系,所述链接信息包括在所述对象逻辑节点和下述中的每一个之间的多个链接:第一链接目的地逻辑节点,所述第一链接目的地逻辑节点具有通过使所述对象节点标识符乘以参数k(k是自然数)所获得的值或小于或非常接近所述值的标识符;第二链接目的地逻辑节点,所述第二链接目的地逻辑节点具有通过使具有大于或非常接近所述对象节点标识符的标识符的后继逻辑节点的标识符乘以所述参数k所获得的值或小于和接近所述值的标识符;以及至少一个第三链接目的地逻辑节点,所述至少一个第三链接目的地逻辑节点具有在所述标识符空间中从所述第一链接目的地逻辑节点的所述标识符到所述第二链接目的地逻辑节点的所述标识符之间的标识符。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012-111189 | 2012-05-15 | ||
JP2012111189 | 2012-05-15 | ||
PCT/JP2013/001768 WO2013171953A1 (ja) | 2012-05-15 | 2013-03-15 | 分散データ管理装置及び分散データ操作装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104487951A true CN104487951A (zh) | 2015-04-01 |
CN104487951B CN104487951B (zh) | 2017-09-22 |
Family
ID=49583386
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201380037661.5A Active CN104487951B (zh) | 2012-05-15 | 2013-03-15 | 分布式数据管理设备和分布式数据操作设备 |
Country Status (5)
Country | Link |
---|---|
US (1) | US10073857B2 (zh) |
EP (1) | EP2851803A4 (zh) |
JP (1) | JP5967195B2 (zh) |
CN (1) | CN104487951B (zh) |
WO (1) | WO2013171953A1 (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106484321A (zh) * | 2016-09-08 | 2017-03-08 | 华为数字技术(成都)有限公司 | 一种数据存储方法及数据中心 |
CN107229429A (zh) * | 2017-06-27 | 2017-10-03 | 郑州云海信息技术有限公司 | 一种存储空间管理方法及装置 |
CN107665241A (zh) * | 2017-09-07 | 2018-02-06 | 北京京东尚科信息技术有限公司 | 一种实时数据多维度去重方法和装置 |
CN112306403A (zh) * | 2019-08-02 | 2021-02-02 | 美光科技公司 | 基于数据图的概率存储数据 |
CN113032401A (zh) * | 2021-03-31 | 2021-06-25 | 合安科技技术有限公司 | 基于异形结构树的大数据处理方法、装置及相关设备 |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5850054B2 (ja) * | 2011-08-01 | 2016-02-03 | 日本電気株式会社 | 分散処理管理サーバ、分散システム、及び分散処理管理方法 |
CN108536447B (zh) * | 2018-04-11 | 2021-07-16 | 上海掌门科技有限公司 | 运维管理方法 |
US11474866B2 (en) * | 2019-09-11 | 2022-10-18 | International Business Machines Corporation | Tree style memory zone traversal |
JP7239433B2 (ja) * | 2019-10-02 | 2023-03-14 | ヤフー株式会社 | 情報処理装置、情報処理方法、及び情報処理プログラム |
US11507541B2 (en) * | 2020-01-21 | 2022-11-22 | Microsoft Technology Licensing, Llc | Method to model server-client sync conflicts using version trees |
US11494366B1 (en) * | 2021-05-25 | 2022-11-08 | Oracle International Corporation | Change data capture on no-master data stores |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5752243A (en) * | 1993-10-20 | 1998-05-12 | Microsoft Corporation | Computer method and storage structure for storing and accessing multidimensional data |
CN101128825A (zh) * | 2005-01-25 | 2008-02-20 | 特博数据实验室公司 | 树的检索、合计、排序方法、信息处理装置以及树的检索、合计、排序程序 |
CN101180623A (zh) * | 2004-06-03 | 2008-05-14 | 特博数据实验室公司 | 数组的生成方法、信息处理装置以及程序 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100401667C (zh) * | 2000-06-21 | 2008-07-09 | 索尼公司 | 信息记录/再生装置及方法 |
US7519574B2 (en) * | 2003-08-25 | 2009-04-14 | International Business Machines Corporation | Associating information related to components in structured documents stored in their native format in a database |
JP3923931B2 (ja) | 2003-09-16 | 2007-06-06 | 株式会社野村総合研究所 | 論理ネットワークへの参加要求方法、参加受付方法、メッセージ送信方法、参加要求プログラム、参加受付プログラム、メッセージ送信プログラム、参加要求装置、参加受付装置、及びメッセージ送信装置 |
JP4353827B2 (ja) | 2004-02-26 | 2009-10-28 | 株式会社野村総合研究所 | マルチキャストルーティング情報送信方法、及びマルチキャストルーティング情報送信プログラム |
WO2007024918A2 (en) | 2005-08-23 | 2007-03-01 | Matsushita Electric Industrial Co., Ltd. | System and method for service discovery in a computer network using dynamic proxy and data dissemination |
US20090116484A1 (en) | 2005-09-08 | 2009-05-07 | Matsushita Electric Industrial Co., Ltd. | Parallelizing Peer-to-Peer Overlays Using Multi-Destination Routing |
JP2010509692A (ja) | 2006-11-14 | 2010-03-25 | シーメンス アクチエンゲゼルシヤフト | ピアツーピア・オーバーレイ・ネットワークにおける負荷分散のための方法 |
JP2008234563A (ja) * | 2007-03-23 | 2008-10-02 | Nec Corp | オーバレイ管理装置、オーバレイ管理システム、オーバレイ管理方法およびオーバレイ管理用プログラム |
JP4277918B2 (ja) * | 2007-04-13 | 2009-06-10 | 日本電気株式会社 | データ検索装置、データ検索方法およびデータ検索用プログラム |
US8250116B2 (en) * | 2008-12-31 | 2012-08-21 | Unisys Corporation | KStore data simulator directives and values processor process and files |
-
2013
- 2013-03-15 CN CN201380037661.5A patent/CN104487951B/zh active Active
- 2013-03-15 US US14/400,056 patent/US10073857B2/en active Active
- 2013-03-15 EP EP13790415.7A patent/EP2851803A4/en not_active Withdrawn
- 2013-03-15 JP JP2014515468A patent/JP5967195B2/ja active Active
- 2013-03-15 WO PCT/JP2013/001768 patent/WO2013171953A1/ja active Application Filing
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5752243A (en) * | 1993-10-20 | 1998-05-12 | Microsoft Corporation | Computer method and storage structure for storing and accessing multidimensional data |
CN101180623A (zh) * | 2004-06-03 | 2008-05-14 | 特博数据实验室公司 | 数组的生成方法、信息处理装置以及程序 |
CN101128825A (zh) * | 2005-01-25 | 2008-02-20 | 特博数据实验室公司 | 树的检索、合计、排序方法、信息处理装置以及树的检索、合计、排序程序 |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106484321A (zh) * | 2016-09-08 | 2017-03-08 | 华为数字技术(成都)有限公司 | 一种数据存储方法及数据中心 |
CN107229429A (zh) * | 2017-06-27 | 2017-10-03 | 郑州云海信息技术有限公司 | 一种存储空间管理方法及装置 |
CN107229429B (zh) * | 2017-06-27 | 2020-06-16 | 苏州浪潮智能科技有限公司 | 一种存储空间管理方法及装置 |
CN107665241A (zh) * | 2017-09-07 | 2018-02-06 | 北京京东尚科信息技术有限公司 | 一种实时数据多维度去重方法和装置 |
CN107665241B (zh) * | 2017-09-07 | 2020-09-29 | 北京京东尚科信息技术有限公司 | 一种实时数据多维度去重方法和装置 |
CN112306403A (zh) * | 2019-08-02 | 2021-02-02 | 美光科技公司 | 基于数据图的概率存储数据 |
CN113032401A (zh) * | 2021-03-31 | 2021-06-25 | 合安科技技术有限公司 | 基于异形结构树的大数据处理方法、装置及相关设备 |
CN113032401B (zh) * | 2021-03-31 | 2023-09-08 | 合安科技技术有限公司 | 基于异形结构树的大数据处理方法、装置及相关设备 |
Also Published As
Publication number | Publication date |
---|---|
JP5967195B2 (ja) | 2016-08-10 |
JPWO2013171953A1 (ja) | 2016-01-12 |
EP2851803A1 (en) | 2015-03-25 |
US10073857B2 (en) | 2018-09-11 |
CN104487951B (zh) | 2017-09-22 |
WO2013171953A1 (ja) | 2013-11-21 |
EP2851803A4 (en) | 2016-01-13 |
US20150120649A1 (en) | 2015-04-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104487951A (zh) | 分布式数据管理设备和分布式数据操作设备 | |
CN103150394B (zh) | 面向高性能计算的分布式文件***元数据管理方法 | |
US10209893B2 (en) | Massively scalable object storage for storing object replicas | |
US8495013B2 (en) | Distributed storage system and method for storing objects based on locations | |
KR101544480B1 (ko) | 복수 개의 프락시 서버를 포함하는 분산 저장 시스템 및 그 오브젝트 관리 방법 및 컴퓨터에 의하여 독출가능한 저장 매체 | |
US20100161657A1 (en) | Metadata server and metadata management method | |
Cai et al. | A peer-to-peer replica location service based on a distributed hash table | |
US20150227606A1 (en) | Massively scalable object storage system | |
US20120166403A1 (en) | Distributed storage system having content-based deduplication function and object storing method | |
CN111242620A (zh) | 区块链交易***的数据缓存及查询方法、终端及存储介质 | |
Featherston | Cassandra: Principles and application | |
Ding et al. | An efficient quad-tree based index structure for cloud data management | |
CN106326239A (zh) | 分布式文件***及其文件元信息管理方法 | |
CN103617199A (zh) | 一种操作数据的方法和*** | |
Aebeloe et al. | A decentralized architecture for sharing and querying semantic data | |
CN101594316A (zh) | 一种分布式网络的管理方法、内容查询方法、***及装置 | |
CN117008818A (zh) | 数据处理方法、装置、计算机设备和计算机可读存储介质 | |
Mohammadi et al. | A fuzzy logic-based method for replica placement in the peer to peer cloud using an optimization algorithm | |
US20060209717A1 (en) | Distributed storing of network position information for nodes | |
CN100474809C (zh) | 一种文件传输的方法及装置 | |
Qi et al. | A balanced strategy to improve data invulnerability in structured P2P system | |
CN107678688A (zh) | 一种基于云存储***中的管理冗余副本的方法、装置和存储介质 | |
Tran | Data storage for social networks: a socially aware approach | |
US20140188833A1 (en) | Information processing device, information processing terminal, recording medium storing information search program, and information search method | |
CN117478304B (zh) | 区块链管理方法、***和计算机设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |