WO2014054173A1 - Distributed data management system and program - Google Patents

Distributed data management system and program Download PDF

Info

Publication number
WO2014054173A1
WO2014054173A1 PCT/JP2012/075995 JP2012075995W WO2014054173A1 WO 2014054173 A1 WO2014054173 A1 WO 2014054173A1 JP 2012075995 W JP2012075995 W JP 2012075995W WO 2014054173 A1 WO2014054173 A1 WO 2014054173A1
Authority
WO
WIPO (PCT)
Prior art keywords
node
data
network
nodes
overlay network
Prior art date
Application number
PCT/JP2012/075995
Other languages
French (fr)
Japanese (ja)
Inventor
洋 中越
崇利 加藤
Original Assignee
株式会社日立製作所
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 株式会社日立製作所 filed Critical 株式会社日立製作所
Priority to PCT/JP2012/075995 priority Critical patent/WO2014054173A1/en
Publication of WO2014054173A1 publication Critical patent/WO2014054173A1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor

Definitions

  • the present invention relates to a distributed data management system and program, and is suitable for application to a distributed data management system and program using a distributed database by an overlay network.
  • a distributed database is composed of multiple nodes where data is distributed and stored.
  • a distributed database it is necessary to manage which node stores data, and a distributed hash table (DHT: Distributed Hash Table) is used as an example of a method for determining a data storage destination node.
  • DHT Distributed Hash Table
  • each node is arranged in a ring-shaped hash space according to a node hash value derived from a hash function with respect to a unique identifier of each node.
  • a data hash value derived from a hash function is obtained for the key assigned to the data, and the data is transferred to a node having a node hash value close to the data hash value in a ring-shaped hash space in which the nodes are aligned. Is stored.
  • the storage location of data is determined by the proximity in the hash space, that is, the proximity of the hash value. could not be stored.
  • Patent Document 1 describes a system that realizes a distributed network that stores data for nodes based on a distance in a name space.
  • an ID corresponding to a name is given to a node in addition to a hash value, and a network expressing the name space (dictionary space) proximity of the name ID is overlaid on the hash ring network.
  • a hierarchical overlay network having a structure in which a plurality of hash ring networks are hierarchically overlaid is referred to as a hierarchical hash ring network.
  • data can be stored in nodes close to the dictionary space.
  • the hash ring network is configured based on the proximity in the dictionary space using the name ID, and the name ID means the proximity on the network space.
  • the name ID means the proximity on the network space.
  • no means for accessing data across layers is provided for the construction of a hierarchical hash ring network, so that data written to a node in a certain subnetwork is not provided. Can be referred only from a node participating in the sub-network, and cannot be referenced from a hash ring network in another layer or another hash ring network in the same layer.
  • data stored in a node can be accessed from a plurality of geographical spaces or bases on a network space.
  • a data access means that straddles between layers is not provided, data access from different hash ring networks is denied.
  • a situation has occurred in which data written to a node in a subnetwork composed of a home network space cannot be referred to from a subnetwork composed of a network space outside the home. End up.
  • a distributed database is constructed that has disaster resistance and can access data from any of the constituent nodes, and manages the data stored in the distributed database. It is intended to propose a data management system and program.
  • a plurality of nodes connected to each other on a network and storing data
  • an uppermost overlay network that is connected to the plurality of nodes and is composed of the entire set of the plurality of nodes.
  • a hierarchical overlay network in which a sub-overlay network composed of a subset of the plurality of nodes and a unit overlay network composed of units of the plurality of nodes are sequentially hierarchized, and the hierarchical overlay A core node that manages the data by a network, and each of the plurality of nodes is assigned a node number indicating a stochastic uniform number across the set of the plurality of nodes, and the hierarchical overlay network Each overlay network included in the Based on the node number assigned to each node constituting the network and the data number indicating the stochastic uniform number obtained from the data stored in the node, the node storing the data in the network is determined.
  • the core node configures the sub-overlay network by a subset of the plurality of nodes determined based on a geospatial distance when constructing the hierarchical overlay network.
  • the uppermost overlay network, the sub-overlay network, and the unit overlay network are associated with each other in order, and for each node constituting the hierarchical overlay network, information indicating all overlay networks including the node and the information Overlay Generating network configuration information having information on all nodes constituting the network and transferring the network configuration information to each node, the plurality of nodes holding the transferred network configuration information, and the plurality of nodes
  • a distributed data management system is provided that, when writing data to a hierarchical overlay network, replicates the data in each overlay network associated with the unit overlay network that wrote the data.
  • a computer in a core node connected to a plurality of nodes storing data, a top-level overlay network composed of a whole set of a plurality of nodes storing data, A hierarchical overlay network in which a sub-overlay network composed of a subset of a plurality of nodes and a unit overlay network composed of a unit of the plurality of nodes are sequentially layered is constructed, and the data is obtained by the hierarchical overlay network.
  • Each of the plurality of nodes is assigned a node number indicating a stochastic uniform number over the set of the plurality of nodes, and is included in the hierarchical overlay network.
  • the overlay network Based on the node number assigned to each node constituting the valley network and a data number indicating a stochastic uniform number obtained from the stored data, a node for storing the data in the network is determined.
  • a ring network, and the program is executed by a subset of the plurality of nodes determined based on a geospatial distance when the hierarchical overlay network is built on a computer in the core node.
  • a step of constructing an overlay network a step of associating hierarchies in the order of the highest order overlay network, the sub-overlay network, and the unit overlay network; and for each node constituting the hierarchical overlay network, Generating network configuration information including information indicating all included overlay networks and information relating to all nodes constituting the overlay network; and transferring the generated network configuration information to each of the nodes.
  • a program is provided for execution.
  • the present invention it is possible to construct a distributed database that has disaster resistance and can access data from any constituent node, and to manage the data stored in the distributed database.
  • FIG. 9 is a table example showing network configuration node information in the hierarchical hash ring network shown in FIG. 8.
  • FIG. It is a table which shows an example of network configuration information.
  • It is a sequence diagram which shows an example of the process procedure of data writing. It is explanatory drawing which shows the example of a format of a data write request.
  • It is a sequence diagram which shows an example of the process sequence of data deletion. It is the schematic for demonstrating the method to recover
  • 16 is a table showing an example of a clustering policy used in the processing shown in FIG.
  • the processor since the program performs processing determined by being executed by the processor using a memory and a communication port (communication control device), the processor The subject may be an explanation. Further, the processing disclosed with the program as the subject may be processing performed by a computer such as a management server or an information processing apparatus. Further, part or all of the program may be realized by dedicated hardware. Various programs may be installed in each computer by a program distribution server or a computer-readable storage medium.
  • a distributed data management system is distributed by a plurality of nodes storing data and a hierarchical overlay network (hierarchical hash ring network) in which the plurality of nodes participate.
  • Type database and a core node that manages data by the constructed hierarchical hash ring network, and the core node is a sub-overlay network ( Hash ring network), generating configuration information having a network including each node in the hierarchical hash ring network and information on all nodes constituting the network, and transferring the generated configuration information to each node Yes.
  • FIG. 1 is a block diagram showing the configuration of the distributed data management system according to the first embodiment.
  • a distributed data management system 1 shown in FIG. 1 includes a distributed database in which a core node 10 and a plurality of nodes 20 (individually, nodes 20A to 20N) are connected to each other via a network 30, and the plurality of nodes 20 participate. to manage.
  • Each of the core node 10 and the plurality of nodes 20 has a central processing unit (CPU), a memory, and an interface, and is realized by an information processing device such as a general computer, a server, or a data center. Is done.
  • the core node 10 creates a hierarchical hash ring network configuration constructed by incorporating a plurality of nodes 20 as a distributed database, and stores the hierarchical hash ring network. It is a device for managing. More specifically, the core node 10 collects measured values (hereinafter referred to as metrics) obtained by the nodes 20A to 20N and indicating the performance of the nodes, and based on the collected metrics, the hierarchical hash ring network Then, the core node 10 transfers configuration information of the constructed hierarchical hash ring network to each node 20.
  • the hierarchical hash ring network is an example of an overlay network, and a process in which the core node 10 constructs a hierarchical hash ring network and transfers the configuration information to the node 20 will be described later with reference to FIG.
  • the core node 10 includes a configuration information management unit 11, a communication I / O (Input / Output) 12, and a communication unit 13.
  • the communication I / O 12 is an interface used when the configuration information management unit 11 uses a communication function, and generally corresponds to software such as a communication library or a protocol stack, but is not limited thereto.
  • the communication unit 13 is a device that provides a communication function, and generally corresponds to a NIC (Network Interface Card), but is not limited thereto.
  • the core node 10 has an input / output device (not shown).
  • input / output devices include a display, a keyboard, and a pointer device, but other devices may be used.
  • a serial interface or an Ethernet interface is used as the input / output device, a display computer having a display or keyboard or pointer device is connected to the interface, and the display information is transmitted to the display computer.
  • the display computer may perform the display, or the input may be replaced by the input / output device by receiving the input.
  • the configuration information management unit 11 creates a hierarchical hash ring network configuration based on the metrics of a plurality of nodes 20 by reading and executing a program stored in a memory (not shown) by a CPU (not shown). And distributing the created configuration information of the hierarchical hash ring network to the plurality of nodes 20.
  • the creation of the hierarchical hash ring network configuration and the distribution of the configuration information of the hierarchical hashing network by the configuration information management unit 11 are executed by the CPU executing a program read from the recording medium connected to the core node 10. It may be realized.
  • the configuration information management unit 11 functionally includes a metric management unit 111, a configuration information creation unit 112, and a configuration information transfer control unit 113.
  • the metric management unit 111 collects and manages metrics necessary for configuring a hierarchical hash ring network described later from a plurality of nodes 20. More specifically, the metrics respectively acquired by the metric acquisition units 22 of the nodes 20A to 20N are transmitted on the network and collected by the metric management unit 111 via the communication unit 13 and the communication I / O 12 of the core node 10. Is done. The metric management unit 111 collects the collected metrics into a table, a list, etc., and manages them by storing them in a storage area.
  • each part (the CPU 235 or the memory of the node 20). 236, etc.) are collected and managed as a metric management table.
  • FIG. 2 is a table showing an example of the metric management table.
  • the metrics collected by the metric management unit 111 for each of the plurality of nodes 20 (nodes 20A, 20B, and 20C as an example). Is stored.
  • the metric management table 141 shown in FIG. 2A stores metrics indicating the specifications and position information of the nodes 20A, 20B, and 20C.
  • the node 20 141A describes the node 20 that is the metric acquisition target
  • the address column 141B describes the address of the node 20.
  • the specification column including the CPU column 141C, the memory column 141D, the storage column 141E, and the network column 141F metrics related to specifications in each part (CPU 235, memory 236, storage unit 234, communication unit 233, etc.) are described.
  • the CPU column 141C describes the static specification performance (corresponding to the operating frequency) of the CPU 235 and the usage rate (corresponding to the CPU usage rate) indicating the dynamic performance.
  • the static specification performance (corresponding to the memory capacity) of the memory 236 and the usage rate (corresponding to the memory usage rate) indicating the dynamic performance are described.
  • position information corresponding to address information or coordinate information indicating the position of the node 20 that is the metric acquisition target is described.
  • a metric indicating the distance between nodes on the network is stored for the nodes 20A, 20B, and 20C.
  • the type of value indicating the network distance between nodes is not particularly limited. For example, it may be the number of hops obtained by executing Ping between nodes, may be a value of throughput or response, and may be an IP address.
  • the value may be a value based on the closeness of the numerical value, or may be a value obtained by normalizing a value obtained by another measurement.
  • the metrics stored in the metric management tables 141 and 142 are not limited to metrics acquired by the metric acquisition unit 22 of the node 20, but may be metrics directly input by an administrator, a user, or the like.
  • the administrator inputs the position information of the node 20A. It may be stored in a management table.
  • FIG. 3 is a schematic diagram showing a screen example of the administrator service setting screen.
  • the administrator service setting screen 143 shown in FIG. 3 is a screen provided for the administrator to directly perform metric setting and network setting.
  • the administrator service setting screen is displayed on, for example, the core node 10 or a display unit (not shown) of an administrator terminal (not shown) connected to the core node, and is input from the administrator to the administrator service setting screen.
  • the configuration information is notified to the configuration information management unit 11.
  • the administrator service setting screen 143 includes a metric setting field 143A, a hierarchy number setting field 143B, a policy hierarchy setting field 143C, a policy content setting field 143D, and a node duplication setting field 143E.
  • position information (address information or coordinate information) can be input for the designated node 20.
  • the hierarchy number setting column 143B the total number of hierarchies in the hierarchical hash ring network can be set.
  • the policy hierarchy setting field 143C and the policy content setting field 143D the hierarchy and contents can be set for the policy at the time of creating the hash ring network based on the spatial proximity.
  • the node duplication setting field 143E it is possible to set whether or not duplication of the node 20 is permitted between hash ring networks. Therefore, the direct setting of the metric relating to the position information described above can be performed by inputting to the metric setting field 143A of the administrator service setting screen 143. Further, the hierarchy number setting field 143B, the policy hierarchy setting field 143C, the policy content setting field 143D, and the node duplication setting field 143E will be described later in the description of the processing in which each setting is performed.
  • the configuration information creation unit 112 creates configuration information of the hierarchical hash ring network in which the node 20 participates based on the metric management tables 141 and 142 managed by the metric management unit 111.
  • the configuration information transfer control unit 113 distributes the hierarchical hash ring network configuration information created by the configuration information creation unit 112 to the plurality of nodes 20.
  • the node 20 is communicably connected from a user terminal (not shown) via a network such as a mobile phone network or WiFi (registered trademark).
  • the node 20 is a node of a hierarchical hash ring network whose configuration is managed by the core node.
  • the node 20 acquires a metric of the own node 20 (for example, the node 20A) and transmits it to the core node 10, a user (user terminal), and others. And a function for processing a request (data access request) accompanied by data access sent from the node 20 (for example, the node 20B).
  • the data access request sent from the user terminal or another node 20 corresponds to a data write request or a read request to the distributed data. More specifically, the data access request sent from the user terminal requests general data storage or reference.
  • the data access request sent from the other node 20 (for example, the node 20B) is a request to replicate (replicate) the data in the case of a write request, and the node connected from the user terminal in the case of a read request. 20B requests to read the data requested from the user terminal instead of the user terminal.
  • data access is not limited to data write requests and read requests, but includes an add request for requesting node addition processing, a delete request for requesting data or node deletion, and the like.
  • node 20 the detailed configuration of the node 20 will be described. However, since all of the nodes 20A to 20N have the same configuration, only the node 20A will be described for the sake of brevity.
  • the number of nodes 20 is not particularly limited, and it is assumed that there are n nodes 20 in FIG.
  • the node 20A has a data control unit 21, a metric acquisition unit 22, and a management device 23 as shown in FIG.
  • the node 20A in FIG. 1 describes components related to processing of a data access request from a user terminal.
  • the data control unit 21 includes a request processing unit 211, a data write control unit 212, a data read control unit 213, and a table management unit 214, and controls processing related to a data access request from a user terminal.
  • the request processing unit 211 has a function of receiving a data access request sent from a user terminal or another node 20B to 20N, performing analysis and calculation of a hash value, and outputting an analysis result and a calculation result. 215, a hash calculation unit 216, and a node derivation unit 217.
  • the request analysis unit 215 receives a data access request via the communication unit 233 and the communication I / O 231 and analyzes the received request.
  • the request analysis unit 215 determines, for example, whether the data access request is a data write request or a read request by the analysis, and also includes information (hereinafter referred to as a data access key) included in the request. Or a data key).
  • the hash calculation unit 216 derives a hash value from the data key analyzed by the request analysis unit 215. Further, the node deriving unit 217 refers to the hash value derived by the hash calculation unit 216 and the table managed by the table management unit 214, and accesses the data accessed by the request (data write destination or data The node 20 to be read in) is determined.
  • the request processing unit 211 notifies the data write control unit 212 of the data write request and the data write destination when the request is a data write request according to the analysis result by the request analysis unit 215. If it is a data read request, the data read control unit 213 is notified of the data read request and the data read destination.
  • the data write control unit 212 When the data write control unit 212 receives a data write request from the request processing unit 211 and the data write destination is another node (for example, the node 20B), the data write control unit 212 passes through the communication I / O 231. The communication unit 233 requests the other node 20B to write the data. In addition, when the data write control unit 212 receives a data write request from the request processing unit 211 and the data write destination is the node 20 ⁇ / b> A of itself, the data write control unit 212 passes the storage unit via the storage I / O 232. Write data to H.234.
  • the data reading control unit 213 When the data reading control unit 213 receives a data reading request from the request processing unit 211 and the data reading destination is another node (for example, the node 20B), the data reading control unit 213 performs communication via the communication I / O 231. The unit 233 requests the other node 20B to read the data. In addition, when the data read control unit 213 receives a data read request from the request processing unit 211 and the data read destination is the node 20 ⁇ / b> A of the data read control unit 213, the data read control unit 213 via the storage I / O 232 stores Read data from.
  • the table management unit 214 manages a table in which configuration information of the hierarchical hash ring network sent from the core node 10 is described, and receives a reference to the table from the node deriving unit 217.
  • the metric acquisition unit 22 acquires one or more types of metrics from the management device 23 and transmits the acquired metrics to the core node 10. As an example, the metric acquisition unit 22 transmits to the regularly acquired metric core node 10, and when a failure occurs in the node 20 ⁇ / b> A, transmits the metrics collected in an event-driven manner in response to the failure to the core node 10. .
  • the management device 23 includes a communication I / O 231, a storage I / O 232, a communication unit 233, a storage unit 234, a CPU 235, a memory 236, and a position measurement unit 237.
  • the communication I / O 231 is an interface used when the data control unit 21 uses a communication function, and generally corresponds to software such as a communication library or a protocol stack, but is not limited thereto.
  • the storage I / O 232 is an interface used when the data control unit 21 requests storage access.
  • the communication unit 233 is a device that provides a communication function to the node 20A, and generally corresponds to a NIC, but is not limited thereto.
  • the storage unit 234 generally represents the local storage in the node 20A.
  • the storage unit 234 provides a storage function to the node 20A and corresponds to, for example, an auxiliary storage device or a hard disk drive (HDD).
  • the CPU 235 reads the program and data stored in the storage unit 234 and held in the memory 236, and processes the data according to the instruction code of the program.
  • the memory 236 is a main storage device that temporarily stores programs and data stored in the storage unit 234 and the like.
  • the position measurement unit 237 is a device that measures the geographical position of the node 20A and outputs the position information as a numerical value, for example, and is generally realized by GPS (Global Positioning System).
  • GPS Global Positioning System
  • the position measurement unit 237 facilitates the description of the distributed data management system according to the present embodiment, but is not necessarily required.
  • the geographical position information indicating the installation position of the node 20A may be stored in the node 20A or the core node 10 when the node 20A is installed.
  • (1-2) Construction of Hierarchical Hash Ring Network an example of a construction method of a hierarchical hash ring network constructed by the configuration information creation unit 112 in the distributed data management system 1 according to the present embodiment will be described.
  • the distributed data management system 1 one or more replication data is created for each tier, and the number of tiers of the tiered network is set according to the number of replication data.
  • the number of hierarchies of the hierarchical network may be set in advance in the core node 10, and the number of hierarchies desired by the administrator is displayed in the hierarchy number setting field 143B of the administrator service setting screen 143 shown in FIG. May be set.
  • the number of layers of the hierarchical hash ring network is four. Therefore, the number of replication data in the hierarchical hash ring network managed by the distributed data management system 1 is at least four.
  • FIG. 4 is a flowchart showing a processing procedure for constructing a hierarchical hash ring network.
  • a processing procedure for constructing a hierarchical hash ring network in which the total number of hierarchies is four and nodes 20A to 20M participate will be described.
  • the configuration information creation unit 112 is a node 20 participating in the distributed database (here, the nodes 20A to 20M, “A”, “B”,.
  • a unique identifier assigned to each is input to the hash function to derive hash values of the nodes 20A to 20M (step S101).
  • the identifier assigned to the nodes 20A to 20M only needs to be able to uniquely identify each of the nodes 20A to 20M, and may be either a character string or a numerical value.
  • the type of hash function is not limited. For example, a hash function such as SHA (Secure Hash Algorithm) -1, SHA256, or MD (Message Digest Algorithm) 5 can be used.
  • the nodes 20A to 20M are configured across a plurality of hierarchies, but the hash value space of each node 20 is the same. That is, the hash space sizes in all the hash ring networks constituting the hierarchical hash ring network are the same, and the nodes 20A to 20M are uniquely determined by the same hash value in the hash ring network in which the nodes 20A to 20M participate.
  • the configuration information creation unit 112 creates a layer 0 network including all the nodes 20 based on the hash value derived in step S101. Create (step S102). Specifically, the configuration information creation unit 112 maps the maximum value (for example, “HASH_MAX”) that can be taken by the hash function from the minimum value (for example, “0”) that can be taken by the hash function to the one-dimensional hash ring space, Nodes 20A to 20M are arranged in a one-dimensional hash ring space according to their hash values.
  • the size of the hash space and the arrangement method in the hash space are not particularly limited.
  • the configuration information creation unit 112 creates, for each of the nodes 20A to 20M, hash ring networks including only itself for the number of nodes of the nodes 20A to 20M (step S103).
  • This hash ring network is the lowest layer network, and when the total number of hierarchies is 4, it corresponds to the third layer network.
  • the configuration information creation unit 112 maps the minimum and maximum values that can be taken by the hash function to a one-dimensional hash ring space, and sets each of the nodes 20A to 20M to the respective hash values. Accordingly, it is arranged in a one-dimensional hash ring space.
  • the configuration information creation unit 112 creates m layers (m is a variable) of a hash ring network (hereinafter referred to as a neighborhood network) based on spatial proximity.
  • m is a variable
  • the spatial proximity may be a geographic space proximity or a network space proximity.
  • step S104 the configuration information creation unit 112 is a node whose distance in the geographic space or network space is close to each node 20 with respect to the node 20 assigned to each layer. 20 is clustered.
  • a network created by incorporating the nodes clustered in step S104 is also referred to as a neighborhood network.
  • FIG. 5 is a table showing an example of a clustering policy.
  • the policy table 144 shown in FIG. 5 includes a layer column 144A in which the number of layers of networks is described, a policy (geospace) column 144B in which a policy in the case of using a geospace as a reference, and a network space as a reference And a policy (network space) column 144C in which a policy is described.
  • the node 20 when clustering is performed using the network space as a reference, referring to the column of the policy (network space) column 144C in FIG. 5, the node 20 is connected to the node 20 whose network distance is within “100” in the first layer. It is clustered (clustered), and it is shown that the second layer is clustered with a node 20 whose network distance is within “20”. Note that, when the policy described in the policy (network space) column 144C in FIG. 5 is followed, it is conceivable that overlapping nodes occur in a plurality of clusters when a plurality of policies are satisfied. This is dealt with by the de-duplication processing (step S106) of the overlapping node.
  • the nodes 20 are clustered by the region of the prefecture in the first layer, and the second layer Shows that it is clustered by the area of municipalities.
  • the policy (geographical space) of the second layer it is not only clustered in the area of municipalities, but “but include adjacent municipalities” and “but adjacent to Tokyo 23 wards. It can be seen that a policy permitting overlapping areas can be set, such as “include 23 wards in the municipality to do”.
  • Such an overlap area setting exists in a municipality where the user resides when considering a user who lives in a municipality adjacent to the 23 wards of Tokyo and frequently visits the 23 wards of Tokyo. It is possible to improve the convenience for the user by clustering the nodes 20 in the 23 wards of Tokyo where the user visits frequently rather than clustering only the nodes 20 To be done.
  • the position coordinates in the geographic space of each of the nodes 20A to 20M are stored in the position information column 141G of the metric management table 141.
  • the configuration information creation unit 112 can refer to a fixed area information table in which coordinate information of a rectangular area corresponding to a prefecture or a city is stored in the core node 10.
  • FIG. 6 is a table showing an example of the fixed area information table.
  • the fixed area information table 145 shown in FIG. 6 includes a prefecture name field 145A in which the prefecture name is described and a rectangular area field 145B in which the coordinate information of the corresponding rectangular area is described.
  • a rectangular area is defined.
  • a fixed area information table in which a rectangular area corresponding to a municipality is defined may be prepared.
  • the fixed area information table 145 may be created by data input by an administrator or automatic processing. Specifically, for example, the network hierarchy for setting the policy is set in the policy hierarchy setting field 143C of the administrator service setting screen 143 shown in FIG. 3, and the policy is selected and set in the policy content setting field 143D.
  • the configuration information creation unit 112 refers to the position coordinates stored in the position information column 141G of the metric management table 141 for each of the nodes 20A to 20M, and each node 20 enters the fixed area information table 145. By determining whether or not it belongs to the retained “prefecture” rectangular area, it is possible to determine whether or not the first layer policy is satisfied and to determine the node 20 to be clustered.
  • the target prefecture or city may be set directly by the administrator, or a predetermined range of rectangular area is derived and set from the address information input by the administrator. You may do it.
  • clustering can be completed with an O (logN) calculation amount due to the nature of the R-tree. it can.
  • the clustering policy may be set directly by the administrator from the administrator service setting screen 143 shown in FIG.
  • the administrator sets a hierarchy for setting the policy in the policy hierarchy setting field 143C of the administrator service setting screen 143, and the specific contents of the policy (for example, geospatial space) are set in the policy content setting field 143D.
  • the same setting as that of the policy table 144 shown in FIG. 5 can be realized.
  • the address information of the node 20 is described in the metric setting field 143A on the administrator service setting screen 143 shown in FIG. 3, the coordinate information of the node 20 is obtained from the address information with reference to FIG. Can be derived.
  • FIG. 7 is an explanatory diagram illustrating an example of overlapping rectangular areas.
  • nodes [1] to [4] exist in the A ward
  • nodes [5] in the B ward nodes [6] in the C ward
  • nodes [7] in the D ward nodes [7] in the D ward.
  • “A ward cluster” to “D ward cluster” indicated by broken lines are rectangular areas set by the policy.
  • the nodes [1] to [7] are assigned to the above-mentioned respective sections.
  • the nodes [1] to [7] are permitted to be duplicated, one node is permitted to be duplicated in a plurality of clusters. Specifically, for example, the node [3] is assigned to the A ward class and the B ward cluster in an overlapping manner, and the node [6] is assigned to the C ward cluster and the D ward cluster in an overlapping manner.
  • the node 20 included in the hash ring network that is rectangular according to one policy can be included in another hash ring network that is rectangular according to another policy. .
  • clustering by geographic space and clustering by network space may be simultaneously specified in the policy table 144. That is, for example, the policy table may describe a policy for clustering by geographic space in the first layer and a policy for clustering by network space in the second layer. Further, the policy described in the policy table may be that both the policy by the geo space and the policy by the network space are satisfied.
  • the policy table described in this way is the policy table of FIG. As in 144, it can be expected that only the same effect as the case where the policy based on the geographical space and the policy based on the network space are separately described, and the description of the policy is only complicated. That is, set the policy “Tokyo and network distance is within 100” in the first layer, and set the policy “Tokyo” in the first layer and “network distance is within 100” in the second layer. Has the same effect on an overlay network.
  • step S105 the configuration information creation unit 112 sets the number of nodes of related lines that pass through all hierarchies for a plurality of hierarchies in the neighboring network created in step S104. And a hash ring network between hierarchies is associated with each node 20. Since the association line is determined corresponding to the nodes 20A to 20M, the association is surely made for the 0th layer network including all of the nodes 20A to 20M and the 3rd layer network including only the nodes 20A to 20M. Done. In addition, a hash ring network including the corresponding node 20 is also associated with the first layer and second layer networks.
  • the node 20A when the node 20A is included in the third layer network “R0000”, the second layer network “R000”, the first layer network “R00”, and the zeroth layer network “R0”, the node 20A corresponds to the node 20A
  • the related line A is indicated by “R0000-R000-R00-R0”.
  • all the hash ring networks to be allocated are associated with the related line A.
  • the related line A is “R0000-R000, R001-R00-R0”. As shown.
  • the configuration information creating unit 112 refers to the metric table 141, and for each node 20, the lowest layer of the neighboring network that is allowed to exist ( The lowest acceptable layer) is determined, and which layer of the neighboring network is included is determined. In the determination of the allowable lowest layer in step S106, the lowest layer network (corresponding to the third layer network in this description) is not the target, but the first layer of the lowest layer network is the target.
  • At least one replication data is created in each layer as described above.
  • the number of nodes constituting the sub-network in the lower layer is smaller than the number of nodes in the upper layer. Therefore, as the number of hierarchies incorporated into the sub-network increases, the lower the layer, the higher the possibility of becoming a replication target node. If the performance of a computing resource of a certain node 20A is lower than that of the other nodes 20B to 20N, if the node 20A is incorporated in all layers, the load is relatively higher than that of the other nodes 20B to 20N. There is a problem of concentration. Therefore, in step S106, it is preferable that the node 20A having a low calculation resource performance is not incorporated in the lower-layer hash ring network as much as possible.
  • the low-performance node 20 when determining the allowable lowest layer of the node 20, the low-performance node 20 is not included in the lower layer, in other words, the lower-performance node is included in the upper layer. 20 is incorporated.
  • a method for including the low-performance node 20 in the upper layer is not particularly limited, but a method example will be described below.
  • the index of the node 20 (for example, corresponding to the description contents of the node column 141A) is “i”, and the metric index of the node (for example, the description contents of the CPU column 141C to the network column 141F) (Equivalent) is “j”, a set of the node 20 and its metrics is represented by x [i, j].
  • x [i, j] a metric value described in the metric management table 141 may be used as it is, or a separately normalized value may be used.
  • Li for deriving the allowable lowest layer of node i is given by Or Can be determined as follows.
  • Equation (1) indicates the total number of metrics of node i.
  • Expression (1) obtains the logarithm of all the metrics in the node i and sets the minimum value to Li.
  • the calculated Li or a value obtained by normalizing Li is set as the allowable lowest layer value.
  • Equation (2) is an expression for deriving a ratio with the standard deviation with respect to the metric j of the node i, and the allowable lowest layer is determined using Li obtained by Expression (2). For example, if Li is a negative number, the node i is assigned only to the first hierarchy, and if Li is 0 or more, the node i is assigned to the first hierarchy and the second hierarchy.
  • the configuration information creating unit 112 adjusts the nodes in the neighboring network by performing deduplication processing for duplicate nodes (step S107) and hash space. The adjustment is performed by performing the adjustment (step S108).
  • Duplicate node deduplication processing refers to creation of configuration information for duplicate nodes assigned to a plurality of neighboring networks in the same hierarchy, which can be generated when duplication of the node 20 is permitted by the policy described in the policy table 144
  • This is a process for evaluating whether the duplicate node is a node where duplication should be permitted, and canceling duplication when it is determined that duplication should not be permitted.
  • a method for evaluating whether or not an overlapping node is a node that should be allowed to overlap is not particularly limited, but a method example will be described below.
  • the configuration information creation unit 112 applies the above equation (2) to the metric j of the node i that is a duplicate node, and the obtained value Li is larger than a predetermined threshold (for example, 2). It is determined that duplication is permitted.
  • a predetermined threshold for example, 2).
  • the configuration information creation unit 112 is obtained by applying the above equation (2) to the metric j of the node i.
  • the number of networks that allow duplication may be determined according to the value Li. Specifically, for example, if the obtained value Li is 3 or more, duplication in 3 or more neighboring networks is permitted, and if it is 2 or more and less than 3, duplication in 2 neighboring networks is permitted. If it exists, it is sufficient that duplication is not permitted.
  • the node 20 that is not permitted to duplicate is incorporated into any one of the neighboring networks.
  • An example of a method for determining a neighboring network to which the node 20 to which duplication is not permitted is determined will be described below.
  • the configuration information creation unit 112 when the duplication is not permitted for the node 20 that has been duplicated in the two neighboring networks as a result of the clustering in step S104, the configuration information creation unit 112, among the two neighboring networks that have been duplicated, The node is assigned to a neighboring network having a smaller number of nodes constituting the neighboring network.
  • the configuration information creating unit 112 extends from the node located immediately before the node in the hash space to the node located one after.
  • the average of the distances between nodes in the hash space of each of the two neighboring networks is calculated, and the node is assigned to the neighboring network that is more biased with respect to the calculated average of the distances between the nodes.
  • the configuration information creation unit can also be used when duplication is not permitted for the node 20 that overlaps with three or more neighboring networks.
  • 112 can determine the neighborhood network to which the node is assigned by the same process.
  • the adjustment of the hash space means that for each neighboring network, the distance between the nodes in the hash space is derived for all the nodes 20 included in the neighboring network, and is divided into the neighboring networks based on the deviation of the distance between the nodes. This is a process of adjusting the hash space corresponding to the neighboring network by adding a node of the neighboring network.
  • the distance between nodes in the hash space means a distance from a certain node (start node) to a node (end node) located immediately after the start node.
  • the configuration information creation unit 112 derives the distance between the nodes in the hash space for all the nodes 20 included in the neighboring network, and the deviation of the distance between the nodes (for example, using the standard deviation) is predetermined. If it is equal to or greater than the threshold value, the hash values of the start node and the end node are acquired. Then, the configuration information creation unit 112 searches for a node that is included in the upper neighboring network, and whose hash value is between the acquired hash value of the start node and the hash value of the end node, The node of the corresponding upper neighbor network is added and incorporated into the neighbor network from which the distance between the nodes is derived.
  • the search target of the node to be additionally incorporated into the neighboring network may be, for example, a node included in a neighboring network in the same hierarchy adjacent to the neighboring network, but the non-overlapping of the overlapping nodes described in step S107. It is preferable to search from the nodes included in the upper neighboring network because the result of the conversion processing may be invalidated.
  • the configuration information creation unit 112 confirms the number of nodes in the hash ring network formed by neighboring networks in the same hierarchy (step S109), and corrects the adjustment value of the neighboring network as necessary (step S109). Step S110).
  • step S109 the configuration information creation unit 112 performs a certain level of hash ring network (for each layer) on all layers of the hierarchical hash ring network configured by the processes in steps S101 to S108. It is determined whether the total number of nodes in the upper layer hash ring network) is at least two more than the total number of nodes in the lower layer hash ring network one layer below that is associated by the associated line determined in step S105.
  • the reason for determining the difference between the number of at least two nodes is to maintain one replication node that is necessary for reliably performing data replication and the replication data that occurs when the node is deleted. This is to secure one node as follows. Processing related to data replication will be described later with reference to FIGS. 11 and 12, and processing related to node deletion will be described later with reference to FIG.
  • step S109 If the total number of nodes in the upper layer hash ring network is one more or less than the total number of nodes in the lower layer hash ring network in step S109 (NO in step S109), the configuration information creation unit 112 corrects the adjustment value used in the adjustment of the neighborhood network in step S106 and step S107 (step S110), returns to the process of step S104, and constructs the neighborhood network again.
  • the correction of the adjustment value in step S110 corresponds to a process of loosening the restriction by the threshold value by lowering the threshold value used in step S106 and step S107.
  • the process proceeds to step S111.
  • FIG. 8 is a schematic diagram illustrating a configuration example of a hierarchical hash ring network generated by the process illustrated in FIG.
  • the nodes 20A to 20M incorporated in the hierarchical hash ring network are indicated by “A” to “M” for simplicity.
  • other nodes may be referred to as “node A” to “node M” or “A” to “M” for simplicity.
  • FIG. 9 is a table example showing network configuration node information in the hierarchical hash ring network shown in FIG.
  • the network configuration node information 146 shown in FIG. 9 information about each node incorporated in the hierarchical hash ring network shown in FIG. 8 is stored. Further, the hierarchical hash ring network shown in FIG. 8 is configured by the nodes A to M shown in FIG.
  • the network configuration node information 146 includes a node column 146A, a node hash column 146B, an allowable lowest layer network column 146C, a neighboring node column 146D, and an address column 146E.
  • node column 146A node names incorporated in the hierarchical hash ring network are described.
  • “A” to “M” are described corresponding to the nodes A to M.
  • hash values (node hash values) corresponding to the nodes A to M are described.
  • MD5 values obtained by applying MD5, which is one of hash functions, to unique IDs (for example, “a” to “m”) possessed by nodes A to M, respectively, are described.
  • the allowable lowest layer network column 146C In the allowable lowest layer network column 146C, the allowable lowest layer for each node determined in step S106 of FIG. 4 is described.
  • the allowable lowest layer network column 146C describes the allowable lowest layer “1” only for the node F, and the allowable lowest layer “2” for the other nodes A to E and G to M.
  • the node F is incorporated in the network of the first hierarchy or higher, but is not incorporated in the network of the second hierarchy.
  • the other nodes A to E and G to M are incorporated in both the first layer network and the second layer network.
  • each network is generated by a combination of neighboring nodes described in the neighboring node column 146D.
  • addresses for example, IP addresses
  • the network configuration node information 146 may have a configuration in which a host name is described instead of the address column 146E, or a configuration in which other network location information is described. Also good.
  • one network “R0” including all nodes (nodes A to M) is generated.
  • the nodes A to M are sequentially arranged according to the respective node hash values described in the node hash column 146B of the network configuration node information 146.
  • the nodes A to M are arranged according to the node hash value described in the node hash column 146B.
  • the first layer of the hierarchical hash ring network shown in FIG. 8 includes a neighboring network “node group” clustered in step S104 of FIG. 4 based on the policy of the first layer described in the policy table 144 of FIG. R00 "and” R10 "are generated.
  • the network “R00” is composed of nodes A to G
  • the network “R10” is composed of nodes C and HM.
  • the node C is a node overlapping with the networks “R00” and “R10”.
  • the policy for the first layer clustering condition described in FIG. 5 is wider (distance) than the policy for the second layer clustering condition, and is particularly based on a wide neighborhood in a geographical space. Therefore, each of the networks “R00” and “R10” in the first layer is a neighborhood network including a long-distance neighborhood. is there.
  • the second layer of the hierarchical hash ring network shown in FIG. 8 includes a neighboring network “by a group of nodes clustered in step S104 of FIG. 4 based on the policy of the second layer described in the policy table 144 of FIG. R000 "," R001 ", and” R100 "are generated.
  • the network “R000” is configured by nodes A to C
  • the network “R001” is configured by nodes D, E, and G
  • the network “R100” is configured by nodes C, H, K, and M.
  • the nodes D, I, J, and L may be any of the second layer because the node has low performance or does not conform to the second layer clustering condition described in the policy table 144. It is not integrated into the network.
  • the second layer clustering condition policy described in FIG. 5 is narrower than the first layer clustering condition policy, and in particular, based on a narrow neighborhood in a geographical space,
  • Each of the networks “R000”, “R001”, and “R100” in the second layer is a neighborhood network composed of neighborhood regions in a narrow geographic space.
  • the configuration information creation unit 112 constructs a hierarchical network as described above by the processing of steps S101 to S110, and then includes it in the hierarchical network. A configuration table in which configuration information of nodes to be collected is collected in a table is generated. Then, the configuration information creation unit 112 passes the generated configuration table to the configuration information transfer control unit 113, and the configuration information transfer control unit 113 sends the network configuration information based on the configuration table to each table management unit 214 of the nodes A to M. Is transferred (step S111).
  • the configuration contents and table items of the configuration table are not particularly limited.
  • a node located immediately before or after a specified node You may use the table in which the hash value and the destination address (for example, IP address, host name, etc.) of the designated node are described.
  • the configuration table includes the hash values of all the nodes 20 included in each hash ring network. And a table in which addresses are described.
  • the configuration information transfer control unit 113 requires the nodes A to M for the table management units 214 of the nodes A to M, respectively. Is extracted from the original configuration table, and network configuration information is generated and transferred. The portions required by the nodes A to M in the configuration table correspond to the configuration information of the hash ring network of each layer belonging to the relevant line of the node 20.
  • the node A shown in FIG. 8 will be specifically described as an example. Since the hash ring network including the node A is “R0”, “R00”, “R000”, and “R0000”, the configuration information transfer control is performed. The unit 113 transfers only the configuration table of the network to the table management unit 214 of the node A as network configuration information.
  • FIG. 10 is a table showing an example of network configuration information.
  • the network configuration information 147 illustrated in FIG. 10 is an example of network configuration information transferred from the configuration information transfer control unit 113 to the node A.
  • the network configuration information 147 includes a network name column 147A in which the name or ID of the hash ring network is described, a node hash column 147B in which a node hash value corresponding to a node incorporated in the hash ring network is described, and the address of the node And an address column 147C in which is described. Since the network configuration information 147 shown in FIG.
  • the configuration information transfer control unit 113 performs step S105 in FIG.
  • the configuration information of the node included in the hash ring network in which the node 20 is incorporated in the network hierarchy is cut out from the configuration table. What is necessary is just to transfer to the table management part 214 of the said node 20.
  • FIG. 11 is a sequence diagram illustrating an example of a data write processing procedure.
  • a user terminal (not shown) connected to node A using the hierarchical hash ring network of FIG. 8 generated by a node having network configuration node information 146 shown in FIG. The process when data having the data key “q” is written is described.
  • the nodes constituting the hash ring network are arranged in a ring shape based on the hash value of the node.
  • the hash value of the data key included in the data and the hash value of each node are compared, and the responsible node for storing the data is determined based on a predetermined determination rule.
  • the predetermined determination rule is not particularly limited. For example, a node positioned in front of or behind the hash value of the data key, a node closest to the hash value of the data key, or the like can be set as a node in charge of the data.
  • the node located at the rearmost position from the hash value of the data key is determined as the node in charge of the data.
  • each of the nodes A to M is the same as the configuration of the node 20A shown in FIG. 1, and the table management unit 133 of each node A to M has network configuration information equivalent to the network configuration information 147 shown in FIG. Suppose you have
  • FIG. 12 is an explanatory diagram showing a format example of a data write request.
  • a data write request 148 shown in FIG. 12 is a format example of a data write request when data write is requested in the REST (Representational State Transfer) format of HTTP (Hypertext Transfer Protocol), and the data write request is sent to the request type column 148A.
  • the request format example column 148B describes a format example of the data write request.
  • the request 148C is a format example of a data write request transmitted from the user terminal to the distributed data management system 1.
  • the node 20 for example, the node A
  • the request 148E requests the node 20 configuring the distributed data management system 1 to write data for the purpose of data replication. It is a format example of the data write request transmitted at the time.
  • the request 148E is a format example of a data write request that is transmitted when the node 20 that has received the request 148D cannot re-request data replication to another node 20 when the replication data cannot be created. The replication data creation process will be described later with reference to FIG.
  • the request 148C, the request 148D, and the request 148E have the same format configuration, and first, the request 148C is taken as an example, and the configuration content of the request format will be described in detail.
  • the first line of the request 148C is an HTTP command, “PUT” meaning data transmission, a character string “/ ServiceID / UserID / FileID” indicating a URI (Uniform Resource Identifier) of the data, and an HTTP version of the request. It consists of the character string “HTTP 1.1”.
  • the second line of the request 148C is a TimeStamp header that presents the time stamp “T1” of the data to be transmitted, and describes the creation date and time of the file write request.
  • the data URI and the time stamp are items used to determine the uniqueness of the transmitted data, and the same contents are described in the request 148D and the request 148E.
  • the third line of the request 148C is a Network header indicating from which layer of the hierarchical hash ring network the request is transmitted.
  • the request is a transmission request from the user terminal and belongs to any layer. Since there is no, “Null” is described.
  • the Network header is used in performing re-replication within the same hash ring network described later.
  • the fourth line of the request 148C is a Replication header indicating whether the request is mainly for data replication, and “true” is described therein. In this case, the request is not a data replication main purpose but is a primary data write request, and indicates that the write request destination node needs to create replication data of the write target data.
  • the fifth line of the request 148C is a Primary header indicating the location of primary data when primary or secondary is distinguished as an attribute for data distinction (described later in step S205 in FIG. 11). Since the data distinction attribute has not yet been created at the stage of the request 148C, “Null” is described in the Primary header. Note that the value specified in the Primary header only needs to be uniquely identified by the node 20 that holds the primary data, and may be indicated using a network address (IP address), a host name, or the like.
  • IP address network address
  • the sixth line of the request 148C is a header indicating whether or not another header is written in the request, and is not particularly specified in the case of the request 148. In the seventh line of the request 148C, data to be written that is requested to be written by the request is described.
  • the network header (third line) of the request 148D describes the network name “R0000”, and indicates that the request 148D is transmitted from the third layer network “R0000” configured only by the node A.
  • the network header (third line) of the request 148E describes the network name “R00”, indicating that the request 148E has been transmitted from the first layer network “R00”.
  • step S201 the node A receives a data write request (eg, request 148C in FIG. 12) having the data key “q” from the user terminal.
  • a data write request eg, request 148C in FIG. 12
  • the processing in step S201 in node A will be described in more detail.
  • the data read control unit 213 in node A receives a write request from the user terminal via the communication unit 233 and the communication I / O 231.
  • the request analysis unit 215 analyzes the received write request and determines that the request is transmitted from the user terminal.
  • the hash calculation unit 216 calculates a hash value based on the data key “q”, and the node derivation unit 217 is transferred from the configuration information transfer control unit 113 and is based on the network configuration information managed by the table management unit 214.
  • the node 20 that requests data replication is derived.
  • the data write control unit 212 requests the replication destination node derived by the node deriving unit 217 to write data by the request 148D in FIG. 12 via the communication I / O 231 and the communication unit 233. (Steps S202, S204, S206, S208).
  • the hash ring networks to which the node A belongs are “R0000”, “R000”, “R00”, “R0”, and the data key “q
  • the data control unit 21 (specifically, the data write control unit 212) requests the node A to write data (step S202).
  • step S202 since node A requests data write to node A, data write control unit 213 of node A writes data to storage unit 234 of its own node (step S203).
  • the network is a hash ring network composed of nodes A, B, and C.
  • data having a hash value “7694f4a66316e53c8cdd9d9954bd611d” The key “q” is assigned to the node B having the node hash “92eb5ffee6ae2fec3ad71c777531578f”. Therefore, the data control unit 21 of the node A requests the node B to write data (step S204). Then, the node B that has received the data write request writes the data to the storage unit 234 of its own node (step S205).
  • step S205 The processing in step S205 will be described in detail.
  • the data read control unit 213 of the node B receives a write request from the node A via the communication unit 233 and the communication I / O 231.
  • the request analysis unit 215 analyzes the received write request and determines that the request is a request for replication from the node A that has received the request from the user terminal.
  • the request processing unit 211 transfers the write target data attached to the request to the data write control unit 212 in order to write data as replication, and the data write control unit 212 passes through the storage I / O 232. Then, the data is written into the storage unit 234.
  • the metadata writing method is not particularly limited, but an existing file system fork may be used.
  • a fork is a refork source in HFS (Hierarchical File System), a file system in Unix (registered trademark) or Unix (registered trademark) system (ext2, ext3, JFS, ReserFS, XFS, etc.) as xattr, NTFS (NT System) is known as an alternative data stream.
  • the data key “q” is assigned to the node D having the node hash value “8277e0910d750195b448797616e091ad” in the same way as the case of the network “R000” described above. Accordingly, the data control unit 21 of the node A requests the node D to write data (step S206). Then, the node D that has received the data write request writes data to the storage unit 234 of the node D as in step S205 (step S207).
  • the data key “q” is assigned to the node D having the node hash value “8277e0910d750195b448797616e091ad” in the same way as the network “R000” described above. Therefore, the data control unit 21 of the node A requests data writing to the node D (step S208).
  • the node D that has received the data write request tries to write data to the storage unit 234 of the node D as in step S205, but the data write control unit 212 corresponds to the network “R00” in step S207. By this process, it is detected that the same data has already been written in the node D (step S209).
  • the node D selects again the data replication destination node (for example, node I) (step S210), and requests 148E in FIG. 12 to the selected replication destination node I. To request data writing (step S211). Then, the node I requested to write data writes the data to its own node (step S212). When it is desired to distinguish between primary and secondary for replication of data to be written, at least when writing secondary data, the location of primary data is written as metadata at the same time as data writing.
  • the same node is allocated across multiple hierarchies, so the same node can be selected as a data write destination in multiple networks.
  • this is a process showing one characteristic in the present embodiment that data is re-replicated to another appropriate node.
  • the method for detecting that the same data is written in step S209 is not particularly limited.
  • the data write request has the request format shown in FIG.
  • the time stamp described in the TimeStamp header in the request is confirmed, and data having the same hash value as the hash value of the data key “q” and having the same time stamp is stored in the storage unit 234.
  • the data to be written is a file
  • the data write control unit 212 detects whether the same data is written in the property information stored in the file format of the file, in particular, the time stamp of the file. You may use it.
  • the method of selecting the data replication destination node to be reselected is not limited. For example, it is set that replication data is not created on the same node in a plurality of networks regardless of the internal configuration of each node.
  • another node uniquely determined from the node D requested as the data writing destination is reselected as the data replication destination node, and Data replication.
  • Another node uniquely determined from the node D is, for example, a node located in the vicinity of the node D in the network “R0”, and more specifically, the nodes M, C, Nodes I and K located behind the node D, or other nodes located before and after the factor D by 2 can be considered.
  • a data replication destination node is selected as a reselection target in a network other than the network “R0” that detected the writing of the same data. Also good.
  • the node reselected from the other network is a node to which the same data has already been written, such as nodes A, B, and D to which data has been written in steps S202 to S207. Since there is a possibility, the data write control unit 212 of the node must execute the write detection of the same data again, and the processing efficiency is lowered.
  • the data having the data key “q” requested to be written from the user terminal to the node A by the processing of steps S201 to S212 is the node A, among the nodes A to M constituting the distributed database in the distributed data management system 1.
  • step S212 After the completion of step S212, at least the highest layer network, that is, all nodes A to M, are used for data recovery accompanying node deletion in the deletion processing of nodes constituting the distributed data management system 1 described later.
  • the node D in which data is written in the network “R0” is backed up to another node (for example, the node I) uniquely identified from the node D. And requesting replication of the data (step S213).
  • node I since the same data has already been written in step S212, node I reselects the replication destination in the same manner as steps S209 to S210, and the reselected node (for example, node K) Request replication again (step S214). Then, in the node (node K) where the same data has not been written, the data is written in the storage unit 234 of the own node to create a backup (step S215). If you want to keep primary and secondary differently for replication of data to be written, write the location of the primary data as metadata at the same time as the data write at least when writing secondary data as before. Like that.
  • the execution order of the data replication request processing (steps S202, S204, S206, and S208) performed by the node A is not limited, and may be executed in parallel. However, in order to perform data replication from a node in the vicinity of the node A to the node A from which the user terminal first requested data writing, it is preferable to execute data replication request processing from the lower hierarchical network. .
  • the distributed data management system 1 can write data from any node A to M to which the user terminal is connected to the distributed database using the hierarchical hash ring network. it can.
  • the data read control unit 213 of the node M requests the node M included in the network “R1101” to search for data stored with the data key “q”. Since the request destination of the read request is the own node, the data read control unit 213 checks whether the data is stored in the storage unit 234. Here, since the data having the data key “q” does not exist in the node M, the data reading control unit 213 returns a failure notification notifying that the search result is unsuccessful.
  • the format format of the read request is not particularly limited, for example, considering the same format as the data write request 148 shown in FIG. 12, the read request does not need to include a Primary header or data, What is necessary is just the structure which has the HTTP command containing the command to mean, and the Network header etc. which show to which hierarchy of the hierarchical hash ring network the said request is transmitted.
  • the data control unit 21 of the node M traces the related line including the node M, refers to the upper-layer second-layer network “R100”, and takes charge of the hash value of the data key “q” (although explanation is omitted, it corresponds to the node K) and requests to search whether data having the data key “q” is stored. Since the data having the data key “q” is stored in the node K, the data is transferred from the node K to the node M, and the reading of the data by the node M is completed.
  • FIG. 13 is a sequence diagram illustrating an example of a data deletion processing procedure.
  • data having “q” as the data key from the user terminal is stored in the distributed database by the hierarchical hash ring network shown in FIG. 8 by the data writing process shown in FIG. .
  • the data is written in nodes A, B, D, I, and K.
  • a process for deleting data having the data key “q” in response to a deletion request from a user terminal connected to the node M will be described.
  • the target data in the network is searched in order from the lower layer to the upper layer in the same procedure as the data reading described above.
  • the data read control unit 213 of the node M that has received a request to delete data (target data) having the data key “q” from the user terminal reads the target data to the own node of the network “R1101”. Is requested (step S301).
  • the process shown in FIG. 13 is for the purpose of deleting data, and it is not necessary to read the target data body. Therefore, the data read request transmitted in step S301 and step S303 described later reads only the header of the target data. Or a request for examining only the presence or absence of target data.
  • failure notification is returned because no data having the data key “q” is stored in the node M (step S302).
  • the data control unit 21 of the node M traces the related line including the node M, refers to the second-layer network “R100” that is one level higher, and is responsible for the hash value of the data key “q”. Is requested to read data (step S303).
  • the data read control unit 213 of the node K reads the header information of the data and transmits it to the data control unit of the node M (step S304).
  • the data control unit 21 of the node M requests the transmission source node M to read the metadata of the target data (step S305).
  • the data control unit 21 of the node K reads the metadata of the target data in response to the request and returns it to the node M (step S306).
  • the data control unit 21 refers to the received metadata, acquires the storage destination node of the primary data of the target data, and targets the storage destination node.
  • a request for data deletion is made (step S307).
  • the primary data storage destination node of the data having the data key “q” is identified as the node A by referring to, for example, the Primary header included in the metadata. Accordingly, in step S307, a data deletion request is transmitted to the node A.
  • the data control unit 21 of the node A that has received the data deletion request in the same procedure as the data writing described in FIG. 11, all the nodes to which the target data is replicated, that is, the nodes A, B, D, I and K are requested to delete the target data (step S308), and the target data is deleted at each of the nodes A, B, D, I, and K (step S309).
  • a deletion completion notification for notifying the completion of the deletion is transmitted from each node A, B, D, I, K to the node M (step S310).
  • the data is replicated to the node I instead of the node D in step S212, and the data is replicated to the node K instead of the node I in step S215.
  • data deletion for example, when the target data of the node D is deleted in the first layer network “R00” and then the data deletion in the zeroth layer network “R0” is attempted, Based on the fact that the target data has already been deleted, the node I uniquely determined from the node D can also recognize that the target data is stored and delete the data.
  • the node that is directly searched based on the hash value and is originally responsible for the data storage destination for example, the node D
  • the node that is uniquely determined from the node that is directly searched based on the hash value for example, the node D
  • the node directly searched based on the hash value has already deleted the target data in the lower layer network
  • the distributed data management system 1 can delete the data stored in the distributed database from any of the nodes constituting the distributed database by the processing of steps S301 to S310 described above.
  • a method of adding a node to a distributed database using a hierarchical hash ring network in the distributed data management system 1 according to the present embodiment will be described.
  • a node addition process in a conventional distributed data management system using a distributed hash table can be applied.
  • a node to be added is added to a network to be added, and in each network of the hierarchical hash ring network, a range of hash values handled by the addition target node from a node positioned after the addition target node This data may be moved to the added node.
  • the processing similar to the processing described in step S107 or step S108 of FIG. 4 can be applied to processing for overlapping nodes generated by adding the addition target node to each network and adjustment of the hash space. .
  • FIG. 14 is a schematic diagram for explaining a method of recovering data in a hierarchical hash ring network from which nodes are deleted.
  • the hierarchical hash ring network shown in FIG. 14 is a hierarchical hash ring in which node B is deleted from the hierarchical hash ring network shown in FIG. 8 for failure handling or exchange.
  • a broken line arrow in FIG. The direction in which the data stored in B is restored is shown.
  • the deleted node B is shown surrounded by a broken line.
  • the configuration information management unit 11 of the core node 10 needs to collect the node B based on the metrics acquired by the metric acquisition units 22 of the nodes A to M.
  • the hierarchical hash ring network from which the node B is deleted is reconfigured.
  • the configuration information management unit 11 of the core node 10 may delete the designated node B in response to a deletion instruction from the user terminal or direct input to the core node.
  • the data is restored in order from the lower layer network in the order shown in FIG. Deletion of B is completed.
  • the configuration information management unit 11 writes to the node B in the network “R0001” and replicates to the nodes A and C in the network “R000”.
  • the transferred data is moved or copied to the node C (steps S1 and S2).
  • the nodes A and C are written in the lowest layer networks “R0000” and “R0010”, respectively, and the node B before deletion in the network “R000” should be in charge Data etc. are written.
  • the configuration information management unit 11 utilizes the metadata written at the same time as the data. To do. That is, the configuration information management unit 11 refers to the metadata in steps S1 and S2, and moves or duplicates from the nodes A and C to the node C by using only the data in which information related to the node B is described in the metadata as a recovery target do it.
  • the replication destination node that moves or replicates data in steps S1 and S2 is not limited to the node C, and may be any node included in the network “R000”. If the data moved or copied to the node C is to be distinguished from the primary and the secondary regarding the replication of the write target data, information indicating the primary data is written as metadata, or the secondary data Delete metadata to indicate that it is not.
  • the configuration information management unit 11 is written in the node B in the network “R000” and in the network “R00”.
  • the data replicated to the nodes D, F, and G is moved or copied to the node A (steps S3 to S5).
  • the reason that the data replication destination is set to node A in steps S3 to S5 is that the node that handles data that should have been handled by node B after deletion of node B is node A.
  • nodes D, F, and G are written in other networks in addition to the data that is written and replicated in node B in network “R000”.
  • the configuration information management unit 11 In the network “R00”, data to be handled by the node B before deletion is written. In order to find the data written in the network “R000” from the data written from the plurality of writing nodes in this way, the configuration information management unit 11 utilizes the metadata written at the same time as the data. To do. That is, the configuration information management unit 11 refers to the metadata in steps S3 to S5, and restores only data in which information on the nodes A, B, and C is described in the metadata from the nodes D, F, and G. It may be moved or copied to node A. In other words, the configuration information management unit 11 includes only data in which information on nodes included in the hash ring network including the deleted node in the lower layer hash ring network of the data recovery request source network is described in the metadata. Target for recovery.
  • the reason why the data replication destination is set to the node G in step S6 is that the data that should have been handled by the node B is the node G after the deletion of the node B.
  • the node G includes data other than the data written to the node B and replicated in the network “R00”. Are written in another network, and data to be handled by the node B before deletion is written in the network “R0”.
  • the configuration information management unit 11 utilizes the metadata written at the same time as the data. To do.
  • the configuration information management unit 11 refers to the metadata in step S6, and only moves or replicates data from the node G using only the data in which information related to the nodes A to G is described in the metadata as a recovery target.
  • the configuration information management unit 11 includes only data in which information on nodes included in the hash ring network including the deleted node in the lower layer hash ring network of the data recovery request source network is described in the metadata. Is the recovery target.
  • At least the highest-layer network “R0” has a node (for example, a node G) in which replication data of data stored in the node B is uniquely determined in the same network. (See steps S213 to S215 in FIG. 11). Therefore, in order to recover the data written in the node B in the network “R0”, the configuration information management unit 11 transfers the data written in the node B and replicated to the node G in the network “R0” to the node G. Move or duplicate (step S7). If the data source and destination are the same node as in this example, the migration process and replication process do not actually occur, but the same data has already been written to the node G in step S6. Therefore, replication is performed from a node G to a node uniquely determined (for example, node E).
  • a node for example, a node G
  • the reason why the data replication destination is the node G in step S7 is that the data that should have been handled by the node B is the node G after the deletion of the node B.
  • the node G includes other networks as well as the other nodes A, C, D, F, and G described above.
  • the data written in is written.
  • the configuration information management unit 11 utilizes metadata written at the same time as the data. To do.
  • the configuration information management unit 11 refers to the metadata in step S7, and only moves or duplicates data from the node G by using only data in which information on all nodes A to M is described in the metadata as a recovery target.
  • the configuration information management unit 11 is data in which information on nodes included in the hash ring network in which the deleted node is included among the lower layer hash ring networks of the data recovery request source network is described in the metadata. Only the recovery target.
  • the configuration information management unit 11 performs replication on the node E, which is uniquely determined from the node G, for the data to be moved or copied in step S7 (step S8).
  • the data since the data has already been replicated to the node E in step S7, the data is actually replicated to the node A uniquely determined from the node E.
  • the node When the node is deleted from the distributed database by the hierarchical hash ring in the distributed data management system 1 by the processing of steps S1 to S8 described above, the node is stored in the deleted node in the remaining nodes constituting the distributed database.
  • the stored data can be securely stored.
  • the configuration information management unit 11 has a geospatial clustering policy for each hierarchy.
  • a hierarchical hash ring network including a hash ring network based on proximity in a geospatial space can be constructed.
  • the network to which the disaster source node belongs from the neighboring nodes included in the same hash ring network Since data can be accessed by connecting to, disaster resistance can be ensured.
  • the configuration information management unit 11 configures each node as shown in the process of step S106 in FIGS. Metrics indicating the performance (spec) of the computer to be used are collected, the allowable lowest layer for each node is determined based on the metric, and the arrangement of each node in the hierarchical hash ring network is determined in consideration of the allowable lowest layer Therefore, it is possible to prevent the node 20 having a low performance of the calculation resource from being incorporated into the lower layer hash ring network as much as possible.
  • the configuration information management unit 11 has a plurality of sub-networks in the same hierarchy.
  • a node that can exist in a duplicated manner is deduplicated by moving the node to another subnetwork in the same hierarchy.
  • the sub-network to be constructed is expanded by a one-dimensional hash space formed only by hashes Hash ring network sorted by hash and space (geography and network) more than two dimensions and sorted by hash space more than two dimensions hashes compared to sort by one dimension hash space Since the space is biased, there is a problem that the range in which data is stored in each node becomes uneven and the burden on each node is biased.
  • the distributed data management system 1 described above with respect to the construction of the hierarchical hash ring network, as shown in the process of step S108 in FIG.
  • the hash space corresponding to the neighboring network can be adjusted, and the load can be prevented from being biased to a specific node.
  • the configuration information control unit 11 constructs a hierarchical hash ring network so as to maintain a sufficient number of replications for executing data replication.
  • the effect of can be realized.
  • specific processing relating to data replication for example, when the data control unit 21 writes data, as shown in FIG. 11, a procedure for performing data replication in the same network and in an associated upper layer network Has been revealed. Also, when deleting a node, as shown in FIG. 14, it has been clarified that the number of nodes necessary for replication is secured.
  • the network configuration in the hierarchical hash ring network is clarified by the network configuration node information 146 shown in FIG. Since the network configuration information 147 clarifies the configuration information of the network in which each node participates, it is possible to access data across hierarchies. As a result, the distributed data management system 1 performs processing such as data writing to the distributed database (FIG. 11), data reading, data deletion (FIG. 13), node addition, and node deletion (FIG. 14). In this case, data can be accessed from any node constituting the distributed database, and these processes can be executed.
  • a distributed database that has disaster resistance and can access data from any constituent node is constructed by a hierarchical hash ring network, and the data stored in the distributed database is stored in the distributed database. Can be managed.
  • a distributed data management system is characterized by constructing and managing a distributed database based on a hierarchical hash ring network, and in particular, proximity in geospatial space.
  • the geographical distance is applied to the hierarchical hash ring network to construct a hierarchical hash ring network suitable for disaster recovery.
  • the configuration of the distributed data management system 2 according to the second embodiment is the same as the configuration of the distributed data management system 1 shown in FIG.
  • one or more replication data is created for each tier, and the number of tiers is set according to the number of replication data.
  • the number of hierarchies of the hierarchical hash ring network is four. Therefore, the number of replication data in the hierarchical hash ring network managed by the distributed data management system 2 is at least four.
  • FIG. 15 is a flowchart showing a processing procedure for constructing a hierarchical hash ring network in the distributed data management system according to the second embodiment.
  • a processing procedure for constructing a hierarchical hash ring network in which nodes A to M participate in the distributed data management system 2 according to the second embodiment will be described.
  • the configuration information creation unit 112 derives the hash values of the nodes A to M (step S401), creates the 0th layer network based on the derived hash value (step S402), and the lowest layer (third layer).
  • the processing up to network creation (step S403) is the same as the processing of steps S101 to S103 shown in FIG.
  • the configuration information creation unit 112 creates m layers (where m is a variable) of neighborhood networks based on the proximity of geospace (steps S404 to S410).
  • m 1.
  • the configuration information creation unit 112 clusters the nodes 20 on the basis of a policy in the geospace for each hierarchy with respect to the nodes 20 assigned to each hierarchy.
  • FIG. 16 is a table showing an example of a clustering policy used in the processing shown in FIG. In the construction process of the hierarchical hash ring network shown in FIG. 15, the policy table 149 shown in FIG. 16 is applied.
  • the policy table 149 shown in FIG. 16 includes a layer column 149A in which the number of layers of networks is described, and a policy (geospace) column 149B in which a policy based on a geospace is described. Is done.
  • the clustering policy shown in FIG. 16 is different from the clustering policy of the first embodiment shown in FIG. 5 in that it does not have a policy when the network space is used as a reference, and the first layer policy ( The content of (geographic space) is different.
  • the first layer is clustered according to the condition “the network farthest from the second layer network” in addition to the condition “clustering by municipality”. That is, in the configuration processing of the hierarchical hash ring network shown in FIG. 15, a neighborhood network clustered based on the proximity in the geospatial is formed in the second layer, and the proximity in the geospatial is formed in the first layer.
  • the policy table 149 shown in FIG. 16 may be configured to have a policy in the network space as in the policy (network space) column 144C of the policy table 144 shown in FIG.
  • step S405 the configuration information creation unit 112 associates each cluster with the neighborhood network created in step S404 (including the distant neighborhood network). Specifically, based on the clustering policy described in the policy table 149 of FIG. 16, the configuration information creation unit 112 associates an optimum cluster for disaster recovery with each second-layer hash ring network. Specifically, the configuration information creating unit 112 sets a cluster having a maximum distance from the second layer hash ring network as a correspondence relationship.
  • step S405 the method for associating each hash ring network between a plurality of hierarchies is not limited, and the same applies particularly when performing disaster recovery association.
  • a method for obtaining the distance of the ring network for example, a method of deriving the distance between the clusters using coordinates unified with respect to each cluster can be used.
  • the coordinate coordinated with respect to each cluster corresponds to, for example, a predetermined position (vertex coordinate, center coordinate, etc.) of the rectangular area.
  • the configuration information creation unit 112 refers to the metric table 141, except for the lowest layer network including only its own node, so that nodes with low performance of calculation resources are not incorporated into the lower layer hash ring network as much as possible.
  • An allowable lowest layer for the node 20 is determined (step S406). Since a specific method example when determining the allowable lowest layer can be applied to the method example described in step S106 of FIG. 4, detailed description thereof is omitted.
  • the configuration information creation unit 112 adjusts the neighborhood network (steps S407 and S408), compares the number of nodes included in the upper layer network with the number of nodes included in the lower layer network (step S409), and The process of correcting the adjustment value of the network as necessary (step S410) is the same as the process shown in steps S107 to S110 of FIG.
  • the configuration information creation unit 112 generates a configuration table for the hierarchical network generated by the processes in steps S401 to S410, and the configuration information transfer control unit 113 stores the network configuration information based on the configuration table in the node A.
  • the data is transferred to each of the table management units 214 (step S411). Since the process of step S411 is the same as the process shown in step S111 of FIG. 4, detailed description thereof is omitted.
  • the distributed data management system 2 builds a distributed database using a hierarchical hash ring network.
  • FIG. 17 is a schematic diagram illustrating a configuration example of a hierarchical hash ring network according to the second embodiment.
  • FIG. 18 is an example of a table showing network configuration node information in the hierarchical hash ring network shown in FIG.
  • the network configuration node information 150 shown in FIG. 18 includes the same table items as the network configuration node information 146 shown in FIG. 9 (node column 150A, node hash column 150B, allowable lowest layer network column 150C, neighboring node column 150D, address column).
  • a remote node column 150F in which a node existing far in the geographical space is described with respect to the node described in the node column 150A is configured.
  • FIG. 19 is a table showing an example of network configuration information.
  • FIG. 19 shows network configuration information that the configuration information transfer control unit 113 transfers to the table management unit 214 of the node A in step S411 of FIG. 15 after the configuration information creation unit 112 generates the hierarchical hash ring network shown in FIG. It is.
  • the table configuration of the network configuration information 151 illustrated in FIG. 19 is the same as the table configuration of the network configuration information 147 illustrated in FIG. 10, and describes a network name, a node hash value, and an address. From the network configuration information 151 of FIG. 19, the network including the node A (specifically, the network names “R0”, “R00”, “R000”, “R0000”) and the network including the node A are joined. The node hash value and address for the current node can be read.
  • neighboring networks “R000” and “R100” configured by participation of nodes in neighboring areas on a narrow geographical area are generated.
  • the network “R000” includes nodes A, B, and C
  • the network “R100” is a second layer network including nodes D, E, and G.
  • the nodes D, I, J, and L are the second layer network because the node has low performance or does not conform to the clustering policy described in the policy table 149 of FIG. Suppose you don't belong to.
  • the first layer of the hierarchical hash ring network shown in FIG. 17 includes a distant neighborhood network “consisting of a distant area in a wide geographical space corresponding to the network“ R000 ”or“ R100 ”of the second layer.
  • R00 "and” R10 are generated.
  • the network “R00” includes nodes H, I, J, and K, and the network “R10” is a first layer network including nodes L and M.
  • networks “R0000” to “R1101” including only their own nodes are generated for the nodes A to M.
  • the hierarchical hash ring network generated in the distributed data management system 2 includes the second layer network based on the neighborhood network, and the first layer network based on the far neighborhood network having distantness with respect to the second layer network. Are associated with each other, so that it is possible to store data in a remote place in the geospace.
  • a method for writing data, a method for reading data, a method for deleting data, and a node are added to a distributed database using a hierarchical hash ring network. Since the same processing described in the distributed data management system 1 according to the first embodiment can be applied to the method of deleting, deleting the node, and recovering the data of the deleted node, the description thereof is omitted. .
  • the distributed data management system 2 with regard to the construction of the hierarchical hash ring network, the neighborhood network configured based on the proximity in the geospace (for example, FIG. 17). Is associated with a distant neighborhood network having a distant property in geospace (for example, a first layer network in the hierarchical hash ring network shown in FIG. 17). As a result, data can be stored in a remote place in a geographic space.
  • the distributed data management system 2 can construct a distributed database that is more suitable for disaster recovery than the distributed data management system 1 according to the first embodiment, and is more resilient in the event of a disaster (resilient). ) A distributed database can be realized.
  • the distributed data management system 2 by having a neighborhood network based on the proximity in the geospatial like the second layer network, it is the same as the distributed data management system 1 in the first embodiment. In addition, disaster resistance can be ensured. Furthermore, according to the distributed data management system 2, even if a large-scale disaster makes it impossible to connect to all the nodes in one neighboring network, the remoteness having a geo-spaced distance to the neighboring network By associating the neighboring network, it is possible to connect to the data stored in the node in the neighboring network. In addition, since these data are also stored in remote nodes constituting the distant neighborhood network, it is possible to expect a data protection effect that prevents the loss of the data from a large-scale disaster.
  • such a distributed data management system 2 has the same configuration as the distributed data management system 1, and the same processing as the distributed data management system 1 is applied to the processing related to data access to the hierarchical hash ring network.
  • the effect of the first embodiment can also be realized.
  • the distributed data management systems 1 and 2 according to the first and second embodiments described above, the case where the core node 10 and the nodes 20A to 20N are explicitly separated has been described.
  • the present invention is not limited to this.
  • the function of the core node 10 may be arranged in any of the nodes 20A to 20N, or the core node 10 itself may store data in the same manner as the node 20. It may be configured to store and participate in a hierarchical hash ring network.
  • the distributed data management systems 1 and 2 according to the first or second embodiment can be realized without using a dedicated device for the core node 10, and an improvement in versatility can be expected.
  • the nodes 20A to 20N are each one information processing apparatus.
  • each of the nodes 20A to 20N may be configured by a data center configured by a plurality of nodes.
  • the metrics of each data center may list node metrics for each of a plurality of nodes in the data center as in the metric management tables 141 and 142 shown in FIG.
  • a value rounded by an average value of a metric for each data center may be used, and a method of indicating a minimum value and a maximum value of a metric for each data center may be employed.
  • a distributed database based on a hierarchical hash ring network can be built by incorporating a plurality of data centers, so that more data and nodes can be handled. Large-scale distributed data management can be realized.
  • a metric management table that acquires the current “usage rate” of internal components such as a CPU as an example of a dynamic metric. 141, but the present invention is not limited to this.
  • the moving average value generated from the latest data of the usage rate and the past data is used as the metric, or the past data is referred to at the same time. You may do it.
  • the metrics of the node 20 can be obtained in more detail by using various types of metrics. Therefore, the distribution according to the metric of the specification is performed based on a more detailed situation analysis. Construction of a type database can be realized.
  • the configuration of the generated hierarchical hash ring network may be provided to the administrator by displaying it on the display unit of the core node 10 or the administrator terminal connected to the core node. Good.
  • the administrator can visually recognize the structure of the distributed database by displaying the configuration of the hierarchical hash ring network as shown in FIG. 8 or FIG. 17 on the display unit. Therefore, the distributed data management system can be used more easily.
  • the 0th layer network “R0” illustrated in FIG. 8 has the highest overlay composed of a total set of a plurality of nodes.
  • An example of a network the first layer networks “R00” and “R10” and the second layer networks “R000”, “R001”, and “R100” are examples of a sub-overlay network configured by a subset of a plurality of nodes.
  • the lowermost layer (third layer) networks “R0000” to “R1101” are an example of a unit overlay network composed of units of a plurality of nodes.
  • the hierarchical hash ring network constructed by the core node 10 is an example of a hierarchical overlay network in which a top overlay network, a sub-overlay network, and a unit overlay network are sequentially layered.
  • the node hash value described in the node hash field 146B of the network configuration information 146 illustrated in FIG. 9 is an example of a node number that indicates a number that is stochastically uniform over a set of a plurality of nodes.
  • the hash value “7694f4a66316e53c8cdd9d9954bd611d” by MD5 for “q” is an example of a data number indicating a stochastic uniform number obtained from data stored in the node.
  • the present invention is not limited to the above-described embodiment, and includes various modifications.
  • the above-described embodiment has been described in detail for easy understanding of the present invention, and is not necessarily limited to one having all the configurations described.
  • a part of the configuration of one embodiment can be replaced with the configuration of another embodiment, and the configuration of another embodiment can be added to the configuration of one embodiment. .
  • Information such as programs, tables, and files for realizing the above functions is stored in a recording device such as a memory, hard disk, SSD (Solid State Drive), or a recording medium such as an IC card, SD card, or DVD.
  • a recording device such as a memory, hard disk, SSD (Solid State Drive), or a recording medium such as an IC card, SD card, or DVD.
  • the control lines and information lines indicate what is considered necessary for the explanation, and not all the control lines and information lines on the product are necessarily shown. In practice, it may be considered that almost all components are connected to each other.

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

[Problem] To construct a distributed database which has anti-disaster performance and enables access to data from any configuration node, and manage data stored in the distributed database. [Solution] A distributed data management system (1) comprises: a plurality of nodes (20) which each store data; and a core node (10) which constructs a hierarchical overlay network configured from the plurality of nodes (20) and manages the data. When constructing the hierarchical overlay network, the core node (10) configures a sub overlay network from a subset of the nodes (20), which is determined on the basis of distances in a geographical space, associates respective networks with each other between layers, generates network configuration information relating to the respective nodes (20) configuring the hierarchical overlay network, and transfers the network configuration information to the respective nodes (20). When writing data, the plurality of nodes (20) each replicate the data in each of overlay networks associated with a network to which the data was written.

Description

分散データ管理システム及びプログラムDistributed data management system and program
 本発明は、分散データ管理システム及びプログラムに関し、オーバレイネットワークによる分散型データベースを利用する分散データ管理システム及びプログラムに適用して好適なものである。 The present invention relates to a distributed data management system and program, and is suitable for application to a distributed data management system and program using a distributed database by an overlay network.
 従来、大規模なデータベースは、非分散型データベースの規模を拡張させることにより構築されてきた。しかし近年では、システムの複雑化に伴って高騰した運用管理コストの低減、さらには障害発生時の耐性向上に対する要求が高まった結果、分散型のデータベース(分散型データベース)が注目されている。 Conventionally, large-scale databases have been constructed by expanding the scale of non-distributed databases. However, in recent years, as a result of increasing demands for reducing operation management costs, which have increased with the complexity of the system, and for improving tolerance in the event of a failure, a distributed database (distributed database) has attracted attention.
 分散型データベースは、データが分散格納される複数のノードによって構成される。分散型データベースでは、どのノードにデータが格納するかを管理する必要があり、データ格納先ノードの決定方法の一例として、分散ハッシュテーブル(DHT:Distributed Hash Table)が利用される。分散ハッシュテーブルを利用した一般的な分散型データベースでは、各ノードのユニークな識別子に対してハッシュ関数から導出されるノードハッシュ値に従って、リング状のハッシュ空間に各ノードを整列する。そして、データに付与されたキーに対してハッシュ関数から導出されるデータハッシュ値を取得し、各ノードを整列したリング状ハッシュ空間で、データハッシュ値に近いノードハッシュ値を有するノードに、当該データを格納する。 A distributed database is composed of multiple nodes where data is distributed and stored. In a distributed database, it is necessary to manage which node stores data, and a distributed hash table (DHT: Distributed Hash Table) is used as an example of a method for determining a data storage destination node. In a general distributed database using a distributed hash table, each node is arranged in a ring-shaped hash space according to a node hash value derived from a hash function with respect to a unique identifier of each node. Then, a data hash value derived from a hash function is obtained for the key assigned to the data, and the data is transferred to a node having a node hash value close to the data hash value in a ring-shaped hash space in which the nodes are aligned. Is stored.
 しかし、このような分散型データベースでは、ハッシュ空間上の近さ、つまりハッシュ値の近さによってデータの格納場所が決定されるので、他の空間上の距離に基づくノードに対しては、データを格納することができなかった。 However, in such a distributed database, the storage location of data is determined by the proximity in the hash space, that is, the proximity of the hash value. Could not be stored.
 このような課題に対して、例えば特許文献1に、名前空間上の距離に基づくノードに対してデータを格納する分散型ネットワークを実現するシステムが記載されている。特許文献1に記載されたシステムでは、ノードにハッシュ値とは別に名前に対応するIDを持たせ、名前IDの名前空間的(辞書空間的)な近さを表現するネットワークをハッシュリングネットワークにオーバレイして階層的なネットワークを構築する。以後、複数のハッシュリングネットワークを階層的にオーバレイさせた構造の階層型オーバレイネットワークを、階層型ハッシュリングネットワークと呼ぶ。特許文献1に記載された階層型ハッシュリングネットワークによれば、辞書空間的に近いノードにデータを格納することができる。 In response to such a problem, for example, Patent Document 1 describes a system that realizes a distributed network that stores data for nodes based on a distance in a name space. In the system described in Patent Document 1, an ID corresponding to a name is given to a node in addition to a hash value, and a network expressing the name space (dictionary space) proximity of the name ID is overlaid on the hash ring network. To build a hierarchical network. Hereinafter, a hierarchical overlay network having a structure in which a plurality of hash ring networks are hierarchically overlaid is referred to as a hierarchical hash ring network. According to the hierarchical hash ring network described in Patent Document 1, data can be stored in nodes close to the dictionary space.
特開2004-266796号公報Japanese Patent Application Laid-Open No. 2004-266796
 しかし、特許文献1に記載されたシステムでは、名前IDを用いた辞書空間内の近さに基づいてハッシュリングネットワークが構成され、名前IDはネットワーク空間上の近さを意味することから、ネットワーク空間上に近いノードにデータが格納されるが、地理空間上の近さに基づくハッシュリングネットワークを構成することができないという課題がある。例えば、ハッシュリングネットワークのような分散型ネットワークでは、災害(又は障害等)が起きて接続できないノードが発生した場合に、災害発生場所に近いノード、すなわち、地理空間上で近いノードによるネットワークを構築しておくことによって、災害発生場所に近いノードから当該ネットワークに接続することができる、回復力のあるレジリエントなネットワークを実現することができる。しかし、特許文献1に記載されたシステムでは、地理空間上の近さに基づくハッシュリングネットワークを構成できないので、対災害性を有するレジリエントなネットワークを実現することが難しい。 However, in the system described in Patent Document 1, the hash ring network is configured based on the proximity in the dictionary space using the name ID, and the name ID means the proximity on the network space. Although data is stored in a node closer to the top, there is a problem that a hash ring network based on proximity in geospace cannot be configured. For example, in a distributed network such as a hash ring network, when a node that cannot be connected due to a disaster (or failure, etc.) occurs, a network with nodes close to the location of the disaster, that is, nodes close to the geographical space is constructed. By doing so, it is possible to realize a resilient network with resilience that can be connected to the network from a node near the disaster occurrence location. However, since the system described in Patent Document 1 cannot configure a hash ring network based on proximity in geographic space, it is difficult to realize a resilient network having disaster resistance.
 また、特許文献1に記載されたシステムでは、階層型ハッシュリングネットワークの構築に関して、階層間を跨いでデータにアクセスする手段が提供されていないので、あるサブネットワーク内のノードに書込まれたデータは、当該サブネットワークに参加するノードからしか参照できず、他の階層のハッシュリングネットワークもしくは同一階層の他のハッシュリングネットワークから参照することができない、という問題がある。例えば分散型データベースにおいてユーザが移動する場合には、ノードに格納されたデータに対して、複数の地理空間やネットワーク空間上の拠点からアクセスが行われ得るが、特許文献1に記載されたシステムのように階層間を跨ぐデータアクセス手段が提供されていなければ、異なるハッシュリングネットワークからのデータアクセスが拒否されてしまう。その結果、例えば、自宅のネットワーク空間で構成されるサブネットワーク内のノードに書込まれたデータを、自宅外のネットワーク空間で構成されるサブネットワークから参照することができない、といった状況が発生してしまう。 Further, in the system described in Patent Document 1, no means for accessing data across layers is provided for the construction of a hierarchical hash ring network, so that data written to a node in a certain subnetwork is not provided. Can be referred only from a node participating in the sub-network, and cannot be referenced from a hash ring network in another layer or another hash ring network in the same layer. For example, when a user moves in a distributed database, data stored in a node can be accessed from a plurality of geographical spaces or bases on a network space. Thus, if a data access means that straddles between layers is not provided, data access from different hash ring networks is denied. As a result, for example, a situation has occurred in which data written to a node in a subnetwork composed of a home network space cannot be referred to from a subnetwork composed of a network space outside the home. End up.
 本発明は以上の点を考慮してなされたもので、対災害性を有し、どの構成ノードからもデータにアクセスできる分散型データベースを構築し、分散型データベースに格納されたデータを管理する分散データ管理システム及びプログラムを提案しようとするものである。 The present invention has been made in consideration of the above points. A distributed database is constructed that has disaster resistance and can access data from any of the constituent nodes, and manages the data stored in the distributed database. It is intended to propose a data management system and program.
 かかる課題を解決するため本発明においては、ネットワーク上で相互に接続されデータを格納する複数のノードと、前記複数のノードに接続され、前記複数のノードの全集合から構成される最上位オーバレイネットワークと、前記複数のノードの部分集合から構成されるサブオーバレイネットワークと、前記複数のノードの単元から構成される単元オーバレイネットワークとを、順に階層化した階層型オーバレイネットワークを構築し、前記階層型オーバレイネットワークによって前記データを管理するコアノードと、を有し、前記複数のノードには、前記複数のノードの集合に亘って確率的に均一な番号を示すノード番号がそれぞれ割当てられ、前記階層型オーバレイネットワークに含まれる各オーバレイネットワークは、該オーバレイネットワークを構成する各ノードに割当てられた前記ノード番号と、ノードに格納されるデータから得られる確率的に均一な番号を示すデータ番号とに基づいて、当該ネットワークにおいて当該データを格納するノードが決定されるリング型のネットワークであり、前記コアノードは、前記階層型オーバレイネットワークを構築するときに、地理空間上の距離に基づいて決定される前記複数のノードの部分集合によって前記サブオーバレイネットワークを構成し、前記最上位オーバレイネットワーク、前記サブオーバレイネットワーク、前記単元オーバレイネットワークの順で階層間を関連付け、前記階層型オーバレイネットワークを構成する各ノードについて、該ノードが含まれる全てのオーバレイネットワークを示す情報と該オーバレイネットワークを構成する全てのノードに関する情報とを有するネットワーク構成情報を生成して前記各ノードに転送し、前記複数のノードは、前記転送されたネットワーク構成情報を保持し、前記複数のノードは、前記階層型オーバレイネットワークにデータを書込むときに、当該データを書込んだ前記単元オーバレイネットワークに関連付けられた各オーバレイネットワークにおいて、当該データをレプリケートする分散データ管理システムが提供される。 In order to solve such a problem, in the present invention, a plurality of nodes connected to each other on a network and storing data, and an uppermost overlay network that is connected to the plurality of nodes and is composed of the entire set of the plurality of nodes. And constructing a hierarchical overlay network in which a sub-overlay network composed of a subset of the plurality of nodes and a unit overlay network composed of units of the plurality of nodes are sequentially hierarchized, and the hierarchical overlay A core node that manages the data by a network, and each of the plurality of nodes is assigned a node number indicating a stochastic uniform number across the set of the plurality of nodes, and the hierarchical overlay network Each overlay network included in the Based on the node number assigned to each node constituting the network and the data number indicating the stochastic uniform number obtained from the data stored in the node, the node storing the data in the network is determined. The core node configures the sub-overlay network by a subset of the plurality of nodes determined based on a geospatial distance when constructing the hierarchical overlay network. , The uppermost overlay network, the sub-overlay network, and the unit overlay network are associated with each other in order, and for each node constituting the hierarchical overlay network, information indicating all overlay networks including the node and the information Overlay Generating network configuration information having information on all nodes constituting the network and transferring the network configuration information to each node, the plurality of nodes holding the transferred network configuration information, and the plurality of nodes A distributed data management system is provided that, when writing data to a hierarchical overlay network, replicates the data in each overlay network associated with the unit overlay network that wrote the data.
 また、かかる課題を解決するため本発明においては、データを格納する複数のノードに接続されるコアノードにおけるコンピュータに、データを格納する複数のノードの全集合から構成される最上位オーバレイネットワークと、前記複数のノードの部分集合から構成されるサブオーバレイネットワークと、前記複数のノードの単元から構成される単元オーバレイネットワークとを順に階層化した階層型オーバレイネットワークを構築させ、前記階層型オーバレイネットワークによって前記データを管理させるためのプログラムであって、前記複数のノードには、前記複数のノードの集合に亘って確率的に均一な番号を示すノード番号がそれぞれ割当てられ、前記階層型オーバレイネットワークに含まれる各オーバレイネットワークは、該オーバレイネットワークを構成する各ノードに割当てられた前記ノード番号と、格納されるデータから得られる確率的に均一な番号を示すデータ番号とに基づいて、当該ネットワークにおいて当該データを格納するノードが決定されるリング型のネットワークであり、前記プログラムは、前記コアノードにおけるコンピュータに、前記階層型オーバレイネットワークを構築するときに、地理空間上の距離に基づいて決定される前記複数のノードの部分集合によって前記サブオーバレイネットワークを構成するステップと、前記最上位オーバレイネットワーク、前記サブオーバレイネットワーク、前記単元オーバレイネットワークの順で階層間を関連付けるステップと、前記階層型オーバレイネットワークを構成する各ノードについて、該ノードが含まれる全てのオーバレイネットワークを示す情報と該オーバレイネットワークを構成する全てのノードに関する情報とを含むネットワーク構成情報を生成するステップと、前記生成したネットワーク構成情報を前記各ノードに転送するステップと、を実行させるためのプログラムが提供される。 Further, in order to solve such a problem, in the present invention, a computer in a core node connected to a plurality of nodes storing data, a top-level overlay network composed of a whole set of a plurality of nodes storing data, A hierarchical overlay network in which a sub-overlay network composed of a subset of a plurality of nodes and a unit overlay network composed of a unit of the plurality of nodes are sequentially layered is constructed, and the data is obtained by the hierarchical overlay network. Each of the plurality of nodes is assigned a node number indicating a stochastic uniform number over the set of the plurality of nodes, and is included in the hierarchical overlay network. The overlay network Based on the node number assigned to each node constituting the valley network and a data number indicating a stochastic uniform number obtained from the stored data, a node for storing the data in the network is determined. A ring network, and the program is executed by a subset of the plurality of nodes determined based on a geospatial distance when the hierarchical overlay network is built on a computer in the core node. A step of constructing an overlay network, a step of associating hierarchies in the order of the highest order overlay network, the sub-overlay network, and the unit overlay network; and for each node constituting the hierarchical overlay network, Generating network configuration information including information indicating all included overlay networks and information relating to all nodes constituting the overlay network; and transferring the generated network configuration information to each of the nodes. A program is provided for execution.
 本発明によれば、対災害性を有し、どの構成ノードからもデータにアクセスできる分散型データベースを構築し、分散型データベースに格納されたデータを管理することができる。 According to the present invention, it is possible to construct a distributed database that has disaster resistance and can access data from any constituent node, and to manage the data stored in the distributed database.
第1の実施の形態による分散データ管理システムの構成を示すブロック図である。It is a block diagram which shows the structure of the distributed data management system by 1st Embodiment. メトリック管理テーブルの一例を示すテーブルである。It is a table which shows an example of a metric management table. 管理者サービス設定画面の画面例を示す概要図である。It is a schematic diagram which shows the example of a screen of an administrator service setting screen. 階層型ハッシュリングネットワークを構築する処理手続を示すフローチャートである。It is a flowchart which shows the process procedure which builds a hierarchical hash ring network. クラスタリングのポリシー例を示すテーブルである。It is a table which shows the example of a policy of clustering. 固定領域情報テーブルの一例を示すテーブルである。It is a table which shows an example of a fixed area information table. 重複する矩形領域の一例を示す説明図である。It is explanatory drawing which shows an example of the overlapping rectangular area. 図4に示す処理によって生成された階層型ハッシュリングネットワークの構成例を示す概略図である。It is the schematic which shows the structural example of the hierarchical hash ring network produced | generated by the process shown in FIG. 図8に示す階層型ハッシュリングネットワークにおけるネットワーク構成ノード情報を示すテーブル例である。FIG. 9 is a table example showing network configuration node information in the hierarchical hash ring network shown in FIG. 8. FIG. ネットワーク構成情報の一例を示すテーブルである。It is a table which shows an example of network configuration information. データ書込みの処理手順の一例を示すシーケンス図である。It is a sequence diagram which shows an example of the process procedure of data writing. データ書込みリクエストのフォーマット例を示す説明図である。It is explanatory drawing which shows the example of a format of a data write request. データ削除の処理手順の一例を示すシーケンス図である。It is a sequence diagram which shows an example of the process sequence of data deletion. ノードを削除した階層型ハッシュリングネットワークにおいてデータを復旧する方法を説明するための概略図である。It is the schematic for demonstrating the method to recover | restore data in the hierarchical hash ring network which deleted the node. 第2の実施の形態による分散データ管理システムにおいて、階層型ハッシュリングネットワークを構築する処理手続を示すフローチャートである。It is a flowchart which shows the process sequence which builds a hierarchical hash ring network in the distributed data management system by 2nd Embodiment. 図15に示す処理で用いられるクラスタリングのポリシー例を示すテーブルである。16 is a table showing an example of a clustering policy used in the processing shown in FIG. 第2の実施の形態における階層型ハッシュリングネットワークの構成例を示す概略図である。It is the schematic which shows the structural example of the hierarchical hash ring network in 2nd Embodiment. 図17に示す階層型ハッシュリングネットワークにおけるネットワーク構成ノード情報を示すテーブル例である。18 is a table example showing network configuration node information in the hierarchical hash ring network shown in FIG. 17. ネットワーク構成情報の一例を示すテーブル図である。It is a table figure which shows an example of network configuration information.
 なお、以下の説明では「aaaテーブル」、「aaaリスト」、「aaaDB」、「aaaキュー」等の表現にて本発明の情報を説明するが、これら情報は必ずしもテーブル、リスト、DB、キュー等のデータ構造以外で表現されていなくてもよい。そのため、データ構造に依存しないことを示すために「aaaテーブル」、「aaaリスト」、「aaaDB」、「aaaキュー」等について「aaa情報」と呼ぶことがある。
 さらに、各情報の内容を説明する際に、「識別情報」、「識別子」、「名」、「名前」、「ID」という表現を用いるが、これらについては互いに置換が可能である。
 また、以後の説明では「プログラム」を主語として説明を行う場合があるが、プログラムはプロセッサによって実行されることで定められた処理をメモリ及び通信ポート(通信制御デバイス)を用いながら行うため、プロセッサを主語とした説明としてもよい。また、プログラムを主語として開示された処理は管理サーバ等の計算機、情報処理装置が行う処理としてもよい。また、プログラムの一部または全ては専用ハードウェアによって実現されてもよい。また、各種プログラムはプログラム配布サーバや、計算機が読取り可能な記憶メディアによって各計算機にインストールされてもよい。
In the following description, the information of the present invention will be described using expressions such as “aaa table”, “aaa list”, “aaaDB”, “aaa queue”, etc., but these information are not necessarily tables, lists, DBs, queues, etc. It may not be expressed in other than the data structure. Therefore, “aaa table”, “aaa list”, “aaaDB”, “aaa queue”, etc. may be referred to as “aaa information” to indicate that they are not dependent on the data structure.
Furthermore, in describing the contents of each information, the expressions “identification information”, “identifier”, “name”, “name”, and “ID” are used, but these can be replaced with each other.
In the following description, “program” may be used as the subject. However, since the program performs processing determined by being executed by the processor using a memory and a communication port (communication control device), the processor The subject may be an explanation. Further, the processing disclosed with the program as the subject may be processing performed by a computer such as a management server or an information processing apparatus. Further, part or all of the program may be realized by dedicated hardware. Various programs may be installed in each computer by a program distribution server or a computer-readable storage medium.
(1)第1の実施の形態
 第1の実施の形態による分散データ管理システムは、データを格納する複数のノードと、複数のノードが参加する階層型オーバレイネットワーク(階層型ハッシュリングネットワーク)による分散型データベースを構築し、構築した階層型ハッシュリングネットワークによってデータを管理するコアノードとを有して構成され、コアノードが、地理空間上の近傍性に基づいて決定されるノードの集合によってサブオーバレイネットワーク(ハッシュリングネットワーク)を構成し、階層型ハッシュリングネットワークにおいて各ノードが含まれるネットワークと、当該ネットワークを構成する全てのノードに関する情報とを有する構成情報を生成し、各ノードに転送することを特徴としている。
(1) First Embodiment A distributed data management system according to a first embodiment is distributed by a plurality of nodes storing data and a hierarchical overlay network (hierarchical hash ring network) in which the plurality of nodes participate. Type database, and a core node that manages data by the constructed hierarchical hash ring network, and the core node is a sub-overlay network ( Hash ring network), generating configuration information having a network including each node in the hierarchical hash ring network and information on all nodes constituting the network, and transferring the generated configuration information to each node Yes.
(1-1)分散データ管理システムの構成
 図1は、第1の実施の形態による分散データ管理システムの構成を示すブロック図である。図1に示す分散データ管理システム1は、コアノード10及び複数のノード20(個別には、ノード20A~20N)がネットワーク30で互いに接続されて構成され、複数のノード20が参加する分散型データベースを管理する。なお、コアノード10及び複数のノード20は、それぞれが中央処理装置(CPU:Central Processing Unit)、メモリ、及びインタフェース等を有し、一般的なコンピュータ、サーバ、又はデータセンタ等の情報処理装置によって実現される。
(1-1) Configuration of Distributed Data Management System FIG. 1 is a block diagram showing the configuration of the distributed data management system according to the first embodiment. A distributed data management system 1 shown in FIG. 1 includes a distributed database in which a core node 10 and a plurality of nodes 20 (individually, nodes 20A to 20N) are connected to each other via a network 30, and the plurality of nodes 20 participate. to manage. Each of the core node 10 and the plurality of nodes 20 has a central processing unit (CPU), a memory, and an interface, and is realized by an information processing device such as a general computer, a server, or a data center. Is done.
(1-1-1)コアノードの構成及び各部の機能
 コアノード10は、分散型データベースとして複数のノード20を組み込んで構築される階層型ハッシュリングネットワークの構成を作成し、当該階層型ハッシュリングネットワークを管理するための装置である。より具体的には、コアノード10は、各ノード20A~20Nで取得される、当該ノードの性能を示す測定値(以下、メトリックと呼ぶ)を収集し、収集したメトリックに基づいて階層型ハッシュリングネットワークを構築するそして、コアノード10は、構築した階層型ハッシュリングネットワークの構成情報を各ノード20に転送する。なお、階層型ハッシュリングネットワークは、オーバレイネットワークの一例であり、コアノード10が階層型ハッシュリングネットワークを構築し、その構成情報をノード20に転送する処理については、図4を参照しながら後述する。
(1-1-1) Configuration of Core Node and Functions of Each Unit The core node 10 creates a hierarchical hash ring network configuration constructed by incorporating a plurality of nodes 20 as a distributed database, and stores the hierarchical hash ring network. It is a device for managing. More specifically, the core node 10 collects measured values (hereinafter referred to as metrics) obtained by the nodes 20A to 20N and indicating the performance of the nodes, and based on the collected metrics, the hierarchical hash ring network Then, the core node 10 transfers configuration information of the constructed hierarchical hash ring network to each node 20. The hierarchical hash ring network is an example of an overlay network, and a process in which the core node 10 constructs a hierarchical hash ring network and transfers the configuration information to the node 20 will be described later with reference to FIG.
 図1に示すように、コアノード10は、構成情報管理部11、通信I/O(Input/Output)12、及び通信ユニット13を有している。通信I/O12は、構成情報管理部11が通信機能を利用する場合に用いられるインタフェースであり、一般には通信ライブラリやプロトコルスタック等のソフトウェアに相当するが、これに限定されるものではない。また、通信ユニット13は、通信機能を提供するデバイスであり、一般にはNIC(Network interface Card)に相当するが、これに限定されるものではない。 As shown in FIG. 1, the core node 10 includes a configuration information management unit 11, a communication I / O (Input / Output) 12, and a communication unit 13. The communication I / O 12 is an interface used when the configuration information management unit 11 uses a communication function, and generally corresponds to software such as a communication library or a protocol stack, but is not limited thereto. The communication unit 13 is a device that provides a communication function, and generally corresponds to a NIC (Network Interface Card), but is not limited thereto.
 なお、コアノード10は入出力デバイス(図示せず)を有する。入出力デバイスの例としてはディスプレイとキーボードとポインタデバイスが考えられるが、これ以外のデバイスであってもよい。また、入出力デバイスの代替としてシリアルインタフェースやイーサーネットインタフェースを入出力デバイスとし、当該インタフェースにディスプレイ又はキーボード又はポインタデバイスを有する表示用計算機を接続し、表示用情報を表示用計算機に送信したり、入力用情報を表示用計算機から受信することで、表示用計算機で表示を行ったり、入力を受け付けることで入出力デバイスでの入力及び表示を代替してもよい。 The core node 10 has an input / output device (not shown). Examples of input / output devices include a display, a keyboard, and a pointer device, but other devices may be used. Also, as an alternative to the input / output device, a serial interface or an Ethernet interface is used as the input / output device, a display computer having a display or keyboard or pointer device is connected to the interface, and the display information is transmitted to the display computer. By receiving the input information from the display computer, the display computer may perform the display, or the input may be replaced by the input / output device by receiving the input.
 構成情報管理部11は、CPU(図示せず)がメモリ(図示せず)に格納されたプログラムを読込んで実行することによって、複数のノード20のメトリックに基づいて階層型ハッシュリングネットワーク構成を作成すること、及び、作成した階層型ハッシュリングネットワークの構成情報を複数のノード20に配布することを実現する。なお、構成情報管理部11による階層型ハッシュリングネットワーク構成の作成、及び階層型ハッシュングネットワークの構成情報の配布は、コアノード10に接続された記録媒体から読込まれたプログラムをCPUが実行することによって実現されてもよい。構成情報管理部11は、機能的には、メトリック管理部111、構成情報作成部112、及び構成情報転送制御部113から構成される。 The configuration information management unit 11 creates a hierarchical hash ring network configuration based on the metrics of a plurality of nodes 20 by reading and executing a program stored in a memory (not shown) by a CPU (not shown). And distributing the created configuration information of the hierarchical hash ring network to the plurality of nodes 20. The creation of the hierarchical hash ring network configuration and the distribution of the configuration information of the hierarchical hashing network by the configuration information management unit 11 are executed by the CPU executing a program read from the recording medium connected to the core node 10. It may be realized. The configuration information management unit 11 functionally includes a metric management unit 111, a configuration information creation unit 112, and a configuration information transfer control unit 113.
 メトリック管理部111は、後述する階層型ハッシュリングネットワークの構成時に必要となるメトリックを、複数のノード20から収集して管理する。より具体的には、ノード20A~20Nのメトリック取得部22でそれぞれ取得されたメトリックは、ネットワーク上に送信され、コアノード10の通信ユニット13及び通信I/O12を経由してメトリック管理部111に収集される。そして、メトリック管理部111は、収集したメトリックをテーブルやリスト等に纏め、記憶領域に保持して管理する。 The metric management unit 111 collects and manages metrics necessary for configuring a hierarchical hash ring network described later from a plurality of nodes 20. More specifically, the metrics respectively acquired by the metric acquisition units 22 of the nodes 20A to 20N are transmitted on the network and collected by the metric management unit 111 via the communication unit 13 and the communication I / O 12 of the core node 10. Is done. The metric management unit 111 collects the collected metrics into a table, a list, etc., and manages them by storing them in a storage area.
 ここで、メトリック管理部111に収集されるメトリックは、ノード20の性能状態を示す様々なパラメータの測定値を適用し得るが、本実施の形態では一例として、ノード20の各部位(CPU235やメモリ236等)におけるスペックの測定値や位置情報を収集し、メトリック管理テーブルとして管理する。 Here, as the metrics collected by the metric management unit 111, measured values of various parameters indicating the performance state of the node 20 can be applied. In the present embodiment, as an example, each part (the CPU 235 or the memory of the node 20). 236, etc.) are collected and managed as a metric management table.
 図2は、メトリック管理テーブルの一例を示すテーブルである。図2(a)のメトリック管理テーブル141及び図2(b)のメトリック管理テーブル142には、複数のノード20のそれぞれ(一例としてノード20A,20B,20C)について、メトリック管理部111が収集したメトリックが格納されている。 FIG. 2 is a table showing an example of the metric management table. In the metric management table 141 in FIG. 2A and the metric management table 142 in FIG. 2B, the metrics collected by the metric management unit 111 for each of the plurality of nodes 20 ( nodes 20A, 20B, and 20C as an example). Is stored.
 図2(a)に示すメトリック管理テーブル141は、ノード20A,20B,20Cのスペック及び位置情報を示すメトリックを格納している。メトリック管理テーブル141において、ノード欄141Aにはメトリックの取得対象であるノード20が記載され、アドレス欄141Bには当該ノード20のアドレスが記載される。CPU欄141C、メモリ欄141D、ストレージ欄141E及びネットワーク欄141Fからなるスペック欄には、各部位(CPU235、メモリ236、ストレージユニット234、及び通信ユニット233等)におけるスペックに関するメトリックが記載される。例えば、CPU欄141Cには、CPU235の静的な仕様性能(動作周波数に相当)と、動的な性能を示す使用率(CPU使用率に相当)とが記載される。また、メモリ欄141Dには、メモリ236の静的な仕様性能(メモリ容量に相当)と動的な性能を示す使用率(メモリ使用率に相当)とが記載される。位置情報欄141Gには、メトリック取得対象のノード20の位置を示す位置情報(住所情報又は座標情報に相当)が記載される。 The metric management table 141 shown in FIG. 2A stores metrics indicating the specifications and position information of the nodes 20A, 20B, and 20C. In the metric management table 141, the node 20 141A describes the node 20 that is the metric acquisition target, and the address column 141B describes the address of the node 20. In the specification column including the CPU column 141C, the memory column 141D, the storage column 141E, and the network column 141F, metrics related to specifications in each part (CPU 235, memory 236, storage unit 234, communication unit 233, etc.) are described. For example, the CPU column 141C describes the static specification performance (corresponding to the operating frequency) of the CPU 235 and the usage rate (corresponding to the CPU usage rate) indicating the dynamic performance. In the memory column 141D, the static specification performance (corresponding to the memory capacity) of the memory 236 and the usage rate (corresponding to the memory usage rate) indicating the dynamic performance are described. In the position information column 141G, position information (corresponding to address information or coordinate information) indicating the position of the node 20 that is the metric acquisition target is described.
 図2(b)に示すメトリック管理テーブル142には、ノード20A,20B,20Cについて、ネットワーク上のノード間の距離(ネットワーク距離)を示すメトリックが格納されている。ノード間のネットワーク距離を示す値の種類は特に限定されず、例えば、ノード間でPingを実行することによって得られるホップ数であってもよく、スループットやレスポンスの値であってもよく、IPアドレスの数値の近さによる値であってもよく、また、他の測定によって得られる値を正規化した値であってもよい。 In the metric management table 142 shown in FIG. 2B, a metric indicating the distance between nodes on the network (network distance) is stored for the nodes 20A, 20B, and 20C. The type of value indicating the network distance between nodes is not particularly limited. For example, it may be the number of hops obtained by executing Ping between nodes, may be a value of throughput or response, and may be an IP address. The value may be a value based on the closeness of the numerical value, or may be a value obtained by normalizing a value obtained by another measurement.
 なお、メトリック管理テーブル141,142に格納されるメトリックは、ノード20のメトリック取得部22によって取得されるメトリックに限らず、管理者やユーザ等によって直接入力されるメトリックであってもよい。また例えば、ノード20Aが位置測定ユニット237を持たない構成の場合には管理者がノード20Aの位置情報を入力する、といったように、メトリック取得部22からの入力と直接入力とが混在してメトリック管理テーブルに格納されてもよい。 Note that the metrics stored in the metric management tables 141 and 142 are not limited to metrics acquired by the metric acquisition unit 22 of the node 20, but may be metrics directly input by an administrator, a user, or the like. In addition, for example, when the node 20A has a configuration without the position measurement unit 237, the administrator inputs the position information of the node 20A. It may be stored in a management table.
 図3は、管理者サービス設定画面の画面例を示す概要図である。図3に示す管理者サービス設定画面143は、管理者がメトリックの設定及びネットワークの設定を直接行うために提供される画面である。管理者サービス設定画面は、例えば、コアノード10又はコアノードに接続される管理者端末(図示せず)の表示部(何れも図示せず)に表示され、管理者から管理者サービス設定画面に入力された設定内容が、構成情報管理部11に通知される。管理者サービス設定画面143には、メトリック設定欄143A、階層数設定欄143B、ポリシー階層設定欄143C、ポリシー内容設定欄143D、及びノード重複設定欄143Eが設けられている。メトリック設定欄143Aには、指定したノード20について、位置情報(住所情報又は座標情報)を入力することができる。階層数設定欄143Bには、階層型ハッシュリングネットワークにおける全階層数を設定することができる。ポリシー階層設定欄143C及びポリシー内容設定欄143Dには、空間近傍性に基づくハッシュリングネットワークを作成時のポリシーについて、階層及び内容を設定することができる。ノード重複設定欄143Eには、ハッシュリングネットワーク間でノード20の重複を許可するか否かを設定することができる。従って、前述した位置情報に関するメトリックの直接設定は、管理者サービス設定画面143のメトリック設定欄143Aへの入力によって行うことができる。また、階層数設定欄143B、ポリシー階層設定欄143C、ポリシー内容設定欄143D、及びノード重複設定欄143Eについては、それぞれの設定が行われる処理の説明において後述する。 FIG. 3 is a schematic diagram showing a screen example of the administrator service setting screen. The administrator service setting screen 143 shown in FIG. 3 is a screen provided for the administrator to directly perform metric setting and network setting. The administrator service setting screen is displayed on, for example, the core node 10 or a display unit (not shown) of an administrator terminal (not shown) connected to the core node, and is input from the administrator to the administrator service setting screen. The configuration information is notified to the configuration information management unit 11. The administrator service setting screen 143 includes a metric setting field 143A, a hierarchy number setting field 143B, a policy hierarchy setting field 143C, a policy content setting field 143D, and a node duplication setting field 143E. In the metric setting field 143A, position information (address information or coordinate information) can be input for the designated node 20. In the hierarchy number setting column 143B, the total number of hierarchies in the hierarchical hash ring network can be set. In the policy hierarchy setting field 143C and the policy content setting field 143D, the hierarchy and contents can be set for the policy at the time of creating the hash ring network based on the spatial proximity. In the node duplication setting field 143E, it is possible to set whether or not duplication of the node 20 is permitted between hash ring networks. Therefore, the direct setting of the metric relating to the position information described above can be performed by inputting to the metric setting field 143A of the administrator service setting screen 143. Further, the hierarchy number setting field 143B, the policy hierarchy setting field 143C, the policy content setting field 143D, and the node duplication setting field 143E will be described later in the description of the processing in which each setting is performed.
 構成情報作成部112は、メトリック管理部111が管理するメトリック管理テーブル141,142に基づいて、ノード20が参加する階層型ハッシュリングネットワークの構成情報を作成する。構成情報転送制御部113は、構成情報作成部112で作成された階層型ハッシュリングネットワーク構成情報を複数のノード20に配布する。 The configuration information creation unit 112 creates configuration information of the hierarchical hash ring network in which the node 20 participates based on the metric management tables 141 and 142 managed by the metric management unit 111. The configuration information transfer control unit 113 distributes the hierarchical hash ring network configuration information created by the configuration information creation unit 112 to the plurality of nodes 20.
(1-1-2)ノードの構成及び各部の機能
 ノード20は、携帯電話網やWiFi(登録商標)等のネットワークを経由してユーザ端末(図示せず)から通信可能に接続される。ノード20は、コアノードによって構成が管理される階層型ハッシュリングネットワークのノードであり、自ノード20(例えばノード20A)のメトリックを取得してコアノード10に送信する機能と、ユーザ(ユーザ端末)や他のノード20(例えばノード20B)から送付されるデータアクセスを伴うリクエスト(データアクセスリクエスト)を処理する機能とを有している。
(1-1-2) Node Configuration and Functions of Each Part The node 20 is communicably connected from a user terminal (not shown) via a network such as a mobile phone network or WiFi (registered trademark). The node 20 is a node of a hierarchical hash ring network whose configuration is managed by the core node. The node 20 acquires a metric of the own node 20 (for example, the node 20A) and transmits it to the core node 10, a user (user terminal), and others. And a function for processing a request (data access request) accompanied by data access sent from the node 20 (for example, the node 20B).
 ここで、ユーザ端末や他のノード20から送付されるデータアクセスリクエストとは、分散データへのデータの書込みリクエストや読込みリクエスト等に相当する。より具体的には、ユーザ端末から送付されるデータアクセスリクエストは、一般的なデータの格納又は参照を要求するものである。他のノード20(例えばノード20B)から送付されるデータアクセスリクエストは、書込みリクエストの場合には当該データを複製(レプリケート)する要求であり、読込みリクエストの場合には、ユーザ端末から接続されたノード20Bが、ユーザ端末から要求されたデータを、ユーザ端末の代わりに読込もうと要求するものである。また、データアクセスはデータの書込みリクエスト及び読込みリクエストに限定されるものではなく、ノードの追加処理を要求する追加リクエストや、データ又はノードの削除を要求する削除リクエスト等も含まれる。 Here, the data access request sent from the user terminal or another node 20 corresponds to a data write request or a read request to the distributed data. More specifically, the data access request sent from the user terminal requests general data storage or reference. The data access request sent from the other node 20 (for example, the node 20B) is a request to replicate (replicate) the data in the case of a write request, and the node connected from the user terminal in the case of a read request. 20B requests to read the data requested from the user terminal instead of the user terminal. Further, data access is not limited to data write requests and read requests, but includes an add request for requesting node addition processing, a delete request for requesting data or node deletion, and the like.
 以下では、ノード20の詳細な構成を説明するが、ノード20A~20Nは、全て同等の構成を有するので、簡略のためノード20Aについてのみ説明を行う。なお、ノード20の台数は特に限定されず、図1ではn台のノード20が存在するとする。 Hereinafter, the detailed configuration of the node 20 will be described. However, since all of the nodes 20A to 20N have the same configuration, only the node 20A will be described for the sake of brevity. The number of nodes 20 is not particularly limited, and it is assumed that there are n nodes 20 in FIG.
 ノード20Aは、図1に示すようにデータ制御部21、メトリック取得部22、及び管理デバイス23を有している。図1のノード20Aには、ユーザ端末からのデータアクセスリクエストの処理に関連する構成要素が記載されている。 The node 20A has a data control unit 21, a metric acquisition unit 22, and a management device 23 as shown in FIG. The node 20A in FIG. 1 describes components related to processing of a data access request from a user terminal.
 データ制御部21は、リクエスト処理部211、データ書込制御部212、データ読込制御部213、及びテーブル管理部214を有し、ユーザ端末からのデータアクセスリクエストに関する処理を制御する。 The data control unit 21 includes a request processing unit 211, a data write control unit 212, a data read control unit 213, and a table management unit 214, and controls processing related to a data access request from a user terminal.
 リクエスト処理部211は、ユーザ端末又は他のノード20B~20Nから送付されたデータアクセスリクエストを受け取り、解析とハッシュ値の算出を行い、解析結果及び算出結果を出力する機能を有し、リクエスト解析部215、ハッシュ計算部216、及びノード導出部217から構成される。リクエスト解析部215は、データアクセスリクエストを通信ユニット233及び通信I/O231を経由して受け取り、受け取ったリクエストの解析を行う。リクエスト解析部215は、当該解析によって、例えば、データアクセスリクエストがデータの書込み要求なのか読込み要求なのかを判別したり、また、当該リクエストに含まれ、データアクセスのキーとして利用される情報(以下、データキーと呼ぶ)を判別したりする。ハッシュ計算部216は、リクエスト解析部215によって解析されたデータキーからハッシュ値を導出する。また、ノード導出部217は、ハッシュ計算部216によって導出されるハッシュ値とテーブル管理部214に管理されるテーブルとを参照して、当該リクエストによるデータのアクセス先(データの書込み先、又はデータの読込み先)となるノード20を決定する。 The request processing unit 211 has a function of receiving a data access request sent from a user terminal or another node 20B to 20N, performing analysis and calculation of a hash value, and outputting an analysis result and a calculation result. 215, a hash calculation unit 216, and a node derivation unit 217. The request analysis unit 215 receives a data access request via the communication unit 233 and the communication I / O 231 and analyzes the received request. The request analysis unit 215 determines, for example, whether the data access request is a data write request or a read request by the analysis, and also includes information (hereinafter referred to as a data access key) included in the request. Or a data key). The hash calculation unit 216 derives a hash value from the data key analyzed by the request analysis unit 215. Further, the node deriving unit 217 refers to the hash value derived by the hash calculation unit 216 and the table managed by the table management unit 214, and accesses the data accessed by the request (data write destination or data The node 20 to be read in) is determined.
 最終的にリクエスト処理部211は、リクエスト解析部215による解析結果に応じて、当該リクエストがデータ書込み要求であった場合にはデータ書込制御部212にデータ書込み要求とデータ書込み先を通知し、データ読込み要求であった場合にはデータ読込制御部213にデータ読込み要求とデータ読込み先を通知する。 Finally, the request processing unit 211 notifies the data write control unit 212 of the data write request and the data write destination when the request is a data write request according to the analysis result by the request analysis unit 215. If it is a data read request, the data read control unit 213 is notified of the data read request and the data read destination.
 データ書込制御部212は、リクエスト処理部211からデータ書込み要求を受け取った場合に、データの書込み先が他のノード(例えばノード20B)であった場合には、通信I/O231を経由して通信ユニット233から当該他のノード20Bに、当該データの書込みを依頼する。また、データ書込制御部212は、リクエスト処理部211からデータ書込み要求を受け取った場合に、データの書込み先が自身のノード20Aであった場合には、ストレージI/O232を経由してストレージユニット234にデータを書込む。 When the data write control unit 212 receives a data write request from the request processing unit 211 and the data write destination is another node (for example, the node 20B), the data write control unit 212 passes through the communication I / O 231. The communication unit 233 requests the other node 20B to write the data. In addition, when the data write control unit 212 receives a data write request from the request processing unit 211 and the data write destination is the node 20 </ b> A of itself, the data write control unit 212 passes the storage unit via the storage I / O 232. Write data to H.234.
 データ読込制御部213は、リクエスト処理部211からデータ読込み要求を受け取った場合に、データの読込み先が他のノード(例えばノード20B)であった場合には、通信I/O231を経由して通信ユニット233から当該他のノード20Bに、当該データの読込みを依頼する。また、データ読込制御部213は、リクエスト処理部211からデータ読込み要求を受け取った場合に、データの読込み先が自身のノード20Aであった場合には、ストレージI/O232を経由してストレージユニット234からデータを読込む。 When the data reading control unit 213 receives a data reading request from the request processing unit 211 and the data reading destination is another node (for example, the node 20B), the data reading control unit 213 performs communication via the communication I / O 231. The unit 233 requests the other node 20B to read the data. In addition, when the data read control unit 213 receives a data read request from the request processing unit 211 and the data read destination is the node 20 </ b> A of the data read control unit 213, the data read control unit 213 via the storage I / O 232 stores Read data from.
 テーブル管理部214は、コアノード10から送付される階層型ハッシュリングネットワークの構成情報が記載されたテーブルを管理し、ノード導出部217からの当該テーブルへの参照を受け付ける。 The table management unit 214 manages a table in which configuration information of the hierarchical hash ring network sent from the core node 10 is described, and receives a reference to the table from the node deriving unit 217.
 メトリック取得部22は、管理デバイス23から1種以上のメトリックを取得し、取得したメトリックをコアノード10に送信する。一例として、メトリック取得部22は、定期的に取得したメトリックコアノード10に送信し、ノード20Aで障害が発生した場合には、障害発生に対応してイベントドリブンに収集したメトリックをコアノード10に送信する。 The metric acquisition unit 22 acquires one or more types of metrics from the management device 23 and transmits the acquired metrics to the core node 10. As an example, the metric acquisition unit 22 transmits to the regularly acquired metric core node 10, and when a failure occurs in the node 20 </ b> A, transmits the metrics collected in an event-driven manner in response to the failure to the core node 10. .
 管理デバイス23は、通信I/O231、ストレージI/O232、通信ユニット233、ストレージユニット234、CPU235、メモリ236、及び位置測定ユニット237を有する。 The management device 23 includes a communication I / O 231, a storage I / O 232, a communication unit 233, a storage unit 234, a CPU 235, a memory 236, and a position measurement unit 237.
 通信I/O231は、データ制御部21が通信機能を利用する場合に用いられるインタフェースであり、一般には通信ライブラリやプロトコルスタック等のソフトウェアに相当するが、これに限定されるものではない。ストレージI/O232は、データ制御部21がストレージアクセスを要求する場合に用いられるインタフェースである。通信ユニット233は、ノード20Aに通信機能を提供するデバイスであり、一般にはNICに相当するが、これに限定されるものではない。 The communication I / O 231 is an interface used when the data control unit 21 uses a communication function, and generally corresponds to software such as a communication library or a protocol stack, but is not limited thereto. The storage I / O 232 is an interface used when the data control unit 21 requests storage access. The communication unit 233 is a device that provides a communication function to the node 20A, and generally corresponds to a NIC, but is not limited thereto.
 ストレージユニット234は、ノード20Aにおけるローカルストレージを総じて表している。ストレージユニット234は、ノード20Aにストレージ機能を提供し、例えば補助記憶装置又はハードディスクドライブ(HDD)等に相当する。CPU235は、ストレージユニット234に格納されメモリ236に保持されるプログラム及びデータを読出し、プログラムの命令コードに従ってデータを処理する。メモリ236は、ストレージユニット234等に格納されるプログラム及びデータを一時的に格納する主記憶装置である。 The storage unit 234 generally represents the local storage in the node 20A. The storage unit 234 provides a storage function to the node 20A and corresponds to, for example, an auxiliary storage device or a hard disk drive (HDD). The CPU 235 reads the program and data stored in the storage unit 234 and held in the memory 236, and processes the data according to the instruction code of the program. The memory 236 is a main storage device that temporarily stores programs and data stored in the storage unit 234 and the like.
 位置測定ユニット237は、ノード20Aの地理的な位置を測定し、例えば位置情報に数値化して出力するデバイスであり、一般にはGPS(Global Positioning System)で実現される。位置測定ユニット237は、本実施の形態の分散データ管理システムの説明を容易にするものであるが、必ずしも必要な構成ではない。例えば、ノード20Aが、設置場所から移動しない場合には、ノード20Aの設置時に、ノード20Aの設置位置を示す地理的な位置情報をノード20A又はコアノード10に保存しておけばよい。 The position measurement unit 237 is a device that measures the geographical position of the node 20A and outputs the position information as a numerical value, for example, and is generally realized by GPS (Global Positioning System). The position measurement unit 237 facilitates the description of the distributed data management system according to the present embodiment, but is not necessarily required. For example, when the node 20A does not move from the installation location, the geographical position information indicating the installation position of the node 20A may be stored in the node 20A or the core node 10 when the node 20A is installed.
(1-2)階層型ハッシュリングネットワークの構築
 以下では、本実施の形態による分散データ管理システム1において、構成情報作成部112によって構築される階層型ハッシュリングネットワークの構築方法の一例について説明する。分散データ管理システム1では、階層ごとに1以上のレプリケーションデータが作成され、レプリケーションデータの数に応じて階層型ネットワークの階層数が設定される。階層型ネットワークの階層数の設定は、予めコアノード10に設定されるようにしてもよく、また、図3に示す管理者サービス設定画面143の階層数設定欄143Bに、管理者が希望する階層数を設定するようにしてもよい。以下の説明では、一例として、階層型ハッシュリングネットワークの階層数を4とする。従って、分散データ管理システム1が管理する階層型ハッシュリングネットワークにおけるレプリケーションデータの数は少なくとも4となる。
(1-2) Construction of Hierarchical Hash Ring Network Hereinafter, an example of a construction method of a hierarchical hash ring network constructed by the configuration information creation unit 112 in the distributed data management system 1 according to the present embodiment will be described. In the distributed data management system 1, one or more replication data is created for each tier, and the number of tiers of the tiered network is set according to the number of replication data. The number of hierarchies of the hierarchical network may be set in advance in the core node 10, and the number of hierarchies desired by the administrator is displayed in the hierarchy number setting field 143B of the administrator service setting screen 143 shown in FIG. May be set. In the following description, as an example, the number of layers of the hierarchical hash ring network is four. Therefore, the number of replication data in the hierarchical hash ring network managed by the distributed data management system 1 is at least four.
 図4は、階層型ハッシュリングネットワークを構築する処理手続を示すフローチャートである。図4を参照して、全階層数を4とし、ノード20A~20Mが参加する階層型ハッシュリングネットワークを構築する処理手続について説明する。 FIG. 4 is a flowchart showing a processing procedure for constructing a hierarchical hash ring network. With reference to FIG. 4, a processing procedure for constructing a hierarchical hash ring network in which the total number of hierarchies is four and nodes 20A to 20M participate will be described.
(1-2-1)ハッシュ値の導出
 まず、構成情報作成部112は、分散型データベースに参加するノード20(ここではノード20A~20Mであり、図によっては「A」、「B」、・・・「M」のように簡略化して表わす)それぞれに割当てられるユニークな識別子をハッシュ関数に投入して、各ノード20A~20Mのハッシュ値を導出する(ステップS101)。ここで、ノード20A~20Mに割当てられる識別子は、各ノード20A~20Mを一意に識別できればよく、文字列又は数値の何れであってもよい。また、ハッシュ関数の種類は限定されず、例えば、SHA(Secure Hash Algorithm)-1、SHA256、又はMD(Message Digest Algorithm)5等のハッシュ関数を使用できる。
(1-2-1) Derivation of Hash Value First, the configuration information creation unit 112 is a node 20 participating in the distributed database (here, the nodes 20A to 20M, “A”, “B”,. A unique identifier assigned to each is input to the hash function to derive hash values of the nodes 20A to 20M (step S101). Here, the identifier assigned to the nodes 20A to 20M only needs to be able to uniquely identify each of the nodes 20A to 20M, and may be either a character string or a numerical value. The type of hash function is not limited. For example, a hash function such as SHA (Secure Hash Algorithm) -1, SHA256, or MD (Message Digest Algorithm) 5 can be used.
 本実施の形態では、ノード20A~20Mは複数の階層にまたがって構成されるが、各ノード20のハッシュ値空間は同一である。すなわち、階層型ハッシュリングネットワークを構成する全てのハッシュリングネットワークにおけるハッシュ空間サイズは同一であり、ノード20A~20Mは、自身が参加するハッシュリングネットワークにおいて、同一のハッシュ値により一意に決定される。 In this embodiment, the nodes 20A to 20M are configured across a plurality of hierarchies, but the hash value space of each node 20 is the same. That is, the hash space sizes in all the hash ring networks constituting the hierarchical hash ring network are the same, and the nodes 20A to 20M are uniquely determined by the same hash value in the hash ring network in which the nodes 20A to 20M participate.
(1-2-2)第0層ネットワーク及び最下層ネットワークの作成
 次に、構成情報作成部112は、ステップS101で導出されたハッシュ値に基づいて、全てのノード20を含む第0層ネットワークを作成する(ステップS102)。具体的には、構成情報作成部112は、ハッシュ関数が取り得る最小値(例えば「0」)からハッシュ関数が取り得る最大値(例えば「HASH_MAX」)を一次元ハッシュリング空間にマップし、各ノード20A~20Mをそれぞれのハッシュ値に応じて一次元ハッシュリング空間に配置する。なお、ハッシュ空間のサイズやハッシュ空間への配置方法は特に限定されない。
(1-2-2) Creation of Layer 0 Network and Bottom Layer Network Next, the configuration information creation unit 112 creates a layer 0 network including all the nodes 20 based on the hash value derived in step S101. Create (step S102). Specifically, the configuration information creation unit 112 maps the maximum value (for example, “HASH_MAX”) that can be taken by the hash function from the minimum value (for example, “0”) that can be taken by the hash function to the one-dimensional hash ring space, Nodes 20A to 20M are arranged in a one-dimensional hash ring space according to their hash values. The size of the hash space and the arrangement method in the hash space are not particularly limited.
 次に、構成情報作成部112は、各ノード20A~20Mについて、自身だけを含むハッシュリングネットワークを、ノード20A~20Mのノード数分だけ作成する(ステップS103)。このハッシュリングネットワークは最下層ネットワークとなり、全体の階層数を4とする場合には、第3層ネットワークに相当する。具体的には、構成情報作成部112は、ステップS102と同様に、ハッシュ関数が取り得る最小値と最大値とを一次元ハッシュリング空間にマップし、各ノード20A~20Mをそれぞれのハッシュ値に応じて一次元ハッシュリング空間に配置する。 Next, the configuration information creation unit 112 creates, for each of the nodes 20A to 20M, hash ring networks including only itself for the number of nodes of the nodes 20A to 20M (step S103). This hash ring network is the lowest layer network, and when the total number of hierarchies is 4, it corresponds to the third layer network. Specifically, as in step S102, the configuration information creation unit 112 maps the minimum and maximum values that can be taken by the hash function to a one-dimensional hash ring space, and sets each of the nodes 20A to 20M to the respective hash values. Accordingly, it is arranged in a one-dimensional hash ring space.
(1-2-3)近傍ネットワークの作成
 次に、構成情報作成部112は、空間近傍性に基づくハッシュリングリングネットワーク(以降では、近傍ネットワークと呼ぶ)を、m層(mは変数)作成する(ステップS104~S110)。ここでは、全階層数を4としているので、ステップS102で作成された第0層ネットワークと、ステップS103で作成された最下層ネットワークの2つを差し引いて、m=2となる。なお、空間近傍性とは、地理空間の近傍性であっても、ネットワーク空間の近傍性であっても構わない。以下、近傍ネットワークを作成するステップS104~S110の処理を詳しく説明する。
(1-2-3) Creation of Neighborhood Network Next, the configuration information creation unit 112 creates m layers (m is a variable) of a hash ring network (hereinafter referred to as a neighborhood network) based on spatial proximity. (Steps S104 to S110). Here, since the total number of hierarchies is 4, two are subtracted from the 0th layer network created in step S102 and the lowest layer network created in step S103, so that m = 2. The spatial proximity may be a geographic space proximity or a network space proximity. Hereinafter, the processing of steps S104 to S110 for creating a neighborhood network will be described in detail.
(1-2-3-1)ノードのクラスタリング
 ステップS104では、構成情報作成部112は、各階層に割当てられたノード20に対して、階層ごとに地理空間上又はネットワーク空間上の距離が近いノード20をクラスタリングする。以降、ステップS104でクラスタリングされたノードを組込んで作成されるネットワークを近傍ネットワークとも呼ぶ。
(1-2-3-1) Node Clustering In step S104, the configuration information creation unit 112 is a node whose distance in the geographic space or network space is close to each node 20 with respect to the node 20 assigned to each layer. 20 is clustered. Hereinafter, a network created by incorporating the nodes clustered in step S104 is also referred to as a neighborhood network.
 図5は、クラスタリングのポリシー例を示すテーブルである。図5に示すポリシーテーブル144は、第何層のネットワークかが記載される層欄144A、地理空間を基準とする場合のポリシーが記載されるポリシー(地理空間)欄144B、及び、ネットワーク空間を基準とする場合のポリシーが記載されるポリシー(ネットワーク空間)欄144Cを有して構成される。 FIG. 5 is a table showing an example of a clustering policy. The policy table 144 shown in FIG. 5 includes a layer column 144A in which the number of layers of networks is described, a policy (geospace) column 144B in which a policy in the case of using a geospace as a reference, and a network space as a reference And a policy (network space) column 144C in which a policy is described.
 例えば、ネットワーク空間を基準としてクラスタリングを行う場合には、図5のポリシー(ネットワーク空間)欄144Cの列を参照すると、ノード20は、第1層ではネットワーク距離が「100」以内であるノード20とクラスタリング(クラスタ化)され、第2層ではネットワーク距離が「20」以内であるノード20とクラスタ化されることが示されている。なお、図5のポリシー(ネットワーク空間)欄144Cに記載されたポリシーに従った場合に、複数のポリシーを満足することによって複数のクラスタで重複するノードが発生することが考えられるが、これは後述する重複ノードの非重複化処理(ステップS106)によって対処される。 For example, when clustering is performed using the network space as a reference, referring to the column of the policy (network space) column 144C in FIG. 5, the node 20 is connected to the node 20 whose network distance is within “100” in the first layer. It is clustered (clustered), and it is shown that the second layer is clustered with a node 20 whose network distance is within “20”. Note that, when the policy described in the policy (network space) column 144C in FIG. 5 is followed, it is conceivable that overlapping nodes occur in a plurality of clusters when a plurality of policies are satisfied. This is dealt with by the de-duplication processing (step S106) of the overlapping node.
 また例えば、地理空間を基準としてクラスタリングを行う場合には、図5のポリシー(地理空間)欄144Bの列を参照すると、ノード20は、第1層では県という領域によってクラスタ化され、第2層では市区町村という領域によってクラスタ化されることが示されている。ここで、第2層のポリシー(地理空間)によれば、単純に市区町村という領域でクラスタ化するだけでなく、「但し隣接する市区町村を含める」及び「但し東京都23区に隣接する市区町村においては23区を含める」といったように、重複領域を許可するポリシーを設定可能なことが分かる。このような重複領域の設定は、例えば、東京都23区に隣接する市区町村に居住し、頻繁に東京都23区を訪問するユーザを考慮した場合に、ユーザの居住する市区町村に存在するノード20だけをクラスタ化するよりも、ユーザが頻繁に訪問する東京都23区に存在するノード20を含めてクラスタ化した方が、ユーザにとっての利便性を高めることができる、といった効果を実現するために行われる。 Further, for example, when clustering is performed based on the geospace, referring to the column of the policy (geospace) column 144B in FIG. 5, the nodes 20 are clustered by the region of the prefecture in the first layer, and the second layer Shows that it is clustered by the area of municipalities. Here, according to the policy (geographical space) of the second layer, it is not only clustered in the area of municipalities, but “but include adjacent municipalities” and “but adjacent to Tokyo 23 wards. It can be seen that a policy permitting overlapping areas can be set, such as “include 23 wards in the municipality to do”. Such an overlap area setting exists in a municipality where the user resides when considering a user who lives in a municipality adjacent to the 23 wards of Tokyo and frequently visits the 23 wards of Tokyo. It is possible to improve the convenience for the user by clustering the nodes 20 in the 23 wards of Tokyo where the user visits frequently rather than clustering only the nodes 20 To be done.
 実際にクラスタリングの対象となるノード20を判定する方法の一例としては、以下のような方法がある。まず、メトリック管理テーブル141の位置情報欄141Gに、各ノード20A~20Mの地理空間上の位置座標を格納する。また、構成情報作成部112は、コアノード10内に、県又は市区町村等に対応する矩形領域の座標情報が格納された固定領域情報テーブルを参照可能とする。図6は、固定領域情報テーブルの一例を示すテーブルである。図6に示す固定領域情報テーブル145は、都道府県名が記載される県名欄145Aと、対応する矩形領域の座標情報が記載される矩形領域欄145Bとを有して構成され、都道府県ごとの矩形領域が規定されている。同様に、市区町村に応じた矩形領域が規定された固定領域情報テーブルが用意されてもよい。なお、固定領域情報テーブル145は、管理者や自動処理によるデータ入力によって作成されてもよい。具体的には例えば図3に示した管理者サービス設定画面143のポリシー階層設定欄143Cでポリシーを設定するネットワーク階層を設定し、ポリシー内容設定欄143Dでポリシーを選択して設定する。 As an example of a method for determining the node 20 that is actually a clustering target, there is the following method. First, the position coordinates in the geographic space of each of the nodes 20A to 20M are stored in the position information column 141G of the metric management table 141. In addition, the configuration information creation unit 112 can refer to a fixed area information table in which coordinate information of a rectangular area corresponding to a prefecture or a city is stored in the core node 10. FIG. 6 is a table showing an example of the fixed area information table. The fixed area information table 145 shown in FIG. 6 includes a prefecture name field 145A in which the prefecture name is described and a rectangular area field 145B in which the coordinate information of the corresponding rectangular area is described. A rectangular area is defined. Similarly, a fixed area information table in which a rectangular area corresponding to a municipality is defined may be prepared. The fixed area information table 145 may be created by data input by an administrator or automatic processing. Specifically, for example, the network hierarchy for setting the policy is set in the policy hierarchy setting field 143C of the administrator service setting screen 143 shown in FIG. 3, and the policy is selected and set in the policy content setting field 143D.
 このような場合に、構成情報作成部112は、各ノード20A~20Mについて、メトリック管理テーブル141の位置情報欄141Gに格納された位置座標を参照して、各ノード20が固定領域情報テーブル145に保持された「県」の矩形領域に属するか否かを判定することにより、第1層のポリシーを満足するか否かを判定してクラスタリングの対象となるノード20を判定することができる。なお、対象の基準となる県や市区町村等は、管理者によって直接設定されてもよいし、または、管理者によって入力される住所情報から所定の範囲の矩形領域が導出されて設定されるようにしてもよい。特に、各ノード20A~20Mの位置座標を、ポリシーで規定する地理空間上の矩形領域によりR木として管理すれば、R木の性質上、O(logN)の計算量でクラスタリングを完了することができる。 In such a case, the configuration information creation unit 112 refers to the position coordinates stored in the position information column 141G of the metric management table 141 for each of the nodes 20A to 20M, and each node 20 enters the fixed area information table 145. By determining whether or not it belongs to the retained “prefecture” rectangular area, it is possible to determine whether or not the first layer policy is satisfied and to determine the node 20 to be clustered. The target prefecture or city may be set directly by the administrator, or a predetermined range of rectangular area is derived and set from the address information input by the administrator. You may do it. In particular, if the position coordinates of each of the nodes 20A to 20M are managed as an R-tree by a rectangular area in the geographic space specified by the policy, clustering can be completed with an O (logN) calculation amount due to the nature of the R-tree. it can.
 なお、クラスタリングのポリシーは、図3に示した管理者サービス設定画面143から管理者が直接設定するようにしてもよい。このような場合には、管理者が、管理者サービス設定画面143のポリシー階層設定欄143Cでポリシーを設定する階層を設定し、ポリシー内容設定欄143Dにポリシーの具体的な内容(例えば、地理空間上で区分する領域やネットワーク空間上で区分する距離等)を設定することにより、図5に示したポリシーテーブル144と同様の設定を実現することができる。また、図3に示した管理者サービス設定画面143で、メトリック設定欄143Aにノード20の住所情報が記載されているような場合には、図6を参照して住所情報からノード20の座標情報を導出することができる。 Note that the clustering policy may be set directly by the administrator from the administrator service setting screen 143 shown in FIG. In such a case, the administrator sets a hierarchy for setting the policy in the policy hierarchy setting field 143C of the administrator service setting screen 143, and the specific contents of the policy (for example, geospatial space) are set in the policy content setting field 143D. By setting the area to be divided above and the distance to be divided on the network space, the same setting as that of the policy table 144 shown in FIG. 5 can be realized. Further, when the address information of the node 20 is described in the metric setting field 143A on the administrator service setting screen 143 shown in FIG. 3, the coordinate information of the node 20 is obtained from the address information with reference to FIG. Can be derived.
 さらに、管理者サービス設定画面143では、管理者がノード重複設定欄143Eにハッシュリングネットワーク間でノード20の重複を許可するか否かを設定できるようにしてもよい。図7は、重複する矩形領域の一例を示す説明図である。図7では、A区にノード[1]~[4]が、B区にノード[5]が、C区にノード[6]が、D区にノード[7]が存在している。破線で示された「A区クラスタ」~「D区クラスタ」は、それぞれポリシーによって設定された矩形領域とする。ここで、ノード[1]~[7]に重複が許可されていない場合には、各ノード[1]~[7]は、上述した各区に割当てられる。一方、ノード[1]~[7]に重複が許可される場合には、1つのノードが複数のクラスタに重複することが許可される。具体的には例えば、ノード[3]は、A区クラスと及びB区クラスタに重複して割当てられ、ノード[6]は、C区クラスタ及びD区クラスタに重複して割当てられる。このような重複を許可することによって、あるポリシーによって矩形とされるハッシュリングネットワークに含まれるノード20を、別のポリシーによって矩形とされる別のハッシュリングネットワークに重複して含めることが可能になる。 Furthermore, on the administrator service setting screen 143, the administrator may be able to set in the node duplication setting field 143E whether or not to permit duplication of the nodes 20 between the hash ring networks. FIG. 7 is an explanatory diagram illustrating an example of overlapping rectangular areas. In FIG. 7, nodes [1] to [4] exist in the A ward, nodes [5] in the B ward, nodes [6] in the C ward, and nodes [7] in the D ward. “A ward cluster” to “D ward cluster” indicated by broken lines are rectangular areas set by the policy. Here, if the nodes [1] to [7] are not permitted to be duplicated, the nodes [1] to [7] are assigned to the above-mentioned respective sections. On the other hand, when the nodes [1] to [7] are permitted to be duplicated, one node is permitted to be duplicated in a plurality of clusters. Specifically, for example, the node [3] is assigned to the A ward class and the B ward cluster in an overlapping manner, and the node [6] is assigned to the C ward cluster and the D ward cluster in an overlapping manner. By allowing such duplication, the node 20 included in the hash ring network that is rectangular according to one policy can be included in another hash ring network that is rectangular according to another policy. .
 なお、本実施の形態の分散データ管理システム1において構築される階層型ハッシュリングネットワークでは、ポリシーテーブル144に、地理空間によるクラスタリングとネットワーク空間によるクラスタリングとを同時に指定してもよい。すなわち例えば、ポリシーテーブルに、第1層は地理空間によりクラスタリングするポリシーが記載され、第2層はネットワーク空間によりクラスタリングするポリシーが記載されてもよい。また、ポリシーテーブルに記載されるポリシーは、地理空間によるポリシーとネットワーク空間によるポリシーとの両方が満足されることであってもよいが、このように記載されたポリシーテーブルは、図5のポリシーテーブル144のように、地理空間によるポリシーとネットワーク空間によるポリシーとが分けて記載された場合と同様の効果しか期待できず、ポリシーの記載が複雑になるだけと想定される。すなわち、第1層に「東京都かつネットワーク距離が100以内」というポリシーを設定することと、第1層に「東京都」、第2層に「ネットワーク距離が100以内」というポリシーを設定することとは、オーバレイネットワーク上では同じ効果が得られる。 Note that, in the hierarchical hash ring network constructed in the distributed data management system 1 of the present embodiment, clustering by geographic space and clustering by network space may be simultaneously specified in the policy table 144. That is, for example, the policy table may describe a policy for clustering by geographic space in the first layer and a policy for clustering by network space in the second layer. Further, the policy described in the policy table may be that both the policy by the geo space and the policy by the network space are satisfied. The policy table described in this way is the policy table of FIG. As in 144, it can be expected that only the same effect as the case where the policy based on the geographical space and the policy based on the network space are separately described, and the description of the policy is only complicated. That is, set the policy “Tokyo and network distance is within 100” in the first layer, and set the policy “Tokyo” in the first layer and “network distance is within 100” in the second layer. Has the same effect on an overlay network.
(1-2-3-2)階層間の関連付け
 ステップS105では、構成情報作成部112は、ステップS104で作成された近傍ネットワーク内の複数の階層について、全階層を貫く関連ラインをノード数の本数だけ用意し、各ノード20に対応して階層間のハッシュリングネットワークを関連付ける。関連ラインはノード20A~20Mに対応して決定されるので、ノード20A~20Mを全て含む第0層ネットワーク、及び、ノード20A~20Mが自身だけを含む第3層ネットワークについては、確実に関連付けが行われる。また、第1層及び第2層のネットワークについても、対応するノード20が含まれるハッシュリングネットワークが関連付けられる。
(1-2-3-2) Association between hierarchies In step S105, the configuration information creation unit 112 sets the number of nodes of related lines that pass through all hierarchies for a plurality of hierarchies in the neighboring network created in step S104. And a hash ring network between hierarchies is associated with each node 20. Since the association line is determined corresponding to the nodes 20A to 20M, the association is surely made for the 0th layer network including all of the nodes 20A to 20M and the 3rd layer network including only the nodes 20A to 20M. Done. In addition, a hash ring network including the corresponding node 20 is also associated with the first layer and second layer networks.
 例えば、ノード20Aが、第3層ネットワーク「R0000」、第2層ネットワーク「R000」、第1層ネットワーク「R00」、及び第0層ネットワーク「R0」に含まれている場合に、ノード20Aに対応する関連ラインAは、「R0000-R000-R00-R0」で示される。なお、ノード20Aが、同一階層において複数のハッシュリングネットワークに重複する場合には、関連ラインAには、割当てられる全てのハッシュリングネットワークが関連付けられる。具体的には例えば、ノード20Aが第2層ネットワーク「R000」だけでなく第2層ネットワーク「R001」にも含まれるとすれば、関連ラインAは、「R0000-R000,R001-R00-R0」のように示される。 For example, when the node 20A is included in the third layer network “R0000”, the second layer network “R000”, the first layer network “R00”, and the zeroth layer network “R0”, the node 20A corresponds to the node 20A The related line A is indicated by “R0000-R000-R00-R0”. In addition, when the node 20A overlaps with a plurality of hash ring networks in the same hierarchy, all the hash ring networks to be allocated are associated with the related line A. Specifically, for example, if the node 20A is included not only in the second layer network “R000” but also in the second layer network “R001”, the related line A is “R0000-R000, R001-R00-R0”. As shown.
(1-2-3-3)各ノードにおける許容最下層の導出
 ステップS106では、構成情報作成部112は、メトリックテーブル141を参照し、各ノード20について、存在を許容する近傍ネットワークの最下層(許容最下層)を決定し、近傍ネットワークのどの階層に含まれるかを決定する。なお、ステップS106における許容最下層の決定では、最下層ネットワーク(本説明では第3層ネットワークに相当)は対象とせず、最下層ネットワークの1層上からを対象とする。
(1-2-3-3) Derivation of Allowable Lowermost Layer in Each Node In step S106, the configuration information creating unit 112 refers to the metric table 141, and for each node 20, the lowest layer of the neighboring network that is allowed to exist ( The lowest acceptable layer) is determined, and which layer of the neighboring network is included is determined. In the determination of the allowable lowest layer in step S106, the lowest layer network (corresponding to the third layer network in this description) is not the target, but the first layer of the lowest layer network is the target.
 ここで、分散データ管理システム1では、前述したように各階層に少なくとも1つのレプリケーションデータが作成される。また、一般に、地理空間又はネットワーク空間にかかわらず空間近傍性を考慮したサブネットワークを構築する場合に、下位層でサブネットワークを構成するノード数は、上位層のノード数に比べて少なくなる。従って、サブネットワークに組込まれる階層の数が多いほど、また、下位側の層である程、レプリケーションの対象ノードとなる可能性が高い。そして仮に、あるノード20Aの計算リソースの性能が、他のノード20B~20Nよりも低い場合に、ノード20Aが全階層に組込まれてしまうと、他のノード20B~20Nよりも相対的に負荷が集中してしまう問題がある。そこで、ステップS106では、計算リソースの性能が低いノード20Aは、なるべく下位層のハッシュリングネットワークに組込まれないようにすることが好ましい。 Here, in the distributed data management system 1, at least one replication data is created in each layer as described above. In general, when constructing a sub-network that considers spatial proximity regardless of geographic space or network space, the number of nodes constituting the sub-network in the lower layer is smaller than the number of nodes in the upper layer. Therefore, as the number of hierarchies incorporated into the sub-network increases, the lower the layer, the higher the possibility of becoming a replication target node. If the performance of a computing resource of a certain node 20A is lower than that of the other nodes 20B to 20N, if the node 20A is incorporated in all layers, the load is relatively higher than that of the other nodes 20B to 20N. There is a problem of concentration. Therefore, in step S106, it is preferable that the node 20A having a low calculation resource performance is not incorporated in the lower-layer hash ring network as much as possible.
 このような観点から、本実施の形態では、ノード20の許容最下層を決定する場合に、低性能のノード20が下位層に含まれないように、換言すれば、上位層に低性能のノード20を組込むようにする。上位層に低性能のノード20を含めるための方法は特に限定しないが、以下に方法例を説明する。 From this point of view, in this embodiment, when determining the allowable lowest layer of the node 20, the low-performance node 20 is not included in the lower layer, in other words, the lower-performance node is included in the upper layer. 20 is incorporated. A method for including the low-performance node 20 in the upper layer is not particularly limited, but a method example will be described below.
 まず、メトリック管理テーブル141を参照し、ノード20のインデックス(例えばノード欄141Aの記載内容に相当)が「i」で、当該ノードのメトリックのインデックス(例えばCPU欄141C~ネットワーク欄141Fの記載内容に相当)が「j」であるとき、ノード20とそのメトリックスとの組をx[i,j]で表わす。x[i,j]には、メトリック管理テーブル141に記載されたメトリックの値をそのまま用いてもよいし、別途正規化を行った値を用いてもよい。このようなx[i,j]を用いると、ノードiの許容最下位層を導出するLiは、次式
Figure JPOXMLDOC01-appb-M000001
のように、又は次式
Figure JPOXMLDOC01-appb-M000002
のように決定できる。
First, referring to the metric management table 141, the index of the node 20 (for example, corresponding to the description contents of the node column 141A) is “i”, and the metric index of the node (for example, the description contents of the CPU column 141C to the network column 141F) (Equivalent) is “j”, a set of the node 20 and its metrics is represented by x [i, j]. For x [i, j], a metric value described in the metric management table 141 may be used as it is, or a separately normalized value may be used. Using such x [i, j], Li for deriving the allowable lowest layer of node i is given by
Figure JPOXMLDOC01-appb-M000001
Or
Figure JPOXMLDOC01-appb-M000002
Can be determined as follows.
 式(1)において、Sはノードiのメトリックの総数を示す。式(1)は、ノードiにおける全てのメトリックの対数を取得し、その最小値をLiとするものである。式(1)を利用する場合には、算出されたLi、又はLiを正規化した値を、許容最下層の値とする。 In equation (1), S indicates the total number of metrics of node i. Expression (1) obtains the logarithm of all the metrics in the node i and sets the minimum value to Li. When formula (1) is used, the calculated Li or a value obtained by normalizing Li is set as the allowable lowest layer value.
 式(2)において、mjはメトリックjの全ノードの平均値を示し、σjはメトリックjの標準偏差を示す。式(2)は、ノードiのメトリックjに関して、標準偏差との比を導出する式であり、式(2)によって得られるLiを用いて許容最下層を決定する。例えば、Liが負数であれば当該ノードiを第1階層のみに割当てるようにし、Liが0以上であれば当該ノードiを第1階層及び第2階層に割当てるようにする。 In equation (2), mj represents the average value of all nodes of metric j, and σj represents the standard deviation of metric j. Expression (2) is an expression for deriving a ratio with the standard deviation with respect to the metric j of the node i, and the allowable lowest layer is determined using Li obtained by Expression (2). For example, if Li is a negative number, the node i is assigned only to the first hierarchy, and if Li is 0 or more, the node i is assigned to the first hierarchy and the second hierarchy.
(1-2-3-4)近傍ネットワークの調整
 ステップS107~S108では、構成情報作成部112は、近傍ネットワーク内のノードの調整を、重複ノードの非重複化処理(ステップS107)及びハッシュ空間の調整(ステップS108)を行うことによって実施する。
(1-2-3-4) Neighboring network adjustment In steps S107 to S108, the configuration information creating unit 112 adjusts the nodes in the neighboring network by performing deduplication processing for duplicate nodes (step S107) and hash space. The adjustment is performed by performing the adjustment (step S108).
 まず、ステップS107で行われる重複ノードの非重複化処理について説明する。重複ノードの非重複化処理とは、ポリシーテーブル144に記載されたポリシーによってノード20の重複が許可される場合に生成され得る、同一階層において複数の近傍ネットワークに割当てられる重複ノードについて、構成情報作成部112が、重複ノードが重複を許可すべきノードであるかを評価し、重複を許可すべきでないと判定した場合には重複を解除する処理である。重複ノードが重複を許可すべきノードであるかの評価方法は特に限定しないが、以下に方法例を説明する。 First, the duplicate node deduplication process performed in step S107 will be described. Duplicate node deduplication processing refers to creation of configuration information for duplicate nodes assigned to a plurality of neighboring networks in the same hierarchy, which can be generated when duplication of the node 20 is permitted by the policy described in the policy table 144 This is a process for evaluating whether the duplicate node is a node where duplication should be permitted, and canceling duplication when it is determined that duplication should not be permitted. A method for evaluating whether or not an overlapping node is a node that should be allowed to overlap is not particularly limited, but a method example will be described below.
 例えば、構成情報作成部112は、重複ノードであるノードiのメトリックjに対して、上述の式(2)を適用し、得られた値Liが、所定の閾値(例えば2)よりも大きい場合には重複を許可すると判定する。 For example, the configuration information creation unit 112 applies the above equation (2) to the metric j of the node i that is a duplicate node, and the obtained value Li is larger than a predetermined threshold (for example, 2). It is determined that duplication is permitted.
 また例えば、構成情報作成部112は、ノードiが3つ以上の近傍ネットワークに重複するノードである場合には、ノードiのメトリックjに対して、上述の式(2)を適用し、得られた値Liに応じて重複を許可するネットワーク数を決定してもよい。具体的には例えば、得られた値Liが3以上であれば3以上の近傍ネットワークでの重複を許可し、2以上3未満であれば2つの近傍ネットワークでの重複を許可し、2未満であれば重複を許可しない、とすればよい。 Further, for example, when the node i is a node overlapping with three or more neighboring networks, the configuration information creation unit 112 is obtained by applying the above equation (2) to the metric j of the node i. The number of networks that allow duplication may be determined according to the value Li. Specifically, for example, if the obtained value Li is 3 or more, duplication in 3 or more neighboring networks is permitted, and if it is 2 or more and less than 3, duplication in 2 neighboring networks is permitted. If it exists, it is sufficient that duplication is not permitted.
 なお、重複ノードに重複を許可すべきかを評価する上述の処理の結果、重複が許可されなかったノード20は、何れか1つの近傍ネットワークに組込まれる。重複が許可されなかったノード20の割当先の近傍ネットワークを決定する方法の例を以下に説明する。 Note that, as a result of the above-described processing for evaluating whether or not duplication should be permitted for duplicate nodes, the node 20 that is not permitted to duplicate is incorporated into any one of the neighboring networks. An example of a method for determining a neighboring network to which the node 20 to which duplication is not permitted is determined will be described below.
 一例としては、ステップS104におけるクラスタリングの結果2つの近傍ネットワークに重複していたノード20に対して重複が許可されなかった場合、構成情報作成部112は、重複していた2つの近傍ネットワークのうち、近傍ネットワークの構成ノード数が少ない方の近傍ネットワークに当該ノードを割当てる。 As an example, when the duplication is not permitted for the node 20 that has been duplicated in the two neighboring networks as a result of the clustering in step S104, the configuration information creation unit 112, among the two neighboring networks that have been duplicated, The node is assigned to a neighboring network having a smaller number of nodes constituting the neighboring network.
 また別の一例としては、構成情報作成部112は、2つの近傍ネットワークのそれぞれから当該ノードを削除する場合に、ハッシュ空間における当該ノードの1つ前に位置するノードから1つ後に位置するノードまでの距離に関して、2つの近傍ネットワークそれぞれのハッシュ空間におけるノード間距離の平均を算出し、算出したノード間距離の平均に対する偏りが大きくなる方の近傍ネットワークに、当該ノードを割当てる。 As another example, when deleting the node from each of the two neighboring networks, the configuration information creating unit 112 extends from the node located immediately before the node in the hash space to the node located one after. The average of the distances between nodes in the hash space of each of the two neighboring networks is calculated, and the node is assigned to the neighboring network that is more biased with respect to the calculated average of the distances between the nodes.
 以上の2例は、2つの近傍ネットワークに重複するノード20について説明したが、3つ以上の近傍ネットワークに重複していたノード20に対して重複が許可されなかった場合にも、構成情報作成部112は、同様の処理によって、当該ノードの割当先の近傍ネットワークを決定することができる。 In the above two examples, the node 20 that overlaps with two neighboring networks has been described. However, the configuration information creation unit can also be used when duplication is not permitted for the node 20 that overlaps with three or more neighboring networks. 112 can determine the neighborhood network to which the node is assigned by the same process.
 次に、ステップS108で行われるハッシュ空間の調整について説明する。ハッシュ空間の調整とは、各近傍ネットワークについて、近傍ネットワークに含まれる全てのノード20に対して、ハッシュ空間におけるノード間の距離を導出し、ノード間距離の偏りに基づいて、当該近傍ネットワークに別の近傍ネットワークのノードを追加することによって、当該近傍ネットワークに対応するハッシュ空間を調整する処理である。ハッシュ空間におけるノード間の距離とは、あるノード(スタートノード)からスタートノードの1つ後に位置するノード(エンドノード)までの距離を意味する。具体的には、構成情報作成部112は、近傍ネットワークに含まれる全てのノード20に対してハッシュ空間におけるノード間の距離を導出し、ノード間距離の偏り(例えば標準偏差を利用する)が所定の閾値以上であれば、当該スタートノード及び当該エンドノードのハッシュ値を取得する。そして、構成情報作成部112は、上位の近傍ネットワークに含まれるノードであって、そのハッシュ値が、上記取得したスタートノードのハッシュ値とエンドノードのハッシュ値との間にあるノードを探索し、該当する上位近傍ネットワークのノードを、ノード間の距離を導出した近傍ネットワークに追加して組込む。なお、当該近傍ネットワークに追加して組込むノードの探索対象は、例えば、当該近傍ネットワークに隣接する同一階層の近傍ネットワークに含まれるノードを対象としてもよいが、ステップS107で説明した重複ノードの非重複化処理の結果を無効にしてしまう可能性があることから、上位の近傍ネットワークに含まれるノードから探索したほうが好ましい。 Next, the adjustment of the hash space performed in step S108 will be described. The adjustment of the hash space means that for each neighboring network, the distance between the nodes in the hash space is derived for all the nodes 20 included in the neighboring network, and is divided into the neighboring networks based on the deviation of the distance between the nodes. This is a process of adjusting the hash space corresponding to the neighboring network by adding a node of the neighboring network. The distance between nodes in the hash space means a distance from a certain node (start node) to a node (end node) located immediately after the start node. Specifically, the configuration information creation unit 112 derives the distance between the nodes in the hash space for all the nodes 20 included in the neighboring network, and the deviation of the distance between the nodes (for example, using the standard deviation) is predetermined. If it is equal to or greater than the threshold value, the hash values of the start node and the end node are acquired. Then, the configuration information creation unit 112 searches for a node that is included in the upper neighboring network, and whose hash value is between the acquired hash value of the start node and the hash value of the end node, The node of the corresponding upper neighbor network is added and incorporated into the neighbor network from which the distance between the nodes is derived. Note that the search target of the node to be additionally incorporated into the neighboring network may be, for example, a node included in a neighboring network in the same hierarchy adjacent to the neighboring network, but the non-overlapping of the overlapping nodes described in step S107. It is preferable to search from the nodes included in the upper neighboring network because the result of the conversion processing may be invalidated.
 ステップS109~S110では、構成情報作成部112は、同一階層の近傍ネットワークによって形成されるハッシュリングネットワーク内のノード数を確認し(ステップS109)、必要に応じて近傍ネットワークの調整値を修正する(ステップS110)。 In steps S109 to S110, the configuration information creation unit 112 confirms the number of nodes in the hash ring network formed by neighboring networks in the same hierarchy (step S109), and corrects the adjustment value of the neighboring network as necessary (step S109). Step S110).
 具体的には、ステップS109において、構成情報作成部112は、ステップS101~S108の処理によって構成された階層型ハッシュリングネットワークの全ての階層に対して、階層ごとに、ある階層のハッシュリングネットワーク(上位層ハッシュリングネットワーク)におけるノード数の総数が、ステップS105で決定された関連ラインによって関連付けられた1階層下の下位層ハッシュリングネットワークにおけるノード数の総数よりも、少なくとも2つ多いか判定する。ここで、少なくとも2つのノード数の差を判定する理由は、データレプリケーションを確実に実施するために必要となる1つ分のノードと、ノード削除に伴って発生するレプリケーションデータの維持のために必要となる1つ分のノードとを担保するためである。データレプリケーションに関する処理については、図11及び図12を参照しながら後述し、ノードの削除に関する処理については、図14を参照しながら後述する。 Specifically, in step S109, the configuration information creation unit 112 performs a certain level of hash ring network (for each layer) on all layers of the hierarchical hash ring network configured by the processes in steps S101 to S108. It is determined whether the total number of nodes in the upper layer hash ring network) is at least two more than the total number of nodes in the lower layer hash ring network one layer below that is associated by the associated line determined in step S105. Here, the reason for determining the difference between the number of at least two nodes is to maintain one replication node that is necessary for reliably performing data replication and the replication data that occurs when the node is deleted. This is to secure one node as follows. Processing related to data replication will be described later with reference to FIGS. 11 and 12, and processing related to node deletion will be described later with reference to FIG.
 ステップS109で上位層ハッシュリングネットワークにおけるノード数の総数が、下位層ハッシュリングネットワークにおけるノード数の総数に対して1つ多い又は同数以下である場合には(ステップS109のNO)、構成情報作成部112は、ステップS106及びステップS107における近傍ネットワークの調整で用いた調整値を修正し(ステップS110)、ステップS104の処理に戻り、再び近傍ネットワークを構築する。ステップS110において調整値を修正するとは、具体的には、ステップS106及びステップS107で用いた閾値を低くすることによって、閾値による制限を緩くする処理に相当する。ステップS109で上位層ハッシュリングネットワークにおけるノード数の総数が下位層ハッシュリングネットワークにおけるノード数の総数よりも2以上多い場合には(ステップS109のYES)、ステップS111に移行する。 If the total number of nodes in the upper layer hash ring network is one more or less than the total number of nodes in the lower layer hash ring network in step S109 (NO in step S109), the configuration information creation unit 112 corrects the adjustment value used in the adjustment of the neighborhood network in step S106 and step S107 (step S110), returns to the process of step S104, and constructs the neighborhood network again. Specifically, the correction of the adjustment value in step S110 corresponds to a process of loosening the restriction by the threshold value by lowering the threshold value used in step S106 and step S107. When the total number of nodes in the upper layer hash ring network is 2 or more than the total number of nodes in the lower layer hash ring network in step S109 (YES in step S109), the process proceeds to step S111.
(1-2-4)階層型ハッシュリングネットワークの構造
 ステップS101~S110の処理によって、構成情報作成部112は、複数のノード20が参加する階層型ハッシュリングネットワークを生成する。
(1-2-4) Structure of Hierarchical Hash Ring Network Through the processing in steps S101 to S110, the configuration information creation unit 112 generates a hierarchical hash ring network in which a plurality of nodes 20 participate.
 図8は、図4に示す処理によって生成された階層型ハッシュリングネットワークの構成例を示す概略図である。図8では、階層型ハッシュリングネットワークに組込まれるノード20A~20Mを、簡略のためにそれぞれ「A」~「M」で記載している。以下、他の説明部分でも、ノード20A~20Mを簡略して示す場合には、簡略のために「ノードA」~「ノードM」や「A」~「M」と記載する場合がある。 FIG. 8 is a schematic diagram illustrating a configuration example of a hierarchical hash ring network generated by the process illustrated in FIG. In FIG. 8, the nodes 20A to 20M incorporated in the hierarchical hash ring network are indicated by “A” to “M” for simplicity. In the following description, when the nodes 20A to 20M are simply shown, other nodes may be referred to as “node A” to “node M” or “A” to “M” for simplicity.
 図9は、図8に示す階層型ハッシュリングネットワークにおけるネットワーク構成ノード情報を示すテーブル例である。図9に示すネットワーク構成ノード情報146には、図8に示す階層型ハッシュリングネットワークに組込まれる各ノードに関する情報が格納されている。また、図8に示される階層型ハッシュリングネットワークは、図9に示したノードA~Mによって構成される。ネットワーク構成ノード情報146は、ノード欄146A、ノードハッシュ欄146B、許容最下層ネットワーク欄146C、近傍ノード欄146D、及びアドレス欄146Eを有して構成される。 FIG. 9 is a table example showing network configuration node information in the hierarchical hash ring network shown in FIG. In the network configuration node information 146 shown in FIG. 9, information about each node incorporated in the hierarchical hash ring network shown in FIG. 8 is stored. Further, the hierarchical hash ring network shown in FIG. 8 is configured by the nodes A to M shown in FIG. The network configuration node information 146 includes a node column 146A, a node hash column 146B, an allowable lowest layer network column 146C, a neighboring node column 146D, and an address column 146E.
 ノード欄146Aには、階層型ハッシュリングネットワークに組込まれるノード名が記載され、図9では、ノードA~Mに対応して「A」~「M」が記載されている。ノードハッシュ欄146Bには、ノードA~Mに対応するハッシュ値(ノードハッシュ値)が記載される。図9では、ノードA~Mがそれぞれ持つユニークなID(例えば「a」~「m」)に対して、ハッシュ関数の1つであるMD5を適用して得られるMD5値が記載されている。 In the node column 146A, node names incorporated in the hierarchical hash ring network are described. In FIG. 9, “A” to “M” are described corresponding to the nodes A to M. In the node hash column 146B, hash values (node hash values) corresponding to the nodes A to M are described. In FIG. 9, MD5 values obtained by applying MD5, which is one of hash functions, to unique IDs (for example, “a” to “m”) possessed by nodes A to M, respectively, are described.
 許容最下層ネットワーク欄146Cには、図4のステップS106で決定されたノードごとの許容最下層が記載される。図9では、許容最下層ネットワーク欄146Cには、ノードFの場合だけ許容最下層「1」が記載され、その他のノードA~E,G~Mの場合には許容最下層「2」が記載されている。従って、図8において、ノードFは、第1階層以上のネットワークに組込まれるが、第2階層のネットワークには組込まれない。また、その他のノードA~E,G~Mは、第1階層のネットワーク及び第2階層のネットワークの両方に組込まれる。 In the allowable lowest layer network column 146C, the allowable lowest layer for each node determined in step S106 of FIG. 4 is described. In FIG. 9, the allowable lowest layer network column 146C describes the allowable lowest layer “1” only for the node F, and the allowable lowest layer “2” for the other nodes A to E and G to M. Has been. Therefore, in FIG. 8, the node F is incorporated in the network of the first hierarchy or higher, but is not incorporated in the network of the second hierarchy. The other nodes A to E and G to M are incorporated in both the first layer network and the second layer network.
 近傍ノード欄146Dには、ノード欄146Aに記載されたノードについて、図4のステップS104~S110の処理でクラスタリングされた近傍ノードが記載される。図8では、近傍ノード欄146Dに記載された近傍ノードの組合せによって各ネットワークが生成されていることが分かる。アドレス欄146Eには、ノードA~Mのアドレス(例えばIPアドレス)が記載される。なお、ネットワーク構成ノード情報146は、アドレス欄146Eの代わりに、ホスト名が記載される欄を有する構成であってもよく、その他のネットワーク上の位置情報が記載される欄を有する構成であってもよい。 In the neighborhood node column 146D, the neighborhood nodes clustered in the processing of steps S104 to S110 in FIG. 4 for the nodes described in the node column 146A are described. In FIG. 8, it can be seen that each network is generated by a combination of neighboring nodes described in the neighboring node column 146D. In the address column 146E, addresses (for example, IP addresses) of the nodes A to M are described. The network configuration node information 146 may have a configuration in which a host name is described instead of the address column 146E, or a configuration in which other network location information is described. Also good.
 以下では、図9を参照しながら、図8に示した階層型ハッシュリングネットワークの構造について説明する。 Hereinafter, the structure of the hierarchical hash ring network shown in FIG. 8 will be described with reference to FIG.
 図8に示す階層型ハッシュリングネットワークの第0層には、全ノード(ノードA~M)を含む1つのネットワーク「R0」が生成されている。リング状のネットワーク「R0」において、ノードA~Mは、ネットワーク構成ノード情報146のノードハッシュ欄146Bに記載されたそれぞれのノードハッシュ値に従って、順に配置される。なお、以下に説明する他のリング状のネットワークにおいても、各ノードA~Mは、ノードハッシュ欄146Bに記載されたノードハッシュ値に従って配置される。 In the 0th layer of the hierarchical hash ring network shown in FIG. 8, one network “R0” including all nodes (nodes A to M) is generated. In the ring network “R0”, the nodes A to M are sequentially arranged according to the respective node hash values described in the node hash column 146B of the network configuration node information 146. In other ring networks described below, the nodes A to M are arranged according to the node hash value described in the node hash column 146B.
 図8に示す階層型ハッシュリングネットワークの第1層には、図5のポリシーテーブル144に記載された第1層のポリシーに基づいて、図4のステップS104でクラスタリングされたノード群による近傍ネットワーク「R00」及び「R10」が生成されている。ネットワーク「R00」は、ノードA~Gによって構成され、ネットワーク「R10」は、ノードC,H~Mによって構成される。ノードCは、ネットワーク「R00」,「R10」に重複するノードとなっている。なお、図5に記載された第1層のクラスタリング条件のポリシーは、第2層のクラスタリング条件のポリシーよりも広範囲(遠距離)であり、特に地理的空間上の広域な近傍領域を基準とすることから、第1層の各ネットワーク「R00」,「R10」は、遠距離近傍を含む近傍ネットワークであり、別の表現によれば、広域な地理空間上の近傍領域により構成される近傍ネットワークである。 The first layer of the hierarchical hash ring network shown in FIG. 8 includes a neighboring network “node group” clustered in step S104 of FIG. 4 based on the policy of the first layer described in the policy table 144 of FIG. R00 "and" R10 "are generated. The network “R00” is composed of nodes A to G, and the network “R10” is composed of nodes C and HM. The node C is a node overlapping with the networks “R00” and “R10”. Note that the policy for the first layer clustering condition described in FIG. 5 is wider (distance) than the policy for the second layer clustering condition, and is particularly based on a wide neighborhood in a geographical space. Therefore, each of the networks “R00” and “R10” in the first layer is a neighborhood network including a long-distance neighborhood. is there.
 図8に示す階層型ハッシュリングネットワークの第2層には、図5のポリシーテーブル144に記載された第2層のポリシーに基づいて、図4のステップS104でクラスタリングされたノード群による近傍ネットワーク「R000」、「R001」、及び「R100」が生成されている。ネットワーク「R000」は、ノードA~Cによって構成され、ネットワーク「R001」は、ノードD,E,Gによって構成され、ネットワーク「R100」は、ノードC,H,K,Mによって構成される。なお、ノードD,I,J,Lは、ノードが低性能であった、又はポリシーテーブル144に記載された第2層のクラスタリング条件に適合しなかった等の理由から、第2層の何れのネットワークにも組込まれていない。また、図5に記載された第2層のクラスタリング条件のポリシーは、第1層のクラスタリング条件のポリシーよりも狭い範囲であり、特に地理的空間上の狭小な近傍領域を基準とすることから、第2層の各ネットワーク「R000」,「R001」,「R100」は、狭い地域の地理空間上の近傍領域により構成される近傍ネットワークである。 The second layer of the hierarchical hash ring network shown in FIG. 8 includes a neighboring network “by a group of nodes clustered in step S104 of FIG. 4 based on the policy of the second layer described in the policy table 144 of FIG. R000 "," R001 ", and" R100 "are generated. The network “R000” is configured by nodes A to C, the network “R001” is configured by nodes D, E, and G, and the network “R100” is configured by nodes C, H, K, and M. Note that the nodes D, I, J, and L may be any of the second layer because the node has low performance or does not conform to the second layer clustering condition described in the policy table 144. It is not integrated into the network. In addition, the second layer clustering condition policy described in FIG. 5 is narrower than the first layer clustering condition policy, and in particular, based on a narrow neighborhood in a geographical space, Each of the networks “R000”, “R001”, and “R100” in the second layer is a neighborhood network composed of neighborhood regions in a narrow geographic space.
 図8に示す階層型ハッシュリングネットワークの第3層(最下層)には、図4のステップS103で作成される、ノードA~Mについて自身のノードだけを含むハッシュリングネットワーク「R0000」~「R1101」が生成されている。 In the third layer (lowermost layer) of the hierarchical hash ring network shown in FIG. 8, the hash ring networks “R0000” to “R1101” created in step S103 of FIG. Is generated.
(1-2-5)階層型ハッシュリングネットワークの構成テーブルの配布
 構成情報作成部112は、ステップS101~S110の処理によって、上述したような階層型ネットワークを構築した後に、当該階層型ネットワークに含まれるノードの構成情報をテーブルに纏めた構成テーブルを生成する。そして、構成情報作成部112は、生成した構成テーブルを構成情報転送制御部113に渡し、構成情報転送制御部113が、ノードA~Mの各テーブル管理部214に、構成テーブルに基づくネットワーク構成情報を転送する(ステップS111)。
(1-2-5) Distribution of Configuration Table of Hierarchical Hash Ring Network The configuration information creation unit 112 constructs a hierarchical network as described above by the processing of steps S101 to S110, and then includes it in the hierarchical network. A configuration table in which configuration information of nodes to be collected is collected in a table is generated. Then, the configuration information creation unit 112 passes the generated configuration table to the configuration information transfer control unit 113, and the configuration information transfer control unit 113 sends the network configuration information based on the configuration table to each table management unit 214 of the nodes A to M. Is transferred (step S111).
 構成テーブルの構成内容及びテーブル項目は特に限定されないが、例えば、一般的な分散ハッシュテーブルで利用されるように、ハッシュリングネットワークにおいて、指定したノードの1つ前や1つ後ろに位置するノードのハッシュ値と指定したノードの宛先アドレス(例えばIPアドレスやホスト名等)とが記載されたテーブルを用いてもよい。 The configuration contents and table items of the configuration table are not particularly limited. For example, as used in a general distributed hash table, in a hash ring network, a node located immediately before or after a specified node You may use the table in which the hash value and the destination address (for example, IP address, host name, etc.) of the designated node are described.
 また、特に階層型ハッシュリングネットワークに含まれるノード20が少ない場合(例えばノード数が数万程度である場合)には、その後の処理で実際にネットワーク構成情報を参照してノード20を探索するときに要する時間が、当該探索のために割当てられる所定の要求時間よりも短くなることが考えられ、このような場合には、構成テーブルは、各ハッシュリングネットワークに含まれる全てのノード20のハッシュ値及びアドレスが記載されたテーブルであってもよい。 In particular, when the number of nodes 20 included in the hierarchical hash ring network is small (for example, when the number of nodes is about several tens of thousands), when the node 20 is actually searched by referring to the network configuration information in the subsequent processing. In such a case, the configuration table includes the hash values of all the nodes 20 included in each hash ring network. And a table in which addresses are described.
 そして、例えば構成情報作成部112が上述したような構成テーブルを作成した場合に、構成情報転送制御部113は、ノードA~Mの各テーブル管理部214に対して、ノードA~Mがそれぞれ必要とする部分のテーブルを元の構成テーブルから切り出してネットワーク構成情報を生成し、転送する。構成テーブルに対してノードA~Mがそれぞれ必要とする部分とは、当該ノード20の関連ラインに属する各階層のハッシュリングネットワークの構成情報に相当する。図8に示したノードAを例として具体的に説明すると、ノードAが含まれるハッシュリングネットワークは、「R0」、「R00」、「R000」、及び「R0000」であるので、構成情報転送制御部113は、当該ネットワークの構成テーブルのみを、ネットワーク構成情報としてノードAのテーブル管理部214に転送する。 For example, when the configuration information creation unit 112 creates the configuration table as described above, the configuration information transfer control unit 113 requires the nodes A to M for the table management units 214 of the nodes A to M, respectively. Is extracted from the original configuration table, and network configuration information is generated and transferred. The portions required by the nodes A to M in the configuration table correspond to the configuration information of the hash ring network of each layer belonging to the relevant line of the node 20. The node A shown in FIG. 8 will be specifically described as an example. Since the hash ring network including the node A is “R0”, “R00”, “R000”, and “R0000”, the configuration information transfer control is performed. The unit 113 transfers only the configuration table of the network to the table management unit 214 of the node A as network configuration information.
 図10は、ネットワーク構成情報の一例を示すテーブルである。図10に示すネットワーク構成情報147は、構成情報転送制御部113からノードAに転送されるネットワーク構成情報の一例である。ネットワーク構成情報147は、ハッシュリングネットワークの名前又はIDが記載されるネットワーク名欄147Aと、ハッシュリングネットワークに組込まれるノードに対応したノードハッシュ値が記載されるノードハッシュ欄147Bと、当該ノードのアドレスが記載されるアドレス欄147Cとを有して構成される。図10に示すネットワーク構成情報147には、ネットワーク「R0」,「R00」,「R000」,「R0000」に含まれるノードの構成情報だけが記載されていることから、階層型ハッシュリングネットワークにおいて、ノードAは、上記の各ネットワーク「R0」,「R00」,「R000」,「R0000」に所属していることが分かる。なお、ネットワーク構成情報147の元になる構成テーブルも、ネットワーク構成情報147と同様のテーブル項目を有して構成される。 FIG. 10 is a table showing an example of network configuration information. The network configuration information 147 illustrated in FIG. 10 is an example of network configuration information transferred from the configuration information transfer control unit 113 to the node A. The network configuration information 147 includes a network name column 147A in which the name or ID of the hash ring network is described, a node hash column 147B in which a node hash value corresponding to a node incorporated in the hash ring network is described, and the address of the node And an address column 147C in which is described. Since the network configuration information 147 shown in FIG. 10 describes only the configuration information of nodes included in the networks “R0”, “R00”, “R000”, and “R0000”, in the hierarchical hash ring network, It can be seen that the node A belongs to each of the networks “R0”, “R00”, “R000”, and “R0000”. Note that the configuration table that is the basis of the network configuration information 147 is also configured to have the same table items as the network configuration information 147.
 また、図8で第2層ネットワークに組込まれなかったノードLのように、自身が属さないネットワーク階層が存在するノード20に対しては、構成情報転送制御部113は、図4のステップS105で作成された関連ラインを参照して、当該ノード20が属するネットワーク階層だけを対象とし、当該ネットワーク階層内で当該ノード20が組込まれたハッシュリングネットワークに含まれるノードの構成情報を構成テーブルから切り出して当該ノード20のテーブル管理部214に転送すればよい。 In addition, for the node 20 having a network hierarchy to which it does not belong, such as the node L that is not incorporated in the second layer network in FIG. 8, the configuration information transfer control unit 113 performs step S105 in FIG. By referring to the created related line, only the network hierarchy to which the node 20 belongs is targeted, and the configuration information of the node included in the hash ring network in which the node 20 is incorporated in the network hierarchy is cut out from the configuration table. What is necessary is just to transfer to the table management part 214 of the said node 20.
(1-3)分散型データベースへのデータ書込み
 以下では、本実施の形態による分散データ管理システム1において、図8に示したような階層型ハッシュリングネットワークによる分散型データベースにデータを書込む方法について説明する。図11は、データ書込みの処理手順の一例を示すシーケンス図である。図11では、具体的な一例として、図9に示したネットワーク構成ノード情報146を有するノードによって生成される図8の階層型ハッシュリングネットワークを用い、ノードAに接続したユーザ端末(図示せず)から、データキー「q」を持つデータが書込まれる場合の処理を説明している。
(1-3) Data Writing to Distributed Database In the following, in the distributed data management system 1 according to the present embodiment, a method of writing data to a distributed database using a hierarchical hash ring network as shown in FIG. explain. FIG. 11 is a sequence diagram illustrating an example of a data write processing procedure. In FIG. 11, as a specific example, a user terminal (not shown) connected to node A using the hierarchical hash ring network of FIG. 8 generated by a node having network configuration node information 146 shown in FIG. The process when data having the data key “q” is written is described.
 ハッシュリングネットワークでは、当該ハッシュリングネットワークを構成するノードが、ノードのハッシュ値に基づいてリング状に整列される。当該ハッシュリングネットワークにデータを格納する場合には、データが有するデータキーのハッシュ値と各ノードのハッシュ値とが比較され、所定の決定規則に基づいて、当該データを格納する担当ノードが決定される。所定の決定規則は特に限定されず、例えばデータキーのハッシュ値の前方又は後方に位置するノードや、データキーのハッシュ値に最も近いノード等を、当該データを担当するノードとすることができる。本実施の形態で用いる階層型ハッシュリングネットワークでは、原則として、データキーのハッシュ値から最も近い後方に位置するノードを、当該データを担当するノードに決定する。 In the hash ring network, the nodes constituting the hash ring network are arranged in a ring shape based on the hash value of the node. When data is stored in the hash ring network, the hash value of the data key included in the data and the hash value of each node are compared, and the responsible node for storing the data is determined based on a predetermined determination rule. The The predetermined determination rule is not particularly limited. For example, a node positioned in front of or behind the hash value of the data key, a node closest to the hash value of the data key, or the like can be set as a node in charge of the data. In the hierarchical hash ring network used in the present embodiment, in principle, the node located at the rearmost position from the hash value of the data key is determined as the node in charge of the data.
 なお、データキー「q」に対するMD5によるハッシュ値(MD5値)は「7694f4a66316e53c8cdd9d9954bd611d」とする。ノードA~Mのそれぞれの構成は図1に示したノード20Aの構成と同様であり、各ノードA~Mのテーブル管理部133は、図10に示したネットワーク構成情報147と同等のネットワーク構成情報を有しているとする。 Note that the hash value (MD5 value) by MD5 for the data key “q” is “7694f4a66316e53c8cdd9d9954bd611d”. The configuration of each of the nodes A to M is the same as the configuration of the node 20A shown in FIG. 1, and the table management unit 133 of each node A to M has network configuration information equivalent to the network configuration information 147 shown in FIG. Suppose you have
(1-3-1)データ書込みリクエスト
 まず、図11に示したデータの書込み処理を説明する前に、ユーザ端末又はノード間でデータの書込みを依頼するときに送信されるデータ書込みリクエストについて説明する。図12は、データ書込みリクエストのフォーマット例を示す説明図である。図12に示すデータ書込みリクエスト148は、データ書込みがHTTP(Hypertext Transfer Protocol)のREST(Representational State Transfer)形式でリクエストされる場合のデータ書込みリクエストのフォーマット例であり、リクエスト種別欄148Aにデータ書込みリクエストの種別が記載され、リクエストフォーマット例欄148Bに当該データ書込みリクエストのフォーマット例が記載されている。
(1-3-1) Data Write Request First, before explaining the data write processing shown in FIG. 11, a data write request transmitted when requesting data write between user terminals or nodes will be explained. . FIG. 12 is an explanatory diagram showing a format example of a data write request. A data write request 148 shown in FIG. 12 is a format example of a data write request when data write is requested in the REST (Representational State Transfer) format of HTTP (Hypertext Transfer Protocol), and the data write request is sent to the request type column 148A. The request format example column 148B describes a format example of the data write request.
 データ書込みリクエスト148には、リクエスト148C~148Eの3種類のリクエスト例が示されている。リクエスト148Cは、ユーザ端末から分散データ管理システム1に送信されるデータ書込みリクエストのフォーマット例である。リクエスト148Dは、ユーザ端末からリクエスト148Cを受信した分散データ管理システム1のノード20(例えばノードA)が、分散データ管理システム1を構成するノード20に、データレプリケーションを目的としてデータの書込みを依頼する際に送信されるデータ書込みリクエストのフォーマット例である。リクエスト148Eは、リクエスト148Dを受信したノード20が、レプリケーションデータの作成ができない場合に、他のノード20にデータレプリケーションを再依頼する際に送信されるデータ書込みリクエストのフォーマット例である。レプリケーションデータの作成処理については、図11を参照しながら後述する。 In the data write request 148, three types of request examples 148C to 148E are shown. The request 148C is a format example of a data write request transmitted from the user terminal to the distributed data management system 1. In the request 148D, the node 20 (for example, the node A) of the distributed data management system 1 that has received the request 148C from the user terminal requests the node 20 configuring the distributed data management system 1 to write data for the purpose of data replication. It is a format example of the data write request transmitted at the time. The request 148E is a format example of a data write request that is transmitted when the node 20 that has received the request 148D cannot re-request data replication to another node 20 when the replication data cannot be created. The replication data creation process will be described later with reference to FIG.
 リクエスト148C、リクエスト148D及びリクエスト148Eは同様のフォーマット構成を有するとし、以下ではまず、リクエスト148Cを例に挙げて、リクエストフォーマットの構成内容について詳しく説明する。 Assume that the request 148C, the request 148D, and the request 148E have the same format configuration, and first, the request 148C is taken as an example, and the configuration content of the request format will be described in detail.
 リクエスト148Cの1行目は、HTTPコマンドであり、データの送信を意味する「PUT」、データのURI(Uniform Resource Identifier)を示す文字列「/ServiceID/UserID/FileID」、及びリクエストのHTTPバージョンを示す文字列「HTTP 1.1」によって構成される。リクエスト148Cの2行目は、送信されるデータのタイムスタンプ「T1」を提示するTimeStampヘッダであり、ファイル書込みリクエストの作成日時が記載される。なお、データURI及びタイムスタンプは、送信されるデータの一意性を判断するために用いられる項目であり、リクエスト148D及びリクエスト148Eでも同じ内容が記載される。 The first line of the request 148C is an HTTP command, “PUT” meaning data transmission, a character string “/ ServiceID / UserID / FileID” indicating a URI (Uniform Resource Identifier) of the data, and an HTTP version of the request. It consists of the character string “HTTP 1.1”. The second line of the request 148C is a TimeStamp header that presents the time stamp “T1” of the data to be transmitted, and describes the creation date and time of the file write request. The data URI and the time stamp are items used to determine the uniqueness of the transmitted data, and the same contents are described in the request 148D and the request 148E.
 リクエスト148Cの3行目は、当該リクエストが階層型ハッシュリングネットワークのどの階層から送信されたかを示すNetworkヘッダであり、リクエスト148Cの場合はユーザ端末からの送信リクエストであり、何れの階層にも属さないので、「Null」が記載される。Networkヘッダは、後述する同一ハッシュリングネットワーク内での再レプリケーションの実施で用いられる。リクエスト148Cの4行目は、データレプリケーションを主目的とするリクエストであるかを示すReplicationヘッダであり、「true」が記載されている。この場合には、当該リクエストは、データレプリケーションを主目的とせず、プライマリデータの書込み要求であり、書込み依頼先のノードが書込み対象データのレプリケーションデータを作成する必要があることを示す。 The third line of the request 148C is a Network header indicating from which layer of the hierarchical hash ring network the request is transmitted. In the case of the request 148C, the request is a transmission request from the user terminal and belongs to any layer. Since there is no, “Null” is described. The Network header is used in performing re-replication within the same hash ring network described later. The fourth line of the request 148C is a Replication header indicating whether the request is mainly for data replication, and “true” is described therein. In this case, the request is not a data replication main purpose but is a primary data write request, and indicates that the write request destination node needs to create replication data of the write target data.
 リクエスト148Cの5行目は、データ区別のための属性としてプライマリ又はセカンダリを区別する(図11のステップS205で後述する)場合に、プライマリデータの所在を示すPrimaryヘッダである。リクエスト148Cの段階ではデータ区別の属性がまだ作成されていないので、Primaryヘッダには「Null」が記載される。なお、Primaryヘッダに指定される値は、プライマリデータを保持するノード20が一意に識別できればよく、ネットワークアドレス(IPアドレス)やホスト名等を用いて示されてもよい。リクエスト148Cの6行目は、当該リクエストに他のヘッダが併記されているか否かを示すヘッダであり、リクエスト148の場合には特に規定しない。リクエスト148Cの7行目には、当該リクエストによって書込みが依頼される書込み対象のデータが記載される。 The fifth line of the request 148C is a Primary header indicating the location of primary data when primary or secondary is distinguished as an attribute for data distinction (described later in step S205 in FIG. 11). Since the data distinction attribute has not yet been created at the stage of the request 148C, “Null” is described in the Primary header. Note that the value specified in the Primary header only needs to be uniquely identified by the node 20 that holds the primary data, and may be indicated using a network address (IP address), a host name, or the like. The sixth line of the request 148C is a header indicating whether or not another header is written in the request, and is not particularly specified in the case of the request 148. In the seventh line of the request 148C, data to be written that is requested to be written by the request is described.
 次に、リクエスト148D,148Eについて、リクエスト148Cと異なる部分を説明する。リクエスト148DのNetworkヘッダ(3行目)には、ネットワーク名「R0000」が記載され、リクエスト148Dが、ノードAだけで構成される第3層ネットワーク「R0000」から送信されたことが示されている。リクエスト148EのNetworkヘッダ(3行目)には、ネットワーク名「R00」が記載され、リクエスト148Eが、第1層ネットワーク「R00」から送信されたことが示されている。 Next, portions of the requests 148D and 148E that are different from the request 148C will be described. The network header (third line) of the request 148D describes the network name “R0000”, and indicates that the request 148D is transmitted from the third layer network “R0000” configured only by the node A. . The network header (third line) of the request 148E describes the network name “R00”, indicating that the request 148E has been transmitted from the first layer network “R00”.
 また、リクエスト148D,148EのReplicationヘッダ(4行目)には共に「false」が記載され、何れのリクエストでも、書込まれるデータのレプリケーション処理が必要ないことが示されている。リクエスト148D,148EのPrimaryヘッダ(5行目)には、共にノードAを示す「node A」が記載されている。これは、リクエスト148D,148Eで送信されるデータのプライマリデータを格納しているノードがノードAであることを示している。 Also, “false” is described in the Replication header (line 4) of the requests 148D and 148E, indicating that any request does not require replication processing of the data to be written. In the Primary header (line 5) of the requests 148D and 148E, “node A” indicating the node A is described. This indicates that the node storing the primary data of the data transmitted by the requests 148D and 148E is the node A.
(1-3-2)データ書込み処理
 以下では、図11を参照しながらデータの書込み処理を説明する。ステップS201では、ノードAが、ユーザ端末からデータキー「q」を持つデータの書込みリクエスト(例えば図12のリクエスト148C)を受信する。ノードAにおけるステップS201の処理をより詳しく説明すると、まずノードAのデータ読込制御部213が、通信ユニット233及び通信I/O231を経由して、ユーザ端末からの書込みリクエストを受信する。次に、リクエスト解析部215が、受信した書込みリクエストを解析し、当該リクエストがユーザ端末から送信されたものであることを判断する。続けて、ハッシュ計算部216がデータキー「q」に基づいてハッシュ値を計算し、ノード導出部217が、構成情報転送制御部113から転送されてテーブル管理部214が管理するネットワーク構成情報に基づいて、データレプリケーションを依頼するノード20を導出する。そして、データ書込制御部212は、ノード導出部217によって導出されたレプリケーション先ノードに対して、通信I/O231及び通信ユニット233を経由して、図12のリクエスト148Dによってデータの書込みをリクエストする(ステップS202,S204,S206,S208)。
(1-3-2) Data Write Processing Data write processing will be described below with reference to FIG. In step S201, the node A receives a data write request (eg, request 148C in FIG. 12) having the data key “q” from the user terminal. The processing in step S201 in node A will be described in more detail. First, the data read control unit 213 in node A receives a write request from the user terminal via the communication unit 233 and the communication I / O 231. Next, the request analysis unit 215 analyzes the received write request and determines that the request is transmitted from the user terminal. Subsequently, the hash calculation unit 216 calculates a hash value based on the data key “q”, and the node derivation unit 217 is transferred from the configuration information transfer control unit 113 and is based on the network configuration information managed by the table management unit 214. Thus, the node 20 that requests data replication is derived. Then, the data write control unit 212 requests the replication destination node derived by the node deriving unit 217 to write data by the request 148D in FIG. 12 via the communication I / O 231 and the communication unit 233. (Steps S202, S204, S206, S208).
 具体的には、図10に示したネットワーク構成情報147によれば、ノードAが所属するハッシュリングネットワークは、「R0000」,「R000」,「R00」,「R0」であり、データキー「q」に対するハッシュ値は「7694f4a66316e53c8cdd9d9954bd611d」である。そこで、ノード導出部217は、各ネットワーク「R0000」,「R000」,「R00」,「R0」においてデータキー「q」を担当するノードを、レプリケーションの依頼先とする。 Specifically, according to the network configuration information 147 shown in FIG. 10, the hash ring networks to which the node A belongs are “R0000”, “R000”, “R00”, “R0”, and the data key “q The hash value for "is" 7694f4a66316e53c8cdd9d9954bd611d ". Therefore, the node deriving unit 217 sets a node in charge of the data key “q” in each of the networks “R0000”, “R000”, “R00”, and “R0” as a replication request destination.
 ネットワーク「R0000」の場合、当該ネットワークは、ノードAだけで構成されるハッシュリングネットワークなので、当該ネットワークにおけるデータ書込みの依頼先はノードAとなる。従って、データ制御部21(詳しくはデータ書込制御部212)は、ノードAに対してデータ書込みをリクエストする(ステップS202)。ステップS202では、ノードAがノードAにデータ書込みをリクエストする形になるので、ノードAのデータ書込み制御部213が、自ノードのストレージユニット234にデータを書込む(ステップS203)。 In the case of the network “R0000”, since the network is a hash ring network composed only of the node A, the data write request destination in the network is the node A. Therefore, the data control unit 21 (specifically, the data write control unit 212) requests the node A to write data (step S202). In step S202, since node A requests data write to node A, data write control unit 213 of node A writes data to storage unit 234 of its own node (step S203).
 また、ネットワーク「R000」の場合、当該ネットワークはノードA,B,Cで構成されるハッシュリングネットワークであり、図9に示したネットワーク構成ノード情報146を参照すると、ハッシュ値「7694f4a66316e53c8cdd9d9954bd611d」を持つデータキー「q」は、ノードハッシュ「92eb5ffee6ae2fec3ad71c777531578f」を持つノードBに担当される。従って、ノードAのデータ制御部21は、ノードBに対してデータ書込みをリクエストする(ステップS204)。そして、データ書込みリクエストを受信したノードBは、自ノードのストレージユニット234にデータを書込む(ステップS205)。 Further, in the case of the network “R000”, the network is a hash ring network composed of nodes A, B, and C. With reference to the network configuration node information 146 shown in FIG. 9, data having a hash value “7694f4a66316e53c8cdd9d9954bd611d” The key “q” is assigned to the node B having the node hash “92eb5ffee6ae2fec3ad71c777531578f”. Therefore, the data control unit 21 of the node A requests the node B to write data (step S204). Then, the node B that has received the data write request writes the data to the storage unit 234 of its own node (step S205).
 ステップS205の処理について詳しく説明すると、ノードBのデータ読込制御部213が、通信ユニット233及び通信I/O231を経由して、ノードAからの書込みリクエストを受信する。次に、リクエスト解析部215は、受信した書込みリクエストを解析し、当該リクエストが、ユーザ端末からのリクエストを受信したノードAがレプリケーションを依頼しているものであると判断する。そして、リクエスト処理部211は、レプリケーションとしてデータを書込むために、データ書込み制御部212に、当該リクエストに付けられた書込み対象データを転送し、データ書込み制御部212は、ストレージI/O232を経由してストレージユニット234に当該データを書込む。 The processing in step S205 will be described in detail. The data read control unit 213 of the node B receives a write request from the node A via the communication unit 233 and the communication I / O 231. Next, the request analysis unit 215 analyzes the received write request and determines that the request is a request for replication from the node A that has received the request from the user terminal. The request processing unit 211 transfers the write target data attached to the request to the data write control unit 212 in order to write data as replication, and the data write control unit 212 passes through the storage I / O 232. Then, the data is written into the storage unit 234.
 なお、書込み対象データのレプリケーションに関して、プライマリ及びセカンダリを区別して保持したい場合には、少なくともセカンダリのデータ書込み時に、プライマリデータの所在をメタデータとしてデータ書込みと同時に書込む。メタデータの書込み方法は特に限定しないが、既存のファイルシステムのフォークを利用してもよい。フォークは、HFS(Hierarchical File System)ではリフォークソースとして、Unix(登録商標)やUnix(登録商標)系におけるファイルシステム(ext2,ext3,JFS,ResiserFS,XFS等)ではxattrとして、NTFS(NT File System)では代替データストリームとして知られている。 In addition, regarding the replication of the data to be written, if it is desired to keep the primary and secondary differently, the location of the primary data is written at the same time as the data writing as metadata at least when the secondary data is written. The metadata writing method is not particularly limited, but an existing file system fork may be used. A fork is a refork source in HFS (Hierarchical File System), a file system in Unix (registered trademark) or Unix (registered trademark) system (ext2, ext3, JFS, ReserFS, XFS, etc.) as xattr, NTFS (NT System) is known as an alternative data stream.
 また、ネットワーク「R00」の場合、上述したネットワーク「R000」の場合と同様に考えると、データキー「q」は、ノードハッシュ値「8277e0910d750195b448797616e091ad」を持つノードDに担当される。従って、ノードAのデータ制御部21は、ノードDに対してデータ書込みをリクエストする(ステップS206)。そして、データ書込みリクエストを受信したノードDは、ステップS205と同様に、ノードDのストレージユニット234にデータを書込む(ステップS207)。 In the case of the network “R00”, the data key “q” is assigned to the node D having the node hash value “8277e0910d750195b448797616e091ad” in the same way as the case of the network “R000” described above. Accordingly, the data control unit 21 of the node A requests the node D to write data (step S206). Then, the node D that has received the data write request writes data to the storage unit 234 of the node D as in step S205 (step S207).
 また、ネットワーク「R0」の場合も、上述したネットワーク「R000」の場合と同様に考えると、データキー「q」は、ノードハッシュ値「8277e0910d750195b448797616e091ad」を持つノードDに担当される。従って、ノードAのデータ制御部21は、ノードDに対してデータ書込みをリクエストする(ステップS208)。そして、データ書込みリクエストを受信したノードDは、ステップS205と同様に、ノードDのストレージユニット234にデータを書込もうとするが、データ書込み制御部212が、ステップS207におけるネットワーク「R00」に対応する処理によって、ノードDには既に同一のデータが書込まれていることを検知する(ステップS209)。このとき、ノードDは、レプリケーション数を維持するために、データレプリケーション先のノード(例えばノードI)を再度選択し(ステップS210)、選択したレプリケーション先のノードIに対して、図12のリクエスト148Eによってデータ書込みをリクエストする(ステップS211)。そして、データ書込みがリクエストされたノードIは、自ノードにデータを書込む(ステップS212)。書込み対象データのレプリケーションに関してプライマリ及びセカンダリを区別して保持したい場合には、少なくともセカンダリのデータ書込み時に、プライマリデータの所在をメタデータとしてデータ書込みと同時に書込む。 In the case of the network “R0”, the data key “q” is assigned to the node D having the node hash value “8277e0910d750195b448797616e091ad” in the same way as the network “R000” described above. Therefore, the data control unit 21 of the node A requests data writing to the node D (step S208). The node D that has received the data write request tries to write data to the storage unit 234 of the node D as in step S205, but the data write control unit 212 corresponds to the network “R00” in step S207. By this process, it is detected that the same data has already been written in the node D (step S209). At this time, in order to maintain the number of replications, the node D selects again the data replication destination node (for example, node I) (step S210), and requests 148E in FIG. 12 to the selected replication destination node I. To request data writing (step S211). Then, the node I requested to write data writes the data to its own node (step S212). When it is desired to distinguish between primary and secondary for replication of data to be written, at least when writing secondary data, the location of primary data is written as metadata at the same time as data writing.
 ステップS208~S212の処理は、分散データ管理システム1で構築される分散型データベースでは同一のノードが複数階層に跨って割当てられるため、複数のネットワークにおいて同一のノードがデータ書込み先として選定される可能性があり、そのような場合には適当な別のノードにデータを再レプリケーションする、という本実施の形態における一特徴を示す処理である。 In the processing of steps S208 to S212, in the distributed database constructed by the distributed data management system 1, the same node is allocated across multiple hierarchies, so the same node can be selected as a data write destination in multiple networks. In such a case, this is a process showing one characteristic in the present embodiment that data is re-replicated to another appropriate node.
 なお、ステップS209において、同一のデータが書込まれていることを検知する方法は特に限定しないが、例えば、データ書込みリクエストが図12に示したリクエストフォーマットを有する場合に、データ書込み制御部212が、リクエスト内のTimeStampヘッダに記載されたタイムスタンプを確認し、データキー「q」のハッシュ値と同一のハッシュ値を持ち、かつ、同一のタイムスタンプを持つデータがストレージユニット234に格納されていれば、同一データを書込み済みであると検知すればよい。さらに、書込み対象のデータがファイルであれば、データ書込み制御部212は、当該ファイルのファイルフォーマット内に格納されるプロパティ情報、特に当該ファイルのタイムスタンプを、同一データが書込まれているかの検知に利用してもよい。 Note that the method for detecting that the same data is written in step S209 is not particularly limited. For example, when the data write request has the request format shown in FIG. The time stamp described in the TimeStamp header in the request is confirmed, and data having the same hash value as the hash value of the data key “q” and having the same time stamp is stored in the storage unit 234. For example, it may be detected that the same data has been written. Further, if the data to be written is a file, the data write control unit 212 detects whether the same data is written in the property information stored in the file format of the file, in particular, the time stamp of the file. You may use it.
 また、ステップS210において、再選択されるデータレプリケーション先のノードの選定方法は限定しないが、例えば、各ノードの内部構成に関わらず、複数のネットワークにおいて同一のノードにレプリケーションデータを作成しないと設定される場合に、同一データの書込みを検知したネットワーク「R0」において、データ書込み先としてリクエストされたノードDから一意に決定される別のノードをデータレプリケーション先のノードとして再選択し、当該ノードに対してデータレプリケーションを実施する。ノードDから一意に決定される別のノードとは、例えば、ネットワーク「R0」においてノードDの近傍に位置するノードであり、より具体的には、ノードDの前方に位置するノードM,C、ノードDの後方に位置するノードI,K、又は、ノードDから2の階乗分だけ前後に位置する他のノード等を考えることができる。しかし、後述するデータ復旧時の処理効率を考慮すると、ノードDの1つ後方に位置するノードIを、データレプリケーション先のノードとして再選択することが好ましい。 In step S210, the method of selecting the data replication destination node to be reselected is not limited. For example, it is set that replication data is not created on the same node in a plurality of networks regardless of the internal configuration of each node. In the network “R0” in which the writing of the same data is detected, another node uniquely determined from the node D requested as the data writing destination is reselected as the data replication destination node, and Data replication. Another node uniquely determined from the node D is, for example, a node located in the vicinity of the node D in the network “R0”, and more specifically, the nodes M, C, Nodes I and K located behind the node D, or other nodes located before and after the factor D by 2 can be considered. However, in consideration of the processing efficiency at the time of data recovery, which will be described later, it is preferable to reselect the node I located one node behind the node D as the data replication destination node.
 また、ステップS210で再選択されるデータレプリケーション先のノードを選定する別の方法例として、同一データの書込みを検知したネットワーク「R0」以外のネットワークにデータレプリケーション先のノードを、再選定の対象としてもよい。しかし、このような場合には、当該別のネットワークから再選択したノードが、ステップS202~S207でデータを書込み済みのノードA,B,Dのように既に同一データを書込まれているノードである可能性があるので、当該ノードのデータ書込み制御部212が、同一データの書込み検出を再度実行しなければならず、処理効率が低下する。 As another example of selecting a data replication destination node to be reselected in step S210, a data replication destination node is selected as a reselection target in a network other than the network “R0” that detected the writing of the same data. Also good. However, in such a case, the node reselected from the other network is a node to which the same data has already been written, such as nodes A, B, and D to which data has been written in steps S202 to S207. Since there is a possibility, the data write control unit 212 of the node must execute the write detection of the same data again, and the processing efficiency is lowered.
 ステップS201~S212の処理によって、ユーザ端末からノードAに書込みがリクエストされたデータキー「q」を持つデータが、分散データ管理システム1における分散型データベースを構成するノードA~MのうちノードA,B,D,Iに書込まれる。 The data having the data key “q” requested to be written from the user terminal to the node A by the processing of steps S201 to S212 is the node A, among the nodes A to M constituting the distributed database in the distributed data management system 1. Written in B, D, I.
 そして、ステップS212の完了後に、後述する分散データ管理システム1を構成するノードの削除処理においてノードの削除に伴うデータ復旧で利用するために、少なくとも最上位層のネットワーク、すなわち、全ノードA~Mが割当てられた第0層ネットワーク「R0」において、当該ネットワーク「R0」でデータが書込まれたノードDが、ノードDから一意に特定される別のノード(例えばノードI)に対して、バックアップとして当該データのレプリケーションをリクエストする(ステップS213)。ただし、図11では、ステップS212で同一のデータが既に書込まれているので、ノードIが、ステップS209~S210と同様にレプリケーション先を再選択し、再選択したノード(例えばノードK)に、再度レプリケーションをリクエストする(ステップS214)。そして、同一のデータが書込み済みでないノード(ノードK)において、自ノードのストレージユニット234にデータが書込まれてバックアップが作成される(ステップS215)。なお、書込み対象データのレプリケーションに関してプライマリとセカンダリとを区別して保持したい場合には、これまでの説明と同様に、少なくともセカンダリのデータ書込み時に、プライマリデータの所在をメタデータとしてデータ書込みと同時に書込むようにする。 After the completion of step S212, at least the highest layer network, that is, all nodes A to M, are used for data recovery accompanying node deletion in the deletion processing of nodes constituting the distributed data management system 1 described later. In the 0th layer network “R0” to which the node “D” is assigned, the node D in which data is written in the network “R0” is backed up to another node (for example, the node I) uniquely identified from the node D. And requesting replication of the data (step S213). However, in FIG. 11, since the same data has already been written in step S212, node I reselects the replication destination in the same manner as steps S209 to S210, and the reselected node (for example, node K) Request replication again (step S214). Then, in the node (node K) where the same data has not been written, the data is written in the storage unit 234 of the own node to create a backup (step S215). If you want to keep primary and secondary differently for replication of data to be written, write the location of the primary data as metadata at the same time as the data write at least when writing secondary data as before. Like that.
 なお、図11において、ノードAが行うデータレプリケーションのリクエスト処理(ステップS202、S204,S206,S208)の実施順序は限定されず、また、並行して実行されてもよい。ただし、ユーザ端末が最初にデータ書込みをリクエストしたノードAに対して、ノードAの近傍にあるノードからデータレプリケーションを実施するためには、下位の階層ネットワークからデータレプリケーションのリクエスト処理を実行するほうが好ましい。 In FIG. 11, the execution order of the data replication request processing (steps S202, S204, S206, and S208) performed by the node A is not limited, and may be executed in parallel. However, in order to perform data replication from a node in the vicinity of the node A to the node A from which the user terminal first requested data writing, it is preferable to execute data replication request processing from the lower hierarchical network. .
 上述したステップS201~S215の処理を行うことにより、分散データ管理システム1では、階層型ハッシュリングネットワークによる分散型データベースに、ユーザ端末が接続する何れのノードA~Mからでもデータを書込むことができる。 By performing the processing of steps S201 to S215 described above, the distributed data management system 1 can write data from any node A to M to which the user terminal is connected to the distributed database using the hierarchical hash ring network. it can.
(1-4)分散型データベースからのデータ読込み
 以下では、分散データ管理システム1において、分散型データベースからデータを読込む方法を説明する。ここでは、図11に示したデータ書込み処理によって、図8に示した階層型ハッシュリングネットワークによる分散型データベースに、ユーザ端末からのデータキーとして「q」を持つデータが格納されているとする。具体的には、当該データはノードA,B,D,I,Kに書込まれている。このような場合に、データキー「q」を持つデータをノードMから読込む処理を説明する。
(1-4) Reading Data from Distributed Database Hereinafter, a method for reading data from a distributed database in the distributed data management system 1 will be described. Here, it is assumed that data having “q” as the data key from the user terminal is stored in the distributed database by the hierarchical hash ring network shown in FIG. 8 by the data writing process shown in FIG. Specifically, the data is written in nodes A, B, D, I, and K. In such a case, a process for reading data having the data key “q” from the node M will be described.
 まず、ノードMのデータ読込み制御部213が、ネットワーク「R1101」に含まれるノードMに、データキー「q」を持つデータが格納されていないかを探索するようリクエストする。読込みリクエストのリクエスト先は自ノードなので、データ読込制御部213は、ストレージユニット234に当該データが格納されていないか確認する。ここで、データキー「q」を持つデータはノードMには存在しないので、データ読込制御部213は、探索結果が失敗に終わったことを通知する失敗通知を返す。なお、読込みリクエストのフォーマット形式は特に限定されないが、例えば、図12に示したデータ書込みリクエスト148と同様のフォーマットで考えると、読込みリクエストは、Primaryヘッダやデータを含む必要はなく、データの読取りを意味する命令を含むHTTPコマンド、及び、当該リクエストが階層型ハッシュリングネットワークのどの階層に送信されるかを示すNetworkヘッダ等を有する構成であればよい。 First, the data read control unit 213 of the node M requests the node M included in the network “R1101” to search for data stored with the data key “q”. Since the request destination of the read request is the own node, the data read control unit 213 checks whether the data is stored in the storage unit 234. Here, since the data having the data key “q” does not exist in the node M, the data reading control unit 213 returns a failure notification notifying that the search result is unsuccessful. Although the format format of the read request is not particularly limited, for example, considering the same format as the data write request 148 shown in FIG. 12, the read request does not need to include a Primary header or data, What is necessary is just the structure which has the HTTP command containing the command to mean, and the Network header etc. which show to which hierarchy of the hierarchical hash ring network the said request is transmitted.
 次に、ノードMのデータ制御部21は、ノードMを含む関連ラインを辿って、1つ上位の第2層ネットワーク「R100」を参照し、データキー「q」のハッシュ値を担当するノード(説明を省略するが、ノードKに相当)に対して、データキー「q」を持つデータが格納されていないか探索するようリクエストする。ノードKにはデータキー「q」を持つデータが格納されているので、当該データがノードKからノードMに転送され、ノードMによる当該データの読込が完了する。 Next, the data control unit 21 of the node M traces the related line including the node M, refers to the upper-layer second-layer network “R100”, and takes charge of the hash value of the data key “q” ( Although explanation is omitted, it corresponds to the node K) and requests to search whether data having the data key “q” is stored. Since the data having the data key “q” is stored in the node K, the data is transferred from the node K to the node M, and the reading of the data by the node M is completed.
 なお、仮に第2階層のネットワークでもデータが見つからなかった場合には、さらに上位の第1層ネットワーク「R10」もしくは、最上位層の第0層ネットワーク「R0」を探索していけばよく、第0層ネットワーク「R0」まで探索すれば、必ず対象データの探索に成功することができ、目的のデータを読込むことができる。 If data is not found even in the second layer network, it is only necessary to search for a higher-layer first layer network “R10” or a highest layer zero-layer network “R0”. If the search is performed up to the zero-layer network “R0”, the target data can always be successfully searched, and the target data can be read.
(1-5)分散型データベースからのデータの削除
 以下では、本実施の形態による分散データ管理システム1において、階層型ハッシュリングネットワークによる分散型データベースから、ノード内に格納されたデータを削除する方法について説明する。図13は、データ削除の処理手順の一例を示すシーケンス図である。図13では、図11に示したデータ書込み処理によって、図8に示した階層型ハッシュリングネットワークによる分散型データベースに、ユーザ端末からのデータキーとして「q」を持つデータが格納されているとする。具体的には、当該データはノードA,B,D,I,Kに書込まれている。このような場合に、データキー「q」を持つデータを、ノードMに接続したユーザ端末からの削除要求に応じて削除する処理を説明する。
(1-5) Deletion of Data from Distributed Database In the following, in the distributed data management system 1 according to the present embodiment, a method for deleting data stored in a node from a distributed database using a hierarchical hash ring network Will be described. FIG. 13 is a sequence diagram illustrating an example of a data deletion processing procedure. In FIG. 13, it is assumed that data having “q” as the data key from the user terminal is stored in the distributed database by the hierarchical hash ring network shown in FIG. 8 by the data writing process shown in FIG. . Specifically, the data is written in nodes A, B, D, I, and K. In such a case, a process for deleting data having the data key “q” in response to a deletion request from a user terminal connected to the node M will be described.
 データの削除処理ではまず、前述したデータ読込みと同様の手順で、下位層から上位層に向けて順にネットワーク内の対象データを探索する。具体的には、ユーザ端末からデータキー「q」を持つデータ(対象データ)の削除要求を受信したノードMのデータ読込制御部213が、ネットワーク「R1101」の自ノードに対して対象データの読込みをリクエストする(ステップS301)。なお、図13に示す処理はデータの削除を目的としており、対象データ本体を読込む必要はないので、ステップS301及び後述するステップS303で送信されるデータ読込みリクエストは、対象データのヘッダだけを読込むリクエスト、又は、対象データの有無だけを調べるリクエストであればよい。ステップS301の読込みリクエストの結果、ノードMにはデータキー「q」を持つデータは格納されていないので、失敗通知が返される(ステップS302)。 In the data deletion process, first, the target data in the network is searched in order from the lower layer to the upper layer in the same procedure as the data reading described above. Specifically, the data read control unit 213 of the node M that has received a request to delete data (target data) having the data key “q” from the user terminal reads the target data to the own node of the network “R1101”. Is requested (step S301). Note that the process shown in FIG. 13 is for the purpose of deleting data, and it is not necessary to read the target data body. Therefore, the data read request transmitted in step S301 and step S303 described later reads only the header of the target data. Or a request for examining only the presence or absence of target data. As a result of the read request in step S301, failure notification is returned because no data having the data key “q” is stored in the node M (step S302).
 次に、ノードMのデータ制御部21は、ノードMを含む関連ラインを辿って、1つ上位の第2層ネットワーク「R100」を参照し、データキー「q」のハッシュ値を担当するノードKに対して、データ読込みをリクエストする(ステップS303)。このとき、ノードKには当該データが格納されているので、ノードKのデータ読込制御部213が、当該データのヘッダ情報を読込み、ノードMのデータ制御部に送信する(ステップS304)。ノードMのデータ制御部21は、ステップS304で対象データのヘッダ情報を受信すると、送信元のノードMに対して、対象データが持つメタデータの読込みをリクエストする(ステップS305)。メタデータの読込みリクエストを受信したノードKのデータ制御部21は、リクエストに応えて対象データのメタデータを読込んでノードMに返信する(ステップS306)。 Next, the data control unit 21 of the node M traces the related line including the node M, refers to the second-layer network “R100” that is one level higher, and is responsible for the hash value of the data key “q”. Is requested to read data (step S303). At this time, since the data is stored in the node K, the data read control unit 213 of the node K reads the header information of the data and transmits it to the data control unit of the node M (step S304). When receiving the header information of the target data in step S304, the data control unit 21 of the node M requests the transmission source node M to read the metadata of the target data (step S305). Upon receiving the metadata read request, the data control unit 21 of the node K reads the metadata of the target data in response to the request and returns it to the node M (step S306).
 ステップS306で対象データのメタデータを受信したノードMでは、データ制御部21が、受信したメタデータを参照して、対象データのプライマリデータの格納先ノードを取得し、格納先ノードに対して対象データの削除をリクエストする(ステップS307)。データキー「q」を持つデータのプライマリデータの格納先ノードは、例えばメタデータに含まれるPrimaryヘッダを参照することによって、ノードAであることが分かる。従って、ステップS307では、ノードAにデータ削除リクエストが送信される。 In the node M that has received the metadata of the target data in step S306, the data control unit 21 refers to the received metadata, acquires the storage destination node of the primary data of the target data, and targets the storage destination node. A request for data deletion is made (step S307). The primary data storage destination node of the data having the data key “q” is identified as the node A by referring to, for example, the Primary header included in the metadata. Accordingly, in step S307, a data deletion request is transmitted to the node A.
 そして、データ削除リクエストを受信したノードAのデータ制御部21は、図11で説明したデータ書込みと同様の手順で、対象データがレプリケーションされている全てのノード、すなわち、ノードA,B,D,I,Kに対して、対象データの削除をリクエストし(ステップS308)、各ノードA,B,D,I,Kにおいて対象データが削除される(ステップS309)。対象データの削除が完了すると、各ノードA,B,D,I,Kから削除の完了を通知する削除完了通知がノードMに送信される(ステップS310)。 Then, the data control unit 21 of the node A that has received the data deletion request, in the same procedure as the data writing described in FIG. 11, all the nodes to which the target data is replicated, that is, the nodes A, B, D, I and K are requested to delete the target data (step S308), and the target data is deleted at each of the nodes A, B, D, I, and K (step S309). When the deletion of the target data is completed, a deletion completion notification for notifying the completion of the deletion is transmitted from each node A, B, D, I, K to the node M (step S310).
 なお、データキー「q」を持つデータを書込む場合には、ステップS212でノードDの代わりにノードIにデータがレプリケーションされ、ステップS215でノードIの代わりにノードKにデータがレプリケーションされたが、データ削除の場合も、同様に、例えば第1層ネットワーク「R00」でノードDの対象データが削除され、その後、第0層ネットワーク「R0」におけるデータ削除を行おうとした場合に、ノードDの対象データが既に削除されていることに基づいて、ノードDから一意に決定されるノードIに対しても、対象データが格納されていることを認識して当該データの削除を行うことができる。すなわち、ハッシュ値に基づいて直接探索される、本来データの格納先を担当するノード(例えばノードD)ではなく、ハッシュ値に基づいて直接探索されたノードから一意に決定されたノード(例えばノードDに対するノードIや、ノードIに対するノードK)にレプリケーションされたデータを削除する場合には、ハッシュ値に基づいて直接探索されるノードが、より下位層のネットワークで既に対象データを削除していることを契機として、上位層のネットワークにおいて当該ノードに対応して一意に決定されるノードにも対象データがレプリケーションされていることを検知し、対象データを削除することができる。 When writing data having the data key “q”, the data is replicated to the node I instead of the node D in step S212, and the data is replicated to the node K instead of the node I in step S215. Similarly, in the case of data deletion, for example, when the target data of the node D is deleted in the first layer network “R00” and then the data deletion in the zeroth layer network “R0” is attempted, Based on the fact that the target data has already been deleted, the node I uniquely determined from the node D can also recognize that the target data is stored and delete the data. That is, not the node that is directly searched based on the hash value and is originally responsible for the data storage destination (for example, the node D), but the node that is uniquely determined from the node that is directly searched based on the hash value (for example, the node D) When deleting data replicated to node I for node I or node K for node I), the node directly searched based on the hash value has already deleted the target data in the lower layer network As a trigger, it can be detected that the target data is also replicated to a node uniquely determined corresponding to the node in the upper layer network, and the target data can be deleted.
 上述したステップS301~S310の処理によって、分散データ管理システム1では、分散型データベースに格納されたデータを、分散型データベースを構成する何れかのノードからでも削除することができる。 The distributed data management system 1 can delete the data stored in the distributed database from any of the nodes constituting the distributed database by the processing of steps S301 to S310 described above.
(1-6)分散型データベースへのノードの追加
 ここでは、本実施の形態による分散データ管理システム1において、階層型ハッシュリングネットワークによる分散型データベースに、ノードを追加する方法について説明する。このような階層型ハッシュリングネットワークにノードを新たに追加する場合の処理は、分散ハッシュテーブルを利用した従来の分散データ管理システムにおけるノード追加の処理を適用することができる。具体的には例えば、追加対象のノードを追加予定のネットワークに追加し、階層型ハッシュリングネットワークの各ネットワークにおいて、追加対象ノードの後ろに位置するノードから、追加対象ノードが担当するハッシュ値の範囲のデータを、追加したノードに移動させればよい。また、追加対象ノードを各ネットワークに追加することにより発生する重複ノードに対する処理や、ハッシュ空間の調整については、図4のステップS107又はステップS108で説明した処理と同様の処理を適用することができる。
(1-6) Addition of Node to Distributed Database Here, a method of adding a node to a distributed database using a hierarchical hash ring network in the distributed data management system 1 according to the present embodiment will be described. As a process for newly adding a node to such a hierarchical hash ring network, a node addition process in a conventional distributed data management system using a distributed hash table can be applied. Specifically, for example, a node to be added is added to a network to be added, and in each network of the hierarchical hash ring network, a range of hash values handled by the addition target node from a node positioned after the addition target node This data may be moved to the added node. Further, the processing similar to the processing described in step S107 or step S108 of FIG. 4 can be applied to processing for overlapping nodes generated by adding the addition target node to each network and adjustment of the hash space. .
(1-7)分散型データベースのノードの削除とデータの復旧
 以下では、本実施の形態による分散データ管理システム1において、階層型ハッシュリングネットワークによる分散型データベースからノードを削除した場合に、削除したノード内のデータを復旧する方法について説明する。図14は、ノードを削除した階層型ハッシュリングネットワークにおいてデータを復旧する方法を説明するための概略図である。図14に示す階層型ハッシュリングネットワークは、図8に示した階層型ハッシュリングネットワークから障害対応や交換のためにノードBを削除した階層型ハッシュリングであり、図14における破線の矢印は、ノードBに格納されていたデータを復旧する方向を示している。また、図14では、削除されたノードBが破線で囲んで示されている。
(1-7) Deletion of node of distributed database and data recovery In the following, in the distributed data management system 1 according to the present embodiment, when a node is deleted from the distributed database by the hierarchical hash ring network, the node is deleted. A method for recovering data in the node will be described. FIG. 14 is a schematic diagram for explaining a method of recovering data in a hierarchical hash ring network from which nodes are deleted. The hierarchical hash ring network shown in FIG. 14 is a hierarchical hash ring in which node B is deleted from the hierarchical hash ring network shown in FIG. 8 for failure handling or exchange. A broken line arrow in FIG. The direction in which the data stored in B is restored is shown. Further, in FIG. 14, the deleted node B is shown surrounded by a broken line.
 まず、ノードBを削除する手順の概要を説明すると、まず、コアノード10の構成情報管理部11が、ノードA~Mのメトリック取得部22で取得されるメトリックに基づいてノードBの回収が必要な状況(例えば障害の発生)を検知した場合に、ノードBを削除した階層型ハッシュリングネットワークを再構成する。なお、コアノード10の構成情報管理部11は、ユーザ端末からの削除指示やコアノードへの直接入力を契機として、指定されたノードBを削除するようにしてもよい。そして、構成情報管理部11が、ノードBを削除して再構築した階層型ハッシュリングネットワークにおいて、図14に示したような順番で下位層のネットワークから順にデータの復旧を実施することによって、ノードBの削除が完了する。 First, the outline of the procedure for deleting the node B will be described. First, the configuration information management unit 11 of the core node 10 needs to collect the node B based on the metrics acquired by the metric acquisition units 22 of the nodes A to M. When a situation (for example, occurrence of a failure) is detected, the hierarchical hash ring network from which the node B is deleted is reconfigured. The configuration information management unit 11 of the core node 10 may delete the designated node B in response to a deletion instruction from the user terminal or direct input to the core node. Then, in the hierarchical hash ring network in which the configuration information management unit 11 deletes and reconstructs the node B, the data is restored in order from the lower layer network in the order shown in FIG. Deletion of B is completed.
 以下、ノードBのデータを復旧する具体的な処理手順を説明する。ノードBを削除する前の階層型ハッシュリングネットワークにおいて、最下層(第3層)ネットワーク「R0001」では全てのデータがノードBに書込まれ、ノードBに書込まれたデータは、上位層のネットワーク「R000」では、ノードA,Cにレプリケーションされる。ネットワーク「R000」においてノードBのデータがレプリケーションされないのは、下位層のネットワーク「R0001」において既にノードBに同一のデータが書込まれているためであり、ネットワーク「R000」においては、ノードBに書込まれるデータは、ノードAにレプリケーションされる。 Hereinafter, a specific processing procedure for restoring the data of the node B will be described. In the hierarchical hash ring network before node B is deleted, in the lowermost layer (third layer) network “R0001”, all data is written to node B, and the data written to node B In the network “R000”, replication is performed to the nodes A and C. The reason why the data of the node B is not replicated in the network “R000” is because the same data is already written in the node B in the lower layer network “R0001”. Data to be written is replicated to node A.
 従って、ネットワーク「R0001」でノードBに書込まれたデータを復旧するために、構成情報管理部11は、ネットワーク「R0001」でノードBに書込まれネットワーク「R000」でノードA,Cにレプリケーションされたデータを、ノードCに移動又は複製する(ステップS1,S2)。ところで、ノードA,Cには、ノードBからレプリケーションされたデータ以外にも、それぞれ最下層ネットワーク「R0000」,「R0010」で書込まれ、ネットワーク「R000」において削除前のノードBが担当すべきデータ等が書込まれている。このように複数の書込みノードから書込まれたデータの中から、ネットワーク「R0001」で書込まれたデータを発見するために、構成情報管理部11は、データと同時に書込まれるメタデータを活用する。すなわち、構成情報管理部11は、ステップS1,S2でメタデータを参照し、メタデータにノードBに関する情報が記載されているデータのみを復旧対象として、ノードA,CからノードCに移動又は複製すればよい。 Therefore, in order to recover the data written to the node B in the network “R0001”, the configuration information management unit 11 writes to the node B in the network “R0001” and replicates to the nodes A and C in the network “R000”. The transferred data is moved or copied to the node C (steps S1 and S2). By the way, in addition to the data replicated from the node B, the nodes A and C are written in the lowest layer networks “R0000” and “R0010”, respectively, and the node B before deletion in the network “R000” should be in charge Data etc. are written. In order to find the data written in the network “R0001” from the data written from the plurality of writing nodes in this way, the configuration information management unit 11 utilizes the metadata written at the same time as the data. To do. That is, the configuration information management unit 11 refers to the metadata in steps S1 and S2, and moves or duplicates from the nodes A and C to the node C by using only the data in which information related to the node B is described in the metadata as a recovery target do it.
 なお、ステップS1,S2でデータを移動又は複製するレプリケーション先のノードは、ノードCに限定するものではなく、ネットワーク「R000」に含まれる何れかのノードであればよい。また、ノードCに移動又は複製されたデータは、書込み対象データのレプリケーションに関してプライマリとセカンダリとを区別して保持したい場合には、プライマリデータであることを示す情報をメタデータとして書込むか、セカンダリデータでないことを示すためにメタデータを消去する。 Note that the replication destination node that moves or replicates data in steps S1 and S2 is not limited to the node C, and may be any node included in the network “R000”. If the data moved or copied to the node C is to be distinguished from the primary and the secondary regarding the replication of the write target data, information indicating the primary data is written as metadata, or the secondary data Delete metadata to indicate that it is not.
 次に、1つ上位層のネットワーク「R00」について考える。ネットワーク「R000」でノードBに書込まれたデータは、上位層のネットワーク「R00」ではノードD,F,Gにレプリケーションされる。ノードD,F,Gは、削除前のノードBの前後に位置するノードや、ノードBに既に同一データが書込まれている場合等に一意に決定されるノードに相当するが、その決定方法は上述したネットワーク「R000」の場合と同様であるので、説明を省略する。 Next, consider the upper layer network “R00”. Data written to the node B in the network “R000” is replicated to the nodes D, F, and G in the upper layer network “R00”. The nodes D, F, and G correspond to nodes that are positioned before and after the node B before deletion, or nodes that are uniquely determined when the same data is already written in the node B. Is the same as in the case of the network “R000” described above, and a description thereof will be omitted.
 従って、ネットワーク「R00」では、ネットワーク「R000」でノードBに書込まれたデータを復旧するために、構成情報管理部11は、ネットワーク「R000」でノードBに書込まれネットワーク「R00」でノードD,F,Gにレプリケーションされたデータを、ノードAに移動又は複製する(ステップS3~S5)。なお、ステップS3~S5においてデータのレプリケーション先をノードAとしたのは、ノードBが担当するべきであったデータをノードBの削除後に担当するノードがノードAであるという理由による。また、ノードD,F,Gには、ステップS1,S2のノードA,Cと同様に、ネットワーク「R000」でノードBに書込まれてレプリケーションされたデータ以外にも、他のネットワークで書込まれ、ネットワーク「R00」では削除前のノードBが担当すべきデータ等が書込まれている。このように複数の書込みノードから書込まれたデータの中から、ネットワーク「R000」で書込まれたデータを発見するために、構成情報管理部11は、データと同時に書込まれるメタデータを活用する。すなわち、構成情報管理部11は、ステップS3~S5でメタデータを参照し、メタデータにノードA,B,Cに関する情報が記載されているデータのみを復旧対象として、ノードD,F,GからノードAに移動又は複製すればよい。換言すると、構成情報管理部11は、メタデータに、データ復旧希望元ネットワークの下位層ハッシュリングネットワークのうち、削除ノードが含まれるハッシュリングネットワークに含まれるノードに関する情報が記載されているデータのみを復旧対象とする。 Therefore, in the network “R00”, in order to recover the data written in the node B in the network “R000”, the configuration information management unit 11 is written in the node B in the network “R000” and in the network “R00”. The data replicated to the nodes D, F, and G is moved or copied to the node A (steps S3 to S5). The reason that the data replication destination is set to node A in steps S3 to S5 is that the node that handles data that should have been handled by node B after deletion of node B is node A. In addition to nodes A, C in steps S1 and S2, nodes D, F, and G are written in other networks in addition to the data that is written and replicated in node B in network “R000”. In the network “R00”, data to be handled by the node B before deletion is written. In order to find the data written in the network “R000” from the data written from the plurality of writing nodes in this way, the configuration information management unit 11 utilizes the metadata written at the same time as the data. To do. That is, the configuration information management unit 11 refers to the metadata in steps S3 to S5, and restores only data in which information on the nodes A, B, and C is described in the metadata from the nodes D, F, and G. It may be moved or copied to node A. In other words, the configuration information management unit 11 includes only data in which information on nodes included in the hash ring network including the deleted node in the lower layer hash ring network of the data recovery request source network is described in the metadata. Target for recovery.
 次に、さらに上位層のネットワーク「R0」について考える。ネットワーク「R00」でノードBに書込まれたデータは、最上位層のネットワーク「R0」ではノードGにレプリケーションされる。従って、ネットワーク「R0」では、では、ネットワーク「R00」でノードBに書込まれたデータを復旧するために、構成情報管理部11は、ネットワーク「R00」でノードBに書込まれネットワーク「R0」でノードGにレプリケーションされたデータを、ノードGに移動又は複製する(ステップS6)。本例のようにデータの移動元と移動先とが同じノードである場合には、実際には移動処理や複製処理は発生しない。 Next, consider the higher-layer network “R0”. Data written to the node B in the network “R00” is replicated to the node G in the uppermost network “R0”. Therefore, in the network “R0”, in order to recover the data written in the node B in the network “R00”, the configuration information management unit 11 is written in the node B in the network “R00” and the network “R0”. The data replicated to the node G is moved or copied to the node G (step S6). When the data source and destination are the same node as in this example, no migration process or replication process actually occurs.
 なお、ステップS6においてデータのレプリケーション先をノードGとしたのは、ノードBが担当するべきであったデータを、ノードBの削除後に担当するノードがノードGであるという理由による。また、ノードGには、ステップS1,S2のノードA,CやステップS3~S5のノードD,F,Gと同様に、ネットワーク「R00」でノードBに書込まれてレプリケーションされたデータ以外にも、他のネットワークで書込まれ、ネットワーク「R0」では削除前のノードBが担当すべきデータ等が書込まれている。このように複数の書込みノードから書込まれたデータの中から、ネットワーク「R00」で書込まれたデータを発見するために、構成情報管理部11は、データと同時に書込まれるメタデータを活用する。すなわち、構成情報管理部11は、ステップS6でメタデータを参照し、メタデータにノードA~Gに関する情報が記載されているデータのみを復旧対象として、ノードGから移動又は複製すればよい。換言すれば、構成情報管理部11は、メタデータに、データ復旧希望元ネットワークの下位層ハッシュリングネットワークのうち、削除ノードが含まれるハッシュリングネットワークに含まれるノードに関する情報が記載されているデータのみを復旧対象とする。 Note that the reason why the data replication destination is set to the node G in step S6 is that the data that should have been handled by the node B is the node G after the deletion of the node B. Similarly to the nodes A and C in steps S1 and S2 and the nodes D, F, and G in steps S3 to S5, the node G includes data other than the data written to the node B and replicated in the network “R00”. Are written in another network, and data to be handled by the node B before deletion is written in the network “R0”. Thus, in order to find the data written in the network “R00” from the data written from the plurality of writing nodes, the configuration information management unit 11 utilizes the metadata written at the same time as the data. To do. That is, the configuration information management unit 11 refers to the metadata in step S6, and only moves or replicates data from the node G using only the data in which information related to the nodes A to G is described in the metadata as a recovery target. In other words, the configuration information management unit 11 includes only data in which information on nodes included in the hash ring network including the deleted node in the lower layer hash ring network of the data recovery request source network is described in the metadata. Is the recovery target.
 ここで、図11で説明したように、少なくとも最上位層のネットワーク「R0」は、ノードBに格納されたデータのレプリケーションデータを、同一ネットワーク内で一意に決定されるノード(例えばノードGとする)に保持している(図11のステップS213~S215参照)。従って、ネットワーク「R0」でノードBに書込まれたデータを復旧するために、構成情報管理部11は、ネットワーク「R0」でノードBに書込まれノードGにレプリケーションされたデータをノードGに移動又は複製する(ステップS7)。本例のようにデータの移動元と移動先とが同じノードである場合は、実際には移動処理や複製処理は発生しないが、ステップS6で、既にノードGに同一のデータが書込まれているので、ノードGから一意に決定されるノード(例えばノードE)に、レプリケーションされる。 Here, as described in FIG. 11, at least the highest-layer network “R0” has a node (for example, a node G) in which replication data of data stored in the node B is uniquely determined in the same network. (See steps S213 to S215 in FIG. 11). Therefore, in order to recover the data written in the node B in the network “R0”, the configuration information management unit 11 transfers the data written in the node B and replicated to the node G in the network “R0” to the node G. Move or duplicate (step S7). If the data source and destination are the same node as in this example, the migration process and replication process do not actually occur, but the same data has already been written to the node G in step S6. Therefore, replication is performed from a node G to a node uniquely determined (for example, node E).
 なお、ステップS7においてデータのレプリケーション先をノードGとしたのは、ノードBが担当するべきであったデータを、ノードBの削除後に担当するノードがノードGであるという理由による。また、ノードGには、これまで説明した他のノードA,C,D,F,Gと同様に、ネットワーク「R0」でノードBに書込まれてレプリケーションされたデータ以外にも、他のネットワークで書込まれたデータが書込まれている。このように複数の書込みノードから書込まれたデータの中から、ネットワーク「R0」で書込まれたデータを発見するために、構成情報管理部11は、データと同時に書込まれるメタデータを活用する。すなわち、構成情報管理部11は、ステップS7でメタデータを参照し、メタデータに全てのノードA~Mに関する情報が記載されているデータのみを復旧対象として、ノードGから移動又は複製すればよい。換言すれば、構成情報管理部11は、メタデータに、データ復旧希望元のネットワークの下位層ハッシュリングネットワークのうち、削除ノードが含まれるハッシュリングネットワークに含まれるノードに関する情報が記載されているデータのみを復旧対象とする。 Note that the reason why the data replication destination is the node G in step S7 is that the data that should have been handled by the node B is the node G after the deletion of the node B. In addition to the data that has been written and replicated in the node “B” in the network “R0”, the node G includes other networks as well as the other nodes A, C, D, F, and G described above. The data written in is written. In order to find data written in the network “R0” from data written from a plurality of write nodes in this way, the configuration information management unit 11 utilizes metadata written at the same time as the data. To do. That is, the configuration information management unit 11 refers to the metadata in step S7, and only moves or duplicates data from the node G by using only data in which information on all nodes A to M is described in the metadata as a recovery target. . In other words, the configuration information management unit 11 is data in which information on nodes included in the hash ring network in which the deleted node is included among the lower layer hash ring networks of the data recovery request source network is described in the metadata. Only the recovery target.
 そして最後に、少なくとも最上位層のネットワーク「R0」では、ノード削除時のデータ復旧で利用するために、図11のステップS7で移動又は複製の対象となったデータのレプリケーションを行う必要がある。従って、構成情報管理部11は、ステップS7で移動又は複製の対象となったデータを、ノードGから一意に決定されるノードEに、レプリケーションを実施する(ステップS8)。但し、本例では、ステップS7でノードEに既にデータがレプリケーションされているので、実際には、ノードEから一意に決定されるノードAにデータがレプリケーションされる。 Finally, at least the highest-layer network “R0” needs to replicate the data to be moved or copied in step S7 of FIG. 11 in order to use it for data recovery when the node is deleted. Therefore, the configuration information management unit 11 performs replication on the node E, which is uniquely determined from the node G, for the data to be moved or copied in step S7 (step S8). However, in this example, since the data has already been replicated to the node E in step S7, the data is actually replicated to the node A uniquely determined from the node E.
 上述したステップS1~S8の処理によって、分散データ管理システム1において、階層型ハッシュリングによる分散型データベースからノードが削除された場合に、分散型データベースを構成する残りのノードに、削除ノードに格納されていたデータを確実に格納させることができる。 When the node is deleted from the distributed database by the hierarchical hash ring in the distributed data management system 1 by the processing of steps S1 to S8 described above, the node is stored in the deleted node in the remaining nodes constituting the distributed database. The stored data can be securely stored.
(1-8)本実施の形態による効果
 このような分散データ管理システム1によれば、階層型ハッシュリングネットワークの構築に関して、構成情報管理部11が、階層ごとに地理空間上のクラスタリングポリシーを有するポリシーテーブル144に基づいてノードのクラスタリングを行うことによって、地理空間上の近傍性に基づいたハッシュリングネットワークを含む階層型ハッシュリングネットワークを構築することができる。このように構築された階層型ハッシュリングネットワークでは、例えば、あるノードで災害が発生して接続できなくなったとしても、同じハッシュリングネットワークに含まれる近傍のノードから、災害発生元のノードが属するネットワークに接続することによって、データにアクセスすることができるので、対災害性を確保することができる。
(1-8) Effects According to this Embodiment According to such a distributed data management system 1, regarding the construction of a hierarchical hash ring network, the configuration information management unit 11 has a geospatial clustering policy for each hierarchy. By performing clustering of nodes based on the policy table 144, a hierarchical hash ring network including a hash ring network based on proximity in a geospatial space can be constructed. In a hierarchical hash ring network constructed in this way, for example, even if a disaster occurs at a certain node and the connection becomes impossible, the network to which the disaster source node belongs from the neighboring nodes included in the same hash ring network Since data can be accessed by connecting to, disaster resistance can be ensured.
 また、このような分散データ管理システム1によれば、階層型ハッシュリングネットワークの構築に関して、図2及び図4のステップS106の処理で示したように、構成情報管理部11が、各ノードを構成するコンピュータの性能(スペック)を示すメトリックを収集し、各ノードについての許容最下層をメトリックに基づいて決定し、各ノードの階層型ハッシュリングネットワークにおける配置を、許容最下層を考慮して決定するので、計算リソースの性能が低いノード20をできるだけ下位層のハッシュリングネットワークに組込まないようにすることができる。従来は、ノードを構成するコンピュータの性能を考慮せずに階層型ハッシュリングネットワークを構築した場合に、低性能なコンピュータで構成されるノードにデータの書込が集中して、処理時間が増大し、当該データに対するアクセシビリティが低下するという課題があったが、分散データ管理システム1は、このようなアクセシビリティが低下する状況を回避し、ノードを構成するコンピュータのスペックに考慮して、階層型ハッシュリングネットワーク内の各ノードにおけるノード処理時間の偏りを低減させる効果を奏する。 Further, according to such a distributed data management system 1, regarding the construction of the hierarchical hash ring network, the configuration information management unit 11 configures each node as shown in the process of step S106 in FIGS. Metrics indicating the performance (spec) of the computer to be used are collected, the allowable lowest layer for each node is determined based on the metric, and the arrangement of each node in the hierarchical hash ring network is determined in consideration of the allowable lowest layer Therefore, it is possible to prevent the node 20 having a low performance of the calculation resource from being incorporated into the lower layer hash ring network as much as possible. Conventionally, when a hierarchical hash ring network is built without considering the performance of the computers that make up the nodes, data writing is concentrated on the nodes that are made up of low-performance computers, increasing processing time. However, the distributed data management system 1 avoids such a situation where accessibility is reduced, and takes into account the specifications of the computers constituting the nodes, and the hierarchical hash ring. There is an effect of reducing the unevenness of the node processing time at each node in the network.
 また、このような分散データ管理システム1によれば、階層型ハッシュリングネットワークの構築に関して、図4のステップS107の処理で示したように、構成情報管理部11が、同一階層における複数のサブネットワーク間で重複して存在し得るノードに対して、同一階層の他のサブネットワークに移動させる等して重複ノードの非重複化処理を行う。従来は、階層型ハッシュリングネットワークを構築する際に空間近傍性を考慮してサブネットワークを構成する場合には、同一階層における複数のサブネットワーク間でノードが重複して組み込まれる可能性があったが、分散データ管理システム1は、上述したように重複ノードに対する調整を行って階層型ハッシュリングネットワークを構築するので、特定のノードに負荷が偏る状況を回避する効果が期待できる。 Further, according to such a distributed data management system 1, regarding the construction of the hierarchical hash ring network, as shown in the process of step S107 in FIG. 4, the configuration information management unit 11 has a plurality of sub-networks in the same hierarchy. A node that can exist in a duplicated manner is deduplicated by moving the node to another subnetwork in the same hierarchy. Conventionally, when constructing a sub-network considering spatial proximity when constructing a hierarchical hash ring network, there is a possibility that nodes are duplicated and incorporated between multiple sub-networks in the same layer However, since the distributed data management system 1 adjusts overlapping nodes as described above to construct a hierarchical hash ring network, an effect of avoiding a situation in which the load is biased to a specific node can be expected.
 また、従来は、階層型ハッシュリングネットワークを構築する際に空間近傍性を考慮してサブネットワークを構成する場合には、構成されるサブネットワークは、ハッシュだけで形成される一次元ハッシュ空間が拡張されて、ハッシュ及び空間(地理やネットワーク)による二次元以上のハッシュ空間によってソートされ、二次元以上のハッシュ空間によってソートされたハッシュリングネットワークでは、一次元ハッシュ空間によってソートされた場合と比べてハッシュ空間に偏りが発生するため、各ノードにおいてデータの格納を担当する範囲が不均等になり、ノードごとの負担に偏りが生じてしまうという問題があった。これに対して、上述した分散データ管理システム1では、階層型ハッシュリングネットワークの構築に関して、図4のステップS108の処理で示したように、構成情報管理部11が、近傍ネットワークに組み込むノードをすることによって当該近傍ネットワークに対応するハッシュ空間を調整でき、特定のノードに負荷が偏ることを防止できる。 Also, in the past, when constructing a sub-network considering spatial proximity when constructing a hierarchical hash ring network, the sub-network to be constructed is expanded by a one-dimensional hash space formed only by hashes Hash ring network sorted by hash and space (geography and network) more than two dimensions and sorted by hash space more than two dimensions hashes compared to sort by one dimension hash space Since the space is biased, there is a problem that the range in which data is stored in each node becomes uneven and the burden on each node is biased. On the other hand, in the distributed data management system 1 described above, with respect to the construction of the hierarchical hash ring network, as shown in the process of step S108 in FIG. Thus, the hash space corresponding to the neighboring network can be adjusted, and the load can be prevented from being biased to a specific node.
 また、このような分散データ管理システム1では、構成情報制御部11が、データレプリケーションの実行のために十分なレプリケーション数を維持するように階層型ハッシュリングネットワークを構築するので、データレプリケーションによるデータ保護の効果を実現できる。なお、データレプリケーションに関する具体的な処理については、例えば、データ制御部21がデータを書込むときには、図11に示したように、同一ネットワーク内及び関連付けられた上位層ネットワーク内にデータレプリケーションを行う手順が明らかにされている。また、ノードを削除する場合にも、図14に示したように、レプリケーションのために必要となるノード数を確保することが明確にされている。 In such a distributed data management system 1, the configuration information control unit 11 constructs a hierarchical hash ring network so as to maintain a sufficient number of replications for executing data replication. The effect of can be realized. As for specific processing relating to data replication, for example, when the data control unit 21 writes data, as shown in FIG. 11, a procedure for performing data replication in the same network and in an associated upper layer network Has been revealed. Also, when deleting a node, as shown in FIG. 14, it has been clarified that the number of nodes necessary for replication is secured.
 また、このような分散データ管理システム1によれば、階層型ハッシュリングネットワークの構築に関して、図9に示すネットワーク構成ノード情報146によって階層型ハッシュリングネットワークにおけるネットワーク構成が明らかにされ、図10に示すネットワーク構成情報147によって各ノードが参加するネットワークの構成情報が明らかにされることから、階層間を跨ぐデータのアクセスが可能となる。その結果、分散データ管理システム1は、分散型データベースに対してデータの書込み(図11)、データの読込み、データの削除(図13)、ノードの追加、及びノードの削除(図14)といった処理を行う場合に、分散型データベースを構成する何れのノードからもデータにアクセスし、これらの処理を実行することができる。かくして、分散データ管理システム1によれば、対災害性を有し、どの構成ノードからもデータにアクセスできる分散型データベースを階層型ハッシュリングネットワークによって構築し、この分散型データベースに格納されたデータを管理することができる。 Further, according to such a distributed data management system 1, regarding the construction of the hierarchical hash ring network, the network configuration in the hierarchical hash ring network is clarified by the network configuration node information 146 shown in FIG. Since the network configuration information 147 clarifies the configuration information of the network in which each node participates, it is possible to access data across hierarchies. As a result, the distributed data management system 1 performs processing such as data writing to the distributed database (FIG. 11), data reading, data deletion (FIG. 13), node addition, and node deletion (FIG. 14). In this case, data can be accessed from any node constituting the distributed database, and these processes can be executed. Thus, according to the distributed data management system 1, a distributed database that has disaster resistance and can access data from any constituent node is constructed by a hierarchical hash ring network, and the data stored in the distributed database is stored in the distributed database. Can be managed.
(2)第2の実施の形態
 第2の実施の形態による分散データ管理システムは、階層型ハッシュリングネットワークによる分散型データベースを構築及び管理することを特徴とし、特に、地理空間上の近傍性を階層型ハッシュリングネットワークに適用できることを逆に応用して、地理空間上の遠方性を階層型ハッシュリングネットワークに適用し、ディザスタリカバリに好適な階層型ハッシュリングネットワークを構築する。
(2) Second Embodiment A distributed data management system according to the second embodiment is characterized by constructing and managing a distributed database based on a hierarchical hash ring network, and in particular, proximity in geospatial space. By applying the reverse of what can be applied to the hierarchical hash ring network, the geographical distance is applied to the hierarchical hash ring network to construct a hierarchical hash ring network suitable for disaster recovery.
(2-1)分散データ管理システムの構成
 第2の実施の形態による分散データ管理システム2の構成は、図1に示した分散データ管理システム1の構成と同じであり、説明を省略する。また、分散データ管理システム2では、階層ごとに1以上のレプリケーションデータが作成され、レプリケーションデータの数に応じて階層数が設定される。本実施の形態では、一例として、階層型ハッシュリングネットワークの階層数を4とする。従って、分散データ管理システム2が管理する階層型ハッシュリングネットワークにおけるレプリケーションデータの数は少なくとも4となる。
(2-1) Configuration of Distributed Data Management System The configuration of the distributed data management system 2 according to the second embodiment is the same as the configuration of the distributed data management system 1 shown in FIG. In the distributed data management system 2, one or more replication data is created for each tier, and the number of tiers is set according to the number of replication data. In this embodiment, as an example, the number of hierarchies of the hierarchical hash ring network is four. Therefore, the number of replication data in the hierarchical hash ring network managed by the distributed data management system 2 is at least four.
(2-2)階層型ハッシュリングネットワークの構築
 図15は、第2の実施の形態による分散データ管理システムにおいて、階層型ハッシュリングネットワークを構築する処理手続を示すフローチャートである。図15を参照しながら、第2の実施の形態による分散データ管理システム2において、ノードA~Mが参加する階層型ハッシュリングネットワークを構築する処理手続について説明する。
(2-2) Construction of Hierarchical Hash Ring Network FIG. 15 is a flowchart showing a processing procedure for constructing a hierarchical hash ring network in the distributed data management system according to the second embodiment. With reference to FIG. 15, a processing procedure for constructing a hierarchical hash ring network in which nodes A to M participate in the distributed data management system 2 according to the second embodiment will be described.
 まず、構成情報作成部112が、ノードA~Mのハッシュ値を導出し(ステップS401)、導出したハッシュ値に基づいて第0層ネットワークを作成し(ステップS402)、最下層(第3層)ネットワークを作成する(ステップS403)までの処理は、図4に示したステップS101~103の処理と同じであるので、説明を省略する。 First, the configuration information creation unit 112 derives the hash values of the nodes A to M (step S401), creates the 0th layer network based on the derived hash value (step S402), and the lowest layer (third layer). The processing up to network creation (step S403) is the same as the processing of steps S101 to S103 shown in FIG.
 次に、構成情報作成部112は、地理空間の近傍性に基づく近傍ネットワークをm層(mは変数)作成する(ステップS404~S410)。ここではm=1とする。ステップS404では、構成情報作成部112は、各階層に割当てられたノード20に対して、階層ごとに地理空間上のポリシーに基づいてノード20をクラスタリングする。 Next, the configuration information creation unit 112 creates m layers (where m is a variable) of neighborhood networks based on the proximity of geospace (steps S404 to S410). Here, m = 1. In step S <b> 404, the configuration information creation unit 112 clusters the nodes 20 on the basis of a policy in the geospace for each hierarchy with respect to the nodes 20 assigned to each hierarchy.
 図16は、図15に示す処理で用いられるクラスタリングのポリシー例を示すテーブルである。図15に示す階層型ハッシュリングネットワークの構築処理では、図16に示すポリシーテーブル149が適用される。図16に示すポリシーテーブル149は、第何層のネットワークかが記載される層欄149Aと、地理空間を基準とする場合のポリシーが記載されるポリシー(地理空間)欄149Bとを有して構成される。 FIG. 16 is a table showing an example of a clustering policy used in the processing shown in FIG. In the construction process of the hierarchical hash ring network shown in FIG. 15, the policy table 149 shown in FIG. 16 is applied. The policy table 149 shown in FIG. 16 includes a layer column 149A in which the number of layers of networks is described, and a policy (geospace) column 149B in which a policy based on a geospace is described. Is done.
 図16に示すクラスタリングポリシーが、図5に示した第1の実施の形態のクラスタリングポリシーと異なる点は、ネットワーク空間を基準とする場合のポリシーを有していないことと、第1層のポリシー(地理空間)の内容が異なることである。図16に示すポリシーテーブル149によれば、第1層は、「市町村領域によるクラスタリング」という条件に加え、「第2層ネットワークと最も距離が遠いネットワークである」という条件によってクラスタリングされる。すなわち、図15に示す階層型ハッシュリングネットワークの構成処理では、第2層に地理空間上の近傍性に基づいてクラスタリングされた近傍ネットワークが形成され、第1層には、地理空間上の近傍性に基づいてクラスタリングされ、かつ、第2層の近傍ネットワークからの遠方性を有するネットワーク(遠方性近傍ネットワーク)が形成される。なお、図16に示すポリシーテーブル149には、図5に示したポリシーテーブル144のポリシー(ネットワーク空間)欄144Cのように、ネットワーク空間上のポリシーを併せて持つように構成されてもよい。 The clustering policy shown in FIG. 16 is different from the clustering policy of the first embodiment shown in FIG. 5 in that it does not have a policy when the network space is used as a reference, and the first layer policy ( The content of (geographic space) is different. According to the policy table 149 shown in FIG. 16, the first layer is clustered according to the condition “the network farthest from the second layer network” in addition to the condition “clustering by municipality”. That is, in the configuration processing of the hierarchical hash ring network shown in FIG. 15, a neighborhood network clustered based on the proximity in the geospatial is formed in the second layer, and the proximity in the geospatial is formed in the first layer. And a network having a distant property from the second-layer neighboring network (distant neighboring network) is formed. Note that the policy table 149 shown in FIG. 16 may be configured to have a policy in the network space as in the policy (network space) column 144C of the policy table 144 shown in FIG.
 次に、ステップS405において、構成情報作成部112は、ステップS404で作成された近傍ネットワーク(遠方性近傍ネットワークを含む)に対して、各クラスタ間で関連付けを行う。具体的には、図16のポリシーテーブル149に記載されたクラスタリングポリシーに基づいて、構成情報作成部112は、第2層の各ハッシュリングネットワークに対して、ディザスタリカバリ用として最適なクラスタを関連付ける。具体的には、構成情報作成部112は、第2層のハッシュリングネットワークからの距離が最大となるクラスタを対応関係とする。 Next, in step S405, the configuration information creation unit 112 associates each cluster with the neighborhood network created in step S404 (including the distant neighborhood network). Specifically, based on the clustering policy described in the policy table 149 of FIG. 16, the configuration information creation unit 112 associates an optimum cluster for disaster recovery with each second-layer hash ring network. Specifically, the configuration information creating unit 112 sets a cluster having a maximum distance from the second layer hash ring network as a correspondence relationship.
 なお、ステップS405において、複数の階層間でそれぞれのハッシュリングネットワークを対応付ける方法は限定されるものではなく、特にディザスタリカバリ用の対応付けを行う場合においても同様である。また、第2層のハッシュリングネットワークからの距離に基づいて第1層のハッシュリングネットワークを関連付けるためには、階層間に跨るハッシュリングネットワークの距離を求める必要が考えられるが、階層間に跨るハッシュリングネットワークの距離を求める方法としては、例えば、各クラスタに関して統一された座標によって、クラスタ間の距離を導出する等の方法を用いることができる。ここで、各クラスタに関して統一された座標とは、例えば、矩形領域の所定の位置(頂点座標や中心座標等)に相当する。 In step S405, the method for associating each hash ring network between a plurality of hierarchies is not limited, and the same applies particularly when performing disaster recovery association. In addition, in order to associate the first layer hash ring network based on the distance from the second layer hash ring network, it may be necessary to determine the distance of the hash ring network between layers. As a method for obtaining the distance of the ring network, for example, a method of deriving the distance between the clusters using coordinates unified with respect to each cluster can be used. Here, the coordinate coordinated with respect to each cluster corresponds to, for example, a predetermined position (vertex coordinate, center coordinate, etc.) of the rectangular area.
 次に、構成情報作成部112は、メトリックテーブル141を参照し、自ノードのみを含む最下層ネットワークを除き、計算リソースの性能が低いノードはできるだけ下位層のハッシュリングネットワークに組み込まないように、各ノード20についての許容最下層を決定する(ステップS406)。許容最下層を決定する際の具体的な方法例は、図4のステップS106で説明した方法例を適用することができるので、詳細な説明は省略する。 Next, the configuration information creation unit 112 refers to the metric table 141, except for the lowest layer network including only its own node, so that nodes with low performance of calculation resources are not incorporated into the lower layer hash ring network as much as possible. An allowable lowest layer for the node 20 is determined (step S406). Since a specific method example when determining the allowable lowest layer can be applied to the method example described in step S106 of FIG. 4, detailed description thereof is omitted.
 その後、構成情報作成部112が、近傍ネットワークの調整を行い(ステップS407,S408)、上位層のネットワークに含まれるノード数と下位層のネットワークに含まれるノード数とを比較し(ステップS409)、必要に応じてネットワークの調整値を修正する(ステップS410)処理は、図4のステップS107~S110に示した処理と同様であるので説明を省略する。 Thereafter, the configuration information creation unit 112 adjusts the neighborhood network (steps S407 and S408), compares the number of nodes included in the upper layer network with the number of nodes included in the lower layer network (step S409), and The process of correcting the adjustment value of the network as necessary (step S410) is the same as the process shown in steps S107 to S110 of FIG.
 そして最後に、構成情報作成部112が、ステップS401~S410の処理によって生成した階層型ネットワークについて、構成テーブルを生成し、構成情報転送制御部113が、構成テーブルに基づくネットワーク構成情報を、ノードA~Mの各テーブル管理部214に転送する(ステップS411)。ステップS411の処理は、図4のステップS111に示した処理と同様であるので、詳細な説明を省略する。このようなステップS401~S411の処理によって、分散データ管理システム2においては、階層型ハッシュリングネットワークによる分散型データベースが構築される。 Finally, the configuration information creation unit 112 generates a configuration table for the hierarchical network generated by the processes in steps S401 to S410, and the configuration information transfer control unit 113 stores the network configuration information based on the configuration table in the node A. The data is transferred to each of the table management units 214 (step S411). Since the process of step S411 is the same as the process shown in step S111 of FIG. 4, detailed description thereof is omitted. Through the processing in steps S401 to S411, the distributed data management system 2 builds a distributed database using a hierarchical hash ring network.
(2-3)階層型ハッシュリングネットワークの構造
 図17は、第2の実施の形態における階層型ハッシュリングネットワークの構成例を示す概略図である。そして、図18は、図17に示す階層型ハッシュリングネットワークにおけるネットワーク構成ノード情報を示すテーブル例である。図18に示すネットワーク構成ノード情報150は、図9に示したネットワーク構成ノード情報146と同様のテーブル項目(ノード欄150A、ノードハッシュ欄150B、許容最下層ネットワーク欄150C、近傍ノード欄150D、アドレス欄150E)に加えて、ノード欄150Aに記載されたノードに対して地理空間上の遠方に存在するノードが記載される遠方ノード欄150Fを有して構成される。
(2-3) Structure of Hierarchical Hash Ring Network FIG. 17 is a schematic diagram illustrating a configuration example of a hierarchical hash ring network according to the second embodiment. FIG. 18 is an example of a table showing network configuration node information in the hierarchical hash ring network shown in FIG. The network configuration node information 150 shown in FIG. 18 includes the same table items as the network configuration node information 146 shown in FIG. 9 (node column 150A, node hash column 150B, allowable lowest layer network column 150C, neighboring node column 150D, address column). In addition to 150E), a remote node column 150F in which a node existing far in the geographical space is described with respect to the node described in the node column 150A is configured.
 以下では、図17に示す階層型ハッシュリングネットワークの構造を階層ごとに説明する。 Hereinafter, the structure of the hierarchical hash ring network shown in FIG. 17 will be described for each hierarchy.
 図17に示す階層型ハッシュリングネットワークの第0層には、全ノード(ノードA~M)を含む1つのネットワーク「R0」が生成される。リング状のネットワーク「R0」において、ノードA~Mは、ノードA~Mがそれぞれ有するIDからハッシュ関数(例えばMD5)を利用して導出されるハッシュ値に基づいて、リング状に構成される。ここで、図19は、ネットワーク構成情報の一例を示すテーブル図である。図19は、構成情報作成部112が図17に示す階層型ハッシュリングネットワークを生成した後に、図15のステップS411で構成情報転送制御部113がノードAのテーブル管理部214に転送するネットワーク構成情報である。図19に示すネットワーク構成情報151のテーブル構成は、図10に示したネットワーク構成情報147のテーブル構成と同様であり、ネットワーク名、ノードハッシュ値、及びアドレスが記載されている。図19のネットワーク構成情報151からは、ノードAが含まれるネットワーク(具体的にはネットワーク名「R0」,「R00」,「R000」,「R0000」)と、ノードAが含まれるネットワークに参加しているノードについてのノードハッシュ値及びアドレスとを読取ることができる。 In the layer 0 of the hierarchical hash ring network shown in FIG. 17, one network “R0” including all nodes (nodes A to M) is generated. In the ring-shaped network “R0”, the nodes A to M are configured in a ring shape based on hash values derived from the IDs of the nodes A to M using a hash function (for example, MD5). Here, FIG. 19 is a table showing an example of network configuration information. FIG. 19 shows network configuration information that the configuration information transfer control unit 113 transfers to the table management unit 214 of the node A in step S411 of FIG. 15 after the configuration information creation unit 112 generates the hierarchical hash ring network shown in FIG. It is. The table configuration of the network configuration information 151 illustrated in FIG. 19 is the same as the table configuration of the network configuration information 147 illustrated in FIG. 10, and describes a network name, a node hash value, and an address. From the network configuration information 151 of FIG. 19, the network including the node A (specifically, the network names “R0”, “R00”, “R000”, “R0000”) and the network including the node A are joined. The node hash value and address for the current node can be read.
 また、図17に示す階層型ハッシュリングネットワークの第2層には、狭い地域の地理的空間上の近傍領域にあるノードが参加して構成される近傍ネットワーク「R000」,「R100」が生成される。ネットワーク「R000」はノードA,B,Cを含み、ネットワーク「R100」はノードD,E,Gを含む第2層ネットワークである。ここで、ノードD,I,J,Lは、ノードが低性能であること、又は、図16のポリシーテーブル149に記載されたクラスタリングポリシーに適合しなかったこと等を理由として、第2層ネットワークに属していないとする。 Also, in the second layer of the hierarchical hash ring network shown in FIG. 17, neighboring networks “R000” and “R100” configured by participation of nodes in neighboring areas on a narrow geographical area are generated. The The network “R000” includes nodes A, B, and C, and the network “R100” is a second layer network including nodes D, E, and G. Here, the nodes D, I, J, and L are the second layer network because the node has low performance or does not conform to the clustering policy described in the policy table 149 of FIG. Suppose you don't belong to.
 また、図17に示す階層型ハッシュリングネットワークの第1層には、第2層のネットワーク「R000」もしくは「R100」に対応する広域な地理空間上の遠方領域により構成される遠方性近傍ネットワーク「R00」,「R10」が生成される。ネットワーク「R00」はノードH、I,J,Kを含み、ネットワーク「R10」はノードL,Mを含む第1層ネットワークである。 In addition, the first layer of the hierarchical hash ring network shown in FIG. 17 includes a distant neighborhood network “consisting of a distant area in a wide geographical space corresponding to the network“ R000 ”or“ R100 ”of the second layer. R00 "and" R10 "are generated. The network “R00” includes nodes H, I, J, and K, and the network “R10” is a first layer network including nodes L and M.
 また、図17に示す階層型ハッシュリングネットワークの第3層(最下層)には、ノードA~Mについて自身のノードだけを含むネットワーク「R0000」~「R1101」が生成されている。 Further, in the third layer (lowermost layer) of the hierarchical hash ring network shown in FIG. 17, networks “R0000” to “R1101” including only their own nodes are generated for the nodes A to M.
 このように、分散データ管理システム2において生成される階層型ハッシュリングネットワークは、近傍ネットワークによる第2層ネットワークと、第2層ネットワークに対して遠方性を有する遠方性近傍ネットワークによる第1層ネットワークとが関連付けられるので、地理空間上の遠方地にデータを格納することが可能となる。 As described above, the hierarchical hash ring network generated in the distributed data management system 2 includes the second layer network based on the neighborhood network, and the first layer network based on the far neighborhood network having distantness with respect to the second layer network. Are associated with each other, so that it is possible to store data in a remote place in the geospace.
 なお、第2の実施の形態による分散データ管理システム2では、階層型ハッシュリングネットワークによる分散型データベースに対して、データを書込む方法、データを読込む方法、データを削除する方法、ノードを追加する方法、ノードを削除する方法及び削除したノードのデータを復旧する方法は、第1の実施の形態による分散データ管理システム1で説明した同様の処理を適用することができるので、説明を省略する。 In the distributed data management system 2 according to the second embodiment, a method for writing data, a method for reading data, a method for deleting data, and a node are added to a distributed database using a hierarchical hash ring network. Since the same processing described in the distributed data management system 1 according to the first embodiment can be applied to the method of deleting, deleting the node, and recovering the data of the deleted node, the description thereof is omitted. .
(2-4)本実施の形態による効果
 このような分散データ管理システム2によれば、階層型ハッシュリングネットワークの構築に関して、地理空間上の近傍性に基づいて構成される近傍ネットワーク(例えば図17に示す階層型ハッシュリングネットワークにおける第2層ネットワーク)と、地理空間上の遠方性を有する遠方性近傍ネットワーク(例えば図17に示す階層型ハッシュリングネットワークにおける第1層ネットワーク)とが対応付けられることにより、地理空間上の遠方地にもデータを格納することができる。かくして、分散データ管理システム2は、第1の実施の形態による分散データ管理システム1よりもディザスタリカバリに好適な分散型データベースを構築することができ、災害発生時等に回復力のある(レジリエントな)分散型データベースを実現することができる。
(2-4) Effects According to this Embodiment According to the distributed data management system 2 described above, with regard to the construction of the hierarchical hash ring network, the neighborhood network configured based on the proximity in the geospace (for example, FIG. 17). Is associated with a distant neighborhood network having a distant property in geospace (for example, a first layer network in the hierarchical hash ring network shown in FIG. 17). As a result, data can be stored in a remote place in a geographic space. Thus, the distributed data management system 2 can construct a distributed database that is more suitable for disaster recovery than the distributed data management system 1 according to the first embodiment, and is more resilient in the event of a disaster (resilient). ) A distributed database can be realized.
 詳しく説明すると、分散データ管理システム2によれば、第2層ネットワークのように地理空間上の近傍性に基づいた近傍ネットワークを有することによって、第1の実施の形態における分散データ管理システム1と同様に、対災害性を確保することができる。さらに、分散データ管理システム2によれば、大規模な災害によって、1つの近傍ネットワーク内の全てのノードに接続できなくなったとしても、当該近傍ネットワークに対して地理空間上の遠方性を有する遠方性近傍ネットワークが対応付けられていることによって、当該近傍ネットワーク内のノードに格納されていたデータに接続することができる。また、これらのデータは遠方性近傍ネットワークを構成する遠隔地のノードにも格納されることから、大規模災害から当該データの消失を防止するデータ保護の効果も期待できる。 More specifically, according to the distributed data management system 2, by having a neighborhood network based on the proximity in the geospatial like the second layer network, it is the same as the distributed data management system 1 in the first embodiment. In addition, disaster resistance can be ensured. Furthermore, according to the distributed data management system 2, even if a large-scale disaster makes it impossible to connect to all the nodes in one neighboring network, the remoteness having a geo-spaced distance to the neighboring network By associating the neighboring network, it is possible to connect to the data stored in the node in the neighboring network. In addition, since these data are also stored in remote nodes constituting the distant neighborhood network, it is possible to expect a data protection effect that prevents the loss of the data from a large-scale disaster.
 また、このような分散データ管理システム2は、分散データ管理システム1と同様の構成を有し、階層型ハッシュリングネットワークに対するデータアクセスに関する処理も分散データ管理システム1と同様の処理が適用されることから、第1の実施の形態による効果も実現できる。 Further, such a distributed data management system 2 has the same configuration as the distributed data management system 1, and the same processing as the distributed data management system 1 is applied to the processing related to data access to the hierarchical hash ring network. Thus, the effect of the first embodiment can also be realized.
(3)他の実施の形態
 なお、上述の第1及び第2の実施の形態による分散データ管理システム1,2では、コアノード10とノード20A~20Nとを明示的に分けた場合について述べたが、本発明はこれに限らず、例えば、コアノード10の機能がノード20A~20Nのうちの何れかに配置されるように構成されてもよく、又は、コアノード10自身がノード20と同様にデータを格納して階層型ハッシュリングネットワークに参加するように構成されてもよい。このような場合に、コアノード10に専用の装置を使用しなくても第1又は第2の実施の形態による分散データ管理システム1,2を実現することができ、汎用性の向上が期待できる。
(3) Other Embodiments In the distributed data management systems 1 and 2 according to the first and second embodiments described above, the case where the core node 10 and the nodes 20A to 20N are explicitly separated has been described. The present invention is not limited to this. For example, the function of the core node 10 may be arranged in any of the nodes 20A to 20N, or the core node 10 itself may store data in the same manner as the node 20. It may be configured to store and participate in a hierarchical hash ring network. In such a case, the distributed data management systems 1 and 2 according to the first or second embodiment can be realized without using a dedicated device for the core node 10, and an improvement in versatility can be expected.
 また、上述の第1及び第2の実施の形態による分散データ管理システム1,2では、ノード20A~20Nが、それぞれ1つの情報処理装置である場合について述べたが、本発明はこれに限らず、例えば、ノード20A~20Nが、それぞれ複数ノードが集合して構成されるデータセンタで構成されてもよい。このような場合には、各データセンタのメトリックは、図2に示したメトリック管理テーブル141,142のように、データセンタ内の複数のノードそれぞれについて、ノードのメトリックを列挙するようにしてもよく、データセンタごとにメトリックの平均値等によって丸めた値を用いてもよく、データセンタごとにメトリックの最低値及び最大値を示す等の方法を採用してもよい。このように構成された分散データ管理システムでは、複数のデータセンタを組込んで階層型ハッシュリングネットワークによる分散型データベースを構築することができるので、より多くのデータ及びノードを取り扱うことができ、大規模な分散データ管理を実現することができる。 In the distributed data management systems 1 and 2 according to the first and second embodiments described above, the nodes 20A to 20N are each one information processing apparatus. However, the present invention is not limited to this. For example, each of the nodes 20A to 20N may be configured by a data center configured by a plurality of nodes. In such a case, the metrics of each data center may list node metrics for each of a plurality of nodes in the data center as in the metric management tables 141 and 142 shown in FIG. A value rounded by an average value of a metric for each data center may be used, and a method of indicating a minimum value and a maximum value of a metric for each data center may be employed. In the distributed data management system configured as described above, a distributed database based on a hierarchical hash ring network can be built by incorporating a plurality of data centers, so that more data and nodes can be handled. Large-scale distributed data management can be realized.
 また、上述の第1及び第2の実施の形態による分散データ管理システム1,2では、動的なメトリックの一例として、CPU等の内部構成要素における現在の「使用率」を取得したメトリック管理テーブル141について述べたが、本発明はこれに限らず、例えば、メトリックとして、使用率の最新のデータと過去のデータとから生成される移動平均値を用いたり、さらには、過去のデータを同時に参照したりしてもよい。このような分散データ管理システムでは、様々な態様のメトリックを用いることによって、ノード20のメトリックをより細かく取得することができるので、より緻密な状況分析のもとで、スペックのメトリックに応じた分散型データベースの構築を実現することができる。 Further, in the distributed data management systems 1 and 2 according to the first and second embodiments described above, a metric management table that acquires the current “usage rate” of internal components such as a CPU as an example of a dynamic metric. 141, but the present invention is not limited to this. For example, the moving average value generated from the latest data of the usage rate and the past data is used as the metric, or the past data is referred to at the same time. You may do it. In such a distributed data management system, the metrics of the node 20 can be obtained in more detail by using various types of metrics. Therefore, the distribution according to the metric of the specification is performed based on a more detailed situation analysis. Construction of a type database can be realized.
 また、上述の第1及び第2の実施の形態による分散データ管理システム1,2では、図4又は図15に示した処理によって生成された階層型ハッシュリングネットワークの構成を、図3に示す管理者サービス設定画面143のように、コアノード10又はコアノードに接続される管理者端末の表示部に表示することにより、生成した階層型ハッシュリングネットワークの構成を管理者に提供するように構成されてもよい。このような場合に、表示部に、例えば図8又は図17に示したような階層型ハッシュリングネットワークの構成を表示することにより、管理者は視覚的に分散型データベースの構造を認識することができるので、より簡単に分散データ管理システムを利用することができる。 In the distributed data management systems 1 and 2 according to the first and second embodiments described above, the configuration of the hierarchical hash ring network generated by the process shown in FIG. As shown in the administrator service setting screen 143, the configuration of the generated hierarchical hash ring network may be provided to the administrator by displaying it on the display unit of the core node 10 or the administrator terminal connected to the core node. Good. In such a case, the administrator can visually recognize the structure of the distributed database by displaying the configuration of the hierarchical hash ring network as shown in FIG. 8 or FIG. 17 on the display unit. Therefore, the distributed data management system can be used more easily.
 また、上述の第1及び第2の実施の形態による分散データ管理システム1,2において、図8に例示した第0層ネットワーク「R0」は、複数のノードの全集合から構成される最上位オーバレイネットワークの一例であり、第1層ネットワーク「R00」,「R10」や第2層ネットワーク「R000」,「R001」,「R100」は、複数のノードの部分集合から構成されるサブオーバレイネットワークの一例であり、最下層(第3層)ネットワーク「R0000」~「R1101」は、複数のノードの単元から構成される単元オーバレイネットワークの一例である。そして、コアノード10によって構築される階層型ハッシュリングネットワークは、最上位オーバレイネットワーク、サブオーバレイネットワーク、及び単元オーバレイネットワークが順に階層化された階層型オーバレイネットワークの一例である。また、図9に例示したネットワーク構成情報146のノードハッシュ欄146Bに記載されたノードハッシュ値は、複数のノードの集合に亘って確率的に均一な番号を示すノード番号の一例であり、データキー「q」に対するMD5によるハッシュ値「7694f4a66316e53c8cdd9d9954bd611d」は、ノードに格納されるデータから得られる確率的に均一な番号を示すデータ番号の一例である。 Further, in the distributed data management systems 1 and 2 according to the first and second embodiments described above, the 0th layer network “R0” illustrated in FIG. 8 has the highest overlay composed of a total set of a plurality of nodes. An example of a network, the first layer networks “R00” and “R10” and the second layer networks “R000”, “R001”, and “R100” are examples of a sub-overlay network configured by a subset of a plurality of nodes. The lowermost layer (third layer) networks “R0000” to “R1101” are an example of a unit overlay network composed of units of a plurality of nodes. The hierarchical hash ring network constructed by the core node 10 is an example of a hierarchical overlay network in which a top overlay network, a sub-overlay network, and a unit overlay network are sequentially layered. Further, the node hash value described in the node hash field 146B of the network configuration information 146 illustrated in FIG. 9 is an example of a node number that indicates a number that is stochastically uniform over a set of a plurality of nodes. The hash value “7694f4a66316e53c8cdd9d9954bd611d” by MD5 for “q” is an example of a data number indicating a stochastic uniform number obtained from data stored in the node.
 なお、本発明は上記した実施の形態に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施の形態は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施の形態の構成の一部を他の実施の形態の構成に置き換えることが可能であり、また、ある実施の形態の構成に他の実施の形態の構成を加えることも可能である。また、各実施の形態の構成の一部について、他の構成の追加・削除・置換をすることが可能である。 Note that the present invention is not limited to the above-described embodiment, and includes various modifications. For example, the above-described embodiment has been described in detail for easy understanding of the present invention, and is not necessarily limited to one having all the configurations described. Further, a part of the configuration of one embodiment can be replaced with the configuration of another embodiment, and the configuration of another embodiment can be added to the configuration of one embodiment. . Further, it is possible to add, delete, and replace other configurations for a part of the configuration of each embodiment.
 また、上記の各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク、SSD(Solid State Drive)等の記録装置、または、ICカード、SDカード、DVD等の記録媒体に置くことができる。また、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。実施には殆ど全ての構成が相互に接続されていると考えてもよい。 Information such as programs, tables, and files for realizing the above functions is stored in a recording device such as a memory, hard disk, SSD (Solid State Drive), or a recording medium such as an IC card, SD card, or DVD. be able to. Further, the control lines and information lines indicate what is considered necessary for the explanation, and not all the control lines and information lines on the product are necessarily shown. In practice, it may be considered that almost all components are connected to each other.
 1,2 分散データ管理システム
 10  コアノード
 11  構成情報管理部
 111 メトリック管理部
 112 構成情報作成部
 113 構成情報転送制御部
 20(20A~20N) ノード
 21  データ制御部
 212 データ書込制御部
 213 データ読込制御部
 214 テーブル管理部
 22  メトリック取得部
 234 ストレージユニット
 235 CPU
 236 メモリ
 30  ネットワーク
 
1, 2 Distributed data management system 10 Core node 11 Configuration information management unit 111 Metric management unit 112 Configuration information creation unit 113 Configuration information transfer control unit 20 (20A to 20N) Node 21 Data control unit 212 Data write control unit 213 Data read control Unit 214 Table management unit 22 Metric acquisition unit 234 Storage unit 235 CPU
236 memory 30 network

Claims (12)

  1.  ネットワーク上で相互に接続されデータを格納する複数のノードと、
     前記複数のノードに接続され、前記複数のノードの全集合から構成される最上位オーバレイネットワークと、前記複数のノードの部分集合から構成されるサブオーバレイネットワークと、前記複数のノードの単元から構成される単元オーバレイネットワークとを、順に階層化した階層型オーバレイネットワークを構築し、前記階層型オーバレイネットワークによって前記データを管理するコアノードと、
     を有し、
     前記複数のノードには、前記複数のノードの集合に亘って確率的に均一な番号を示すノード番号がそれぞれ割当てられ、
     前記階層型オーバレイネットワークに含まれる各オーバレイネットワークは、該オーバレイネットワークを構成する各ノードに割当てられた前記ノード番号と、ノードに格納されるデータから得られる確率的に均一な番号を示すデータ番号とに基づいて、当該ネットワークにおいて当該データを格納するノードが決定されるリング型のネットワークであり、
     前記コアノードは、前記階層型オーバレイネットワークを構築するときに、
     地理空間上の距離に基づいて決定される前記複数のノードの部分集合によって前記サブオーバレイネットワークを構成し、
     前記最上位オーバレイネットワーク、前記サブオーバレイネットワーク、前記単元オーバレイネットワークの順で階層間を関連付け、
     前記階層型オーバレイネットワークを構成する各ノードについて、該ノードが含まれる全てのオーバレイネットワークを示す情報と該オーバレイネットワークを構成する全てのノードに関する情報とを有するネットワーク構成情報を生成して前記各ノードに転送し、
     前記複数のノードは、前記転送されたネットワーク構成情報を保持し、
     前記複数のノードは、前記階層型オーバレイネットワークにデータを書込むときに、当該データを書込んだ前記単元オーバレイネットワークに関連付けられた各オーバレイネットワークにおいて、当該データをレプリケートする
     ことを特徴とする分散データ管理システム。
    Multiple nodes connected to each other on the network to store data,
    A top overlay network connected to the plurality of nodes and composed of a total set of the plurality of nodes, a sub-overlay network composed of a subset of the plurality of nodes, and a unit of the plurality of nodes. A unitary overlay network, a hierarchical overlay network that is hierarchized in order, and a core node that manages the data by the hierarchical overlay network;
    Have
    Each of the plurality of nodes is assigned a node number indicating a stochastic uniform number across the set of the plurality of nodes,
    Each overlay network included in the hierarchical overlay network includes the node number assigned to each node constituting the overlay network, and a data number indicating a stochastic uniform number obtained from data stored in the node. Is a ring network in which a node for storing the data is determined in the network,
    When the core node constructs the hierarchical overlay network,
    Configuring the sub-overlay network by a subset of the plurality of nodes determined based on a geospatial distance;
    Associating layers in the order of the top-level overlay network, the sub-overlay network, and the unit overlay network;
    For each node constituting the hierarchical overlay network, network configuration information including information indicating all the overlay networks including the node and information regarding all nodes constituting the overlay network is generated to each node. Forward,
    The plurality of nodes hold the transferred network configuration information,
    The plurality of nodes, when writing data to the hierarchical overlay network, replicates the data in each overlay network associated with the unit overlay network to which the data has been written. Management system.
  2.  前記複数のノードは、自ノードの性能を示す所定のパラメータ値を取得し、
     前記コアノードは、前記複数のノードでそれぞれ取得されたパラメータ値を収集し、前記階層型オーバレイネットワークを構築するときに、前記収集したパラメータ値に基づいて、各ノードが参加し得る前記サブオーバレイネットワークの階層を制限する
     ことを特徴とする請求項1記載の分散データ管理システム。
    The plurality of nodes acquire a predetermined parameter value indicating the performance of the node,
    The core node collects parameter values respectively acquired by the plurality of nodes, and constructs the hierarchical overlay network, and based on the collected parameter values, the sub-overlay network in which each node can participate. The distributed data management system according to claim 1, wherein the hierarchy is limited.
  3.  前記コアノードは、同一階層の前記サブオーバレイネットワーク間に重複して割当てられたノードを評価し、重複を許可しない評価結果が得られた場合に該ノードの重複割当を排除する
     ことを特徴とする請求項2記載の分散データ管理システム。
    The core node evaluates a node allocated redundantly between the sub-overlay networks in the same hierarchy, and eliminates the redundant allocation of the node when an evaluation result that does not permit duplication is obtained. Item 3. A distributed data management system according to item 2.
  4.  前記コアノードは、前記サブオーバレイネットワークを構成するノード間の前記ノード番号に対する空間上の距離を評価し、前記空間上の距離が所定の閾値以上であった場合には、該サブオーバレイネットワークに関連付けられた上位の階層の前記サブオーバレイネットワーク又は最上位オーバレイネットワークに割当てられたノードを、該サブオーバレイネットワークに追加する
     ことを特徴とする請求項3記載の分散データ管理システム。
    The core node evaluates a spatial distance with respect to the node number between nodes constituting the sub-overlay network, and if the spatial distance is equal to or greater than a predetermined threshold, the core node is associated with the sub-overlay network. 4. The distributed data management system according to claim 3, wherein a node assigned to the sub-overlay network or the highest overlay network in a higher hierarchy is added to the sub-overlay network.
  5.  前記階層型オーバレイネットワークは、前記関連付けられた前記オーバレイネットワークの各階層間において、上位の階層のオーバレイネットワークを構成するノード数が、下位の階層のオーバレイネットワークを構成するノード数よりも2以上多くなるように構築される
     ことを特徴とする請求項4記載の分散データ管理システム。
    In the hierarchical overlay network, the number of nodes constituting the upper layer overlay network is two or more than the number of nodes constituting the lower layer overlay network between the layers of the associated overlay network. The distributed data management system according to claim 4, wherein the distributed data management system is constructed as follows.
  6.  前記コアノードは、地理空間上の距離の近さに基づいて決定される前記複数のノードの部分集合によって構成される第1の前記サブオーバレイネットワークと、前記第1のサブオーバレイネットワークに対して上位の階層に関連付けられる第2の前記サブオーバレイネットワークとを含むように前記階層型オーバレイネットワークを構築し、
     前記第2のサブオーバレイネットワークを構成するノードは、地理空間上の距離の近さに基づいて決定される前記複数のノードの部分集合であり、かつ、前記第1のサブオーバレイネットワークから地理空間上で所定の距離以上の遠さを有する前記複数のノードの部分集合である
     ことを特徴とする請求項5記載の分散データ管理システム。
    The core node includes a first sub-overlay network configured by a subset of the plurality of nodes determined based on proximity in a geospatial distance, and a higher rank than the first sub-overlay network. Constructing the hierarchical overlay network to include a second sub-overlay network associated with a hierarchy;
    The nodes constituting the second sub-overlay network are a subset of the plurality of nodes determined on the basis of the proximity of the distance in the geospatial space, and from the first sub-overlay network in the geospatial space 6. The distributed data management system according to claim 5, wherein the distributed data management system is a subset of the plurality of nodes having a distance greater than or equal to a predetermined distance.
  7.  前記複数のノードは、前記サブオーバレイネットワーク又は前記最上位オーバレイネットワークにデータを書込むときに、前記ノード番号と前記データ番号とに基づいて決定される第1のノードに、既に同一データが書込まれていた場合には、前記決定された第1のノードから一意に決定される、当該データが書込まれていないノードに、当該データをレプリケートする
     ことを特徴とする請求項6記載の分散データ管理システム。
    When the plurality of nodes write data to the sub-overlay network or the top-level overlay network, the same data has already been written to the first node determined based on the node number and the data number. 7. If distributed, the data is replicated to a node that is uniquely determined from the determined first node and to which the data is not written. Management system.
  8.  前記複数のノードは、前記階層型オーバレイネットワークにデータを書込むときに、少なくとも前記最上位オーバレイネットワークにおいて、前記ノード番号と前記データ番号とに基づいて決定される前記第1のノードから一意に決定される、当該データが書込まれていないノードに、当該データをレプリケートする
     ことを特徴とする請求項7記載の分散データ管理システム。
    The plurality of nodes are uniquely determined from the first node determined based on the node number and the data number at least in the highest-order overlay network when writing data to the hierarchical overlay network. The distributed data management system according to claim 7, wherein the data is replicated to a node to which the data is not written.
  9.  前記複数のノードは、データをレプリケートするときに、当該データのプライマリデータを格納しているノードの所在を示す情報をメタデータに含めてレプリケート先のノードに書込む
     ことを特徴とする請求項8記載の分散データ管理システム。
    9. The plurality of nodes, when replicating data, include information indicating the location of a node storing primary data of the data in metadata and write the information to a destination node. Described distributed data management system.
  10.  前記階層型オーバレイネットワークからデータを削除するときに、データ削除の依頼元のノードは、前記メタデータを参照して削除対象のデータのプライマリデータを格納しているノードの所在を探索し、前記プライマリデータを格納しているノードに、当該データの削除を依頼する
     ことを特徴とする請求項9記載の分散データ管理システム。
    When deleting data from the hierarchical overlay network, a node requesting data deletion refers to the metadata and searches for the location of a node storing primary data of data to be deleted, and the primary The distributed data management system according to claim 9, wherein a deletion of the data is requested to a node storing the data.
  11.  前記階層型オーバレイネットワークを構成している前記ノードを削除するときに、
    前記複数のノードは、削除対象のノードに関連付けられた各オーバレイネットワークにおいて、前記削除対象のノードが格納したデータを、該オーバレイネットワークの上位に関連付けられたオーバレイネットワークに含まれるノードであって、該データに対応するデータ番号に基づいて得られるノードから、該オーバレイネットワークの他のノードに該データを移動又は複製する
     ことを特徴とする請求項10記載の分散データ管理システム。
    When deleting the nodes constituting the hierarchical overlay network,
    The plurality of nodes are nodes included in an overlay network associated with a higher rank of the overlay network, in each overlay network associated with the node to be deleted, the data stored in the node to be deleted. The distributed data management system according to claim 10, wherein the data is moved or replicated from a node obtained based on a data number corresponding to the data to another node of the overlay network.
  12.  データを格納する複数のノードに接続されるコアノードにおけるコンピュータに、データを格納する複数のノードの全集合から構成される最上位オーバレイネットワークと、前記複数のノードの部分集合から構成されるサブオーバレイネットワークと、前記複数のノードの単元から構成される単元オーバレイネットワークとを順に階層化した階層型オーバレイネットワークを構築させ、前記階層型オーバレイネットワークによって前記データを管理させるためのプログラムであって、
     前記複数のノードには、前記複数のノードの集合に亘って確率的に均一な番号を示すノード番号がそれぞれ割当てられ、
     前記階層型オーバレイネットワークに含まれる各オーバレイネットワークは、該オーバレイネットワークを構成する各ノードに割当てられた前記ノード番号と、格納されるデータから得られる確率的に均一な番号を示すデータ番号とに基づいて、当該ネットワークにおいて当該データを格納するノードが決定されるリング型のネットワークであり、
     前記プログラムは、前記コアノードにおけるコンピュータに、
     前記階層型オーバレイネットワークを構築するときに、
     地理空間上の距離に基づいて決定される前記複数のノードの部分集合によって前記サブオーバレイネットワークを構成するステップと、
     前記最上位オーバレイネットワーク、前記サブオーバレイネットワーク、前記単元オーバレイネットワークの順で階層間を関連付けるステップと、
     前記階層型オーバレイネットワークを構成する各ノードについて、該ノードが含まれる全てのオーバレイネットワークを示す情報と該オーバレイネットワークを構成する全てのノードに関する情報とを含むネットワーク構成情報を生成するステップと、
     前記生成したネットワーク構成情報を前記各ノードに転送するステップと、
     を実行させるためのプログラム。
     
    A top overlay network composed of a total set of a plurality of nodes storing data in a computer in a core node connected to a plurality of nodes storing data, and a sub-overlay network composed of a subset of the plurality of nodes A hierarchical overlay network in which a unit overlay network composed of units of the plurality of nodes is sequentially hierarchized, and the data is managed by the hierarchical overlay network,
    Each of the plurality of nodes is assigned a node number indicating a stochastic uniform number across the set of the plurality of nodes,
    Each overlay network included in the hierarchical overlay network is based on the node number assigned to each node constituting the overlay network and a data number indicating a stochastic uniform number obtained from stored data. A ring type network in which a node for storing the data is determined in the network,
    The program is stored in a computer in the core node.
    When constructing the hierarchical overlay network,
    Configuring the sub-overlay network with a subset of the plurality of nodes determined based on a geospatial distance;
    Associating hierarchies in order of the top-level overlay network, the sub-overlay network, and the unit overlay network;
    For each node constituting the hierarchical overlay network, generating network configuration information including information indicating all overlay networks included in the node and information relating to all nodes constituting the overlay network;
    Transferring the generated network configuration information to the nodes;
    A program for running
PCT/JP2012/075995 2012-10-05 2012-10-05 Distributed data management system and program WO2014054173A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/JP2012/075995 WO2014054173A1 (en) 2012-10-05 2012-10-05 Distributed data management system and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2012/075995 WO2014054173A1 (en) 2012-10-05 2012-10-05 Distributed data management system and program

Publications (1)

Publication Number Publication Date
WO2014054173A1 true WO2014054173A1 (en) 2014-04-10

Family

ID=50434532

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2012/075995 WO2014054173A1 (en) 2012-10-05 2012-10-05 Distributed data management system and program

Country Status (1)

Country Link
WO (1) WO2014054173A1 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019133419A (en) * 2018-01-31 2019-08-08 シビラ株式会社 Data transmission/reception method, data transmission/reception system, processing device, computer program, and construction method for system
JP2019133650A (en) * 2018-01-31 2019-08-08 シビラ株式会社 Data transmission/reception method
CN113614770A (en) * 2019-02-08 2021-11-05 西门子歌美飒可再生能源公司 Operating data of an energy system

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006261880A (en) * 2005-03-16 2006-09-28 Hitachi Ltd Network communication method and network system
JP2009147649A (en) * 2007-12-13 2009-07-02 Toshiba Corp Overlay network system, overlay network construction/maintenance method in the same system, and program

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006261880A (en) * 2005-03-16 2006-09-28 Hitachi Ltd Network communication method and network system
JP2009147649A (en) * 2007-12-13 2009-07-02 Toshiba Corp Overlay network system, overlay network construction/maintenance method in the same system, and program

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
YUSUKE HABA ET AL.: "Hierarchical Distributed Hashing in consideration of physical network", IPSJ SIG NOTES, vol. 2006, no. 14, 17 February 2006 (2006-02-17), pages 43 - 48 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019133419A (en) * 2018-01-31 2019-08-08 シビラ株式会社 Data transmission/reception method, data transmission/reception system, processing device, computer program, and construction method for system
JP2019133650A (en) * 2018-01-31 2019-08-08 シビラ株式会社 Data transmission/reception method
CN113614770A (en) * 2019-02-08 2021-11-05 西门子歌美飒可再生能源公司 Operating data of an energy system

Similar Documents

Publication Publication Date Title
US9906598B1 (en) Distributed data storage controller
US10209893B2 (en) Massively scalable object storage for storing object replicas
US9460105B2 (en) Managing performance within an enterprise object store file system
US9626420B2 (en) Massively scalable object storage system
US8918392B1 (en) Data storage mapping and management
WO2018059032A1 (en) Data migration method for virtual node, and virtual node
US9053167B1 (en) Storage device selection for database partition replicas
US8510267B2 (en) Synchronization of structured information repositories
EP2498476B1 (en) Massively scalable object storage system
US11314444B1 (en) Environment-sensitive distributed data management
CN107430603A (en) The system and method for MPP database
CN101763321A (en) Disaster-tolerant method, device and system
US11886508B2 (en) Adaptive tiering for database data of a replica group
WO2014054173A1 (en) Distributed data management system and program
JP2010026965A (en) Archive system and content management method
CN113641686B (en) Data processing method, data processing apparatus, electronic device, storage medium, and program product
US20140019425A1 (en) File server and file management method
JP6291977B2 (en) Distributed file system, backup file acquisition method, control device, and management device
US12007977B1 (en) Selectively applying a replication log for logical database replica creation
JP5890452B2 (en) Cluster system server device and program thereof
CN116414848A (en) Database master-slave copy consistency verification method and device and computer equipment
JP6127005B2 (en) Cluster system server device and program
CN117785047A (en) Method, device and storage medium for managing distributed database
CN117290298A (en) Data processing method and related device
CN114328521A (en) Index library updating method and device

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 12886093

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 12886093

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: JP