WO2013005812A1 - Distributed positioning device and distributed positioning method - Google Patents

Distributed positioning device and distributed positioning method Download PDF

Info

Publication number
WO2013005812A1
WO2013005812A1 PCT/JP2012/067245 JP2012067245W WO2013005812A1 WO 2013005812 A1 WO2013005812 A1 WO 2013005812A1 JP 2012067245 W JP2012067245 W JP 2012067245W WO 2013005812 A1 WO2013005812 A1 WO 2013005812A1
Authority
WO
WIPO (PCT)
Prior art keywords
data item
identification information
node
algorithm
relocation
Prior art date
Application number
PCT/JP2012/067245
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 日本電気株式会社
Publication of WO2013005812A1 publication Critical patent/WO2013005812A1/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/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]

Definitions

  • the present invention relates to a distributed arrangement device that distributes data to a plurality of nodes, a distributed arrangement method, and a program therefor.
  • a distributed placement algorithm is an algorithm that determines how data items are placed.
  • data item ID Identity Data
  • the distributed key-value store is a method in which a key-value store that stores data items in a combination of a key and a value is extended so as to be shared and stored by a plurality of nodes.
  • the apparatus that executes the distributed key-value store calculates a hash value by using a hash function for each of a key used as data item identification information and node identification information (for example, IP (Internet Protocol) address).
  • the apparatus determines a data item and a node that shares storage of the data item based on the calculated hash value.
  • an algorithm for determining the nodes that share the storage of data items in this way for example, there is a consistent hash method. Furthermore, there is a round robin in which a plurality of data items are sequentially allocated to a plurality of nodes.
  • Patent Document 1 discloses a technique in which each storage device constituting a distributed storage system determines a range to be shared within the identifier space of the distributed storage system, and stores a data chunk having a corresponding identifier. The storage node described in Patent Literature 1 determines a shared range in the identifier space of the distributed storage system as follows.
  • the space width determination unit of the storage node determines the relative space width between the self node and the adjacent storage node based on the weight between the self node and the adjacent storage node.
  • the space allocation control unit of the storage node divides the space between the own node and the adjacent storage node, and determines a range to be shared by the own node.
  • the space between the own node and the adjacent storage node is a space whose end points are values obtained by applying a hash function to the address of the own node and the address of the adjacent storage node.
  • the storage node described in Patent Document 1 stores data chunks having corresponding identifiers as follows.
  • the storage node receives an input / output request including a file ID (for example, a value obtained by applying a hash function to the file name of the target file).
  • a file ID for example, a value obtained by applying a hash function to the file name of the target file.
  • the storage node checks whether or not the file ID falls within the range shared by the own node. If applicable, the storage node accesses the file storage unit of its own node and performs the requested input / output processing.
  • the technique described in Patent Document 1 has a problem that it is difficult to dynamically change a distributed arrangement algorithm during operation of a distributed system. That is, the technique described in Patent Document 1 cannot dynamically change the distributed arrangement algorithm even when there is another distributed data arrangement algorithm that is more suitable for the system.
  • the reason why the distributed arrangement algorithm cannot be changed is that the technique described in Patent Document 1 supports access to data arranged before the change of the distributed arrangement algorithm due to a change in data access logic accompanying the change of the distributed arrangement algorithm. It is because it becomes impossible.
  • An object of the present invention is to provide a distributed arrangement apparatus, a distributed arrangement method, and a program therefor that can solve the above-described problems.
  • the distributed placement device of the present invention generates and outputs relocation information including one or more relocation data item identification information, which is data item identification information, for identifying a relocation target data item stored in a node And a first node derived using a first algorithm among a plurality of algorithms for deriving specific node identification information among a plurality of node identification information corresponding to the plurality of nodes.
  • Relocation reading means for reading a data item specified by the relocation data item identification information included in the relocation information from the first node corresponding to the identification information, and a second algorithm of the plurality of algorithms The data specified by the rearrangement data item identification information in the second node corresponding to the second node identification information derived using The rearrangement writing means for writing an item, and the first node corresponding to the first node identification information derived using the first algorithm, specified by the rearrangement data item identification information Relocation erasure means for erasing the data item.
  • a computer generates relocation information including one or more relocation data item identification information that is data item identification information for identifying a data item to be relocated stored in a node.
  • a data item specified by the rearrangement data item identification information included in the rearrangement information is read from a corresponding first node, and a second item derived using a second algorithm of the plurality of algorithms is derived.
  • the program of the present invention generates and outputs relocation information including one or more relocation data item identification information that is data item identification information for identifying a relocation target data item stored in a node;
  • the first corresponding to the first node identification information derived using the first algorithm among the plurality of algorithms for deriving specific node identification information among the plurality of node identification information corresponding to the plurality of nodes.
  • a process of reading a data item specified by the rearrangement data item identification information included in the rearrangement information from a node of the second node, and a second node identification derived using a second algorithm of the plurality of algorithms A process of writing the data item specified by the relocation data item identification information to a second node corresponding to the information; A process of deleting the data item specified by the rearranged data item identification information from the first node corresponding to the first node identification information derived using the first algorithm; Let it run.
  • the effect of the present invention is that the distributed arrangement algorithm can be dynamically changed even during the operation of the distributed system.
  • FIG. 1 is a block diagram illustrating a configuration of a distributed access node according to the first embodiment.
  • FIG. 2 is a block diagram showing the configuration of the distributed system in the first to fourth embodiments.
  • FIG. 3 is a diagram illustrating an example of access history information in the first to fourth embodiments.
  • FIG. 4 is a diagram illustrating an example of rearrangement information in the first to fourth embodiments.
  • FIG. 5 is a diagram illustrating an example of a distributed arrangement algorithm table in the first to fourth embodiments.
  • FIG. 6 is a diagram showing a hardware configuration of the distributed access node and its peripheral devices according to the first to fourth embodiments.
  • FIG. 7 is a flowchart showing a part of the operation when an input / output request is received in the normal state in the first embodiment.
  • FIG. 7 is a flowchart showing a part of the operation when an input / output request is received in the normal state in the first embodiment.
  • FIG. 8 is a flowchart showing a part of the operation when the input / output request is received in the normal state in the first embodiment.
  • FIG. 9 is a flowchart showing a part of the operation of changing the distributed arrangement algorithm in the first embodiment and rearranging the data items.
  • FIG. 10 is a flowchart showing a part of the operation of changing the distributed arrangement algorithm in the first embodiment and rearranging the data items.
  • FIG. 11 is a flowchart showing a part of the operation when an input / output request is received in the rearrangement state in the first embodiment.
  • FIG. 12 is a flowchart illustrating a part of the operation when an input / output request is received in the rearrangement state according to the first embodiment.
  • FIG. 13 is a flowchart illustrating a part of the operation when an input / output request is received in the rearrangement state according to the first embodiment.
  • FIG. 14 is a block diagram illustrating a configuration of a distributed access node according to the second embodiment.
  • FIG. 15 is a diagram illustrating an example of rearrangement node correspondence information in the second and third embodiments.
  • FIG. 16 is a diagram illustrating an example of user determination information according to the second embodiment.
  • FIG. 17 is a flowchart illustrating an operation for calculating a load state according to the second embodiment.
  • FIG. 18 is a flowchart showing the operation of the effect notification unit in the second embodiment.
  • FIG. 19 is a block diagram illustrating a configuration of a distributed access node according to the third embodiment.
  • FIG. 20 is a flowchart illustrating an operation for determining a distributed arrangement algorithm according to the third embodiment.
  • FIG. 21 is a block diagram illustrating a configuration of a distributed access node according to the fourth embodiment.
  • FIG. 22 is a block diagram illustrating an example of a non-volatile storage medium on which a program is recorded.
  • FIG. 1 is a block diagram showing the configuration of the distributed access node 30 according to the first embodiment of the present invention.
  • the distributed access node 30 includes an access location determination unit 3010, an algorithm change unit 3020, a relocation execution unit 3030, an access history collection unit 3040, a relocation information generation unit 3050, a load monitoring unit 3060, and input / output execution. Part 3031.
  • FIG. 2 is a block diagram showing a configuration of the distributed system 100 including the distributed access node 30. Referring to FIG.
  • the distributed system 100 includes a client node 10, a distributed access node 30, a distributed system network 40, a server storage 50 and a storage 60.
  • the client node 10 is connected to the distributed access node 30 via the network 20.
  • FIG. 2 there are three client nodes 10, server storage nodes 50, and storages 60, but any number of client nodes 10, server storage nodes 50, and storages 60 may be used.
  • the distributed system 10 generally operates as follows.
  • the client node 10 using the distributed system transmits a data item read / write request including at least the data item ID to the distributed access node 30 via the network 20.
  • the data item ID is also called data item identification information.
  • a request for reading and writing data items is also called an input / output request.
  • the distributed access node 30 When receiving the input / output request, the distributed access node 30 uniquely determines the data item storage location (server storage node 50) using a specific distributed arrangement algorithm. Subsequently, the distributed access node 30 transmits an access request to the server storage node 50 that is the determined storage location via the distributed system network 40 based on the received input / output request. Based on the received access request, the server storage node 50 reads or writes data items from / to the storage 60 managed by the server storage node 50. As described above, the distributed access node 30 uniquely determines the storage location of the data item using a specific distributed arrangement algorithm.
  • the specific distributed arrangement algorithm may be an arbitrary distributed arrangement algorithm. Therefore, a specific distributed arrangement on the distributed system network 40 is arbitrary.
  • the specific distributed arrangement is how to determine the arrangement of the server storage nodes 50.
  • a specific distributed arrangement may be an arrangement that is multiplexed, hierarchized or virtualized between the server storage nodes 50.
  • the server storage node 50 may have a cache (not shown) in order to reduce a delay when accessing the storage 60.
  • the server storage node 50 may read or write data items to / from the cache if there is an access request target data item in the cache.
  • the server storage node 50 may control the storage 60 having an arbitrary configuration using an arbitrary file system (not shown).
  • the algorithm changing unit 3020 sets the distributed placement algorithm in the access location determining unit 3010 when the distributed access node 30 is initially set and when the designation of the distributed placement algorithm is received. For example, the algorithm changing unit 3020 sets a predetermined distributed arrangement algorithm in the access location determining unit 3010 when the distributed access node 30 is initially set. For example, the algorithm changing unit 3020 receives a designation of a distributed arrangement algorithm from an operator via an input unit (not shown), and sets a distributed arrangement algorithm corresponding to this designation as a predetermined distributed arrangement algorithm. For example, the algorithm changing unit 3020 receives designation of a distributed arrangement algorithm from an external server (not shown) or another module (not shown), and sets the distributed arrangement algorithm corresponding to this designation as a predetermined distributed arrangement algorithm. Also good.
  • the algorithm changing unit 3020 holds, for example, a distributed arrangement program corresponding to each distributed arrangement algorithm in a storage unit (not shown). Then, the algorithm changing unit 3020 downloads and sets a distributed arrangement program corresponding to a predetermined distributed arrangement algorithm to the access location determination unit 3010 among the distributed arrangement programs held. The algorithm changing unit 3020 notifies the access location determining unit 3010 of identification information (hereinafter referred to as distributed allocation algorithm ID) of the distributed allocation algorithm to be used, and sets the distributed allocation algorithm in the access location determining unit 3010. Also good.
  • the access location determination unit 3010 may be operable with a plurality of types of distributed arrangement algorithms that uniquely determine the server storage node 50 to be accessed.
  • the access location determination unit 3010 operates with the distributed placement algorithm corresponding to the notified distributed placement algorithm ID among the plurality of distributed placement algorithms, and uniquely determines the server storage node 50 to be accessed.
  • the algorithm changing unit 3020 may acquire and hold the distributed arrangement program by means not shown (for example, means for acquiring a program from a server not shown via the network 20).
  • the access history collection unit 3040 collects the data item IDs of the data items that have been requested (accessed) from the client node 10 as access history information.
  • FIG. 3 is a diagram illustrating an example of the access history information 400. Referring to FIG. 3, the access history information 400 includes a data item ID 401.
  • the access history collection unit 3040 may collect, for example, the data item ID of the data item that has requested access to the server storage node 50 as the access history information 400. Further, the access history collection unit 3040 may collect other information as access history information instead of the data item ID 401. In this case, the other information (for example, the hash value of the data item) is information that allows each distributed arrangement algorithm to identify a specific data item as the same data item. That is, the access history information includes at least identification information of some data item that identifies the data item stored in the server storage node 50. Further, the access history collection unit 3040 may collect any information other than the data item identification information as access history information.
  • the arbitrary information is, for example, the time when the input / output request is made, the time when the access request is made, the type of input / output request (for example, reading or writing), the size of the data item, and the corresponding distributed arrangement algorithm ID.
  • the rearrangement information generation unit 3050 generates and outputs rearrangement information including one or more rearrangement data item IDs (also referred to as rearrangement data item identification information).
  • the rearrangement data item ID is the data item ID 401 of the data item to be rearranged stored in the server storage node 50.
  • FIG. 4 is a diagram illustrating an example of the rearrangement information 410. Referring to FIG. 4, the rearrangement information 410 includes a rearrangement data item ID 411.
  • the rearrangement information generation unit 3050 counts the number of each data item ID 401 included in the access history 400 and arranges the data item ID 401 as the rearrangement data item ID 411 in descending order of the counted number.
  • Relocation information 410 is generated.
  • the rearrangement information generation unit 3050 may generate rearrangement information 410 in which data item IDs included in access history information are arranged as rearrangement data item IDs 411 in descending order of the number of accesses per unit time.
  • the rearrangement information generation unit 3050 may generate rearrangement information 410 in which, for example, data item IDs included in the access history information are arranged as rearrangement data item IDs 411 in the order of recent access.
  • the access history information includes at least one of the time when the input / output request is made and the time when the access request is made, corresponding to the data item identification information. Furthermore, the rearrangement information generation unit 3050 arranges the rearrangement data item IDs 411 in the order determined based on, for example, the type of input / output request, the size of the data item, and any of the corresponding distributed arrangement algorithm IDs. The rearrangement information 410 may be generated. In this case, the access history information includes at least information corresponding to each. The rearrangement information generation unit 3050 may acquire the data item ID of the data item stored in the server storage node 50 from the server storage node 50, for example, and may use the acquired data item ID as the rearrangement data item ID 411. .
  • the distributed access node 30 may not include the access history collection unit 3040.
  • the rearrangement execution unit 3030 acquires one rearrangement data item ID 411 from the rearrangement information 410. Subsequently, the rearrangement execution unit 3030 outputs a rearrangement read request for requesting reading of the data item specified by the rearrangement data item ID 411 to the access location determination unit 3010, including the acquired rearrangement data item ID 411. To do. Further, the rearrangement execution unit 3030 outputs a rearrangement write request for requesting writing of the data item read in response to the rearrangement read request to the access location determination unit 3010. The rearrangement writing request may include the corresponding rearrangement data item ID 411.
  • the rearrangement execution unit 3030 sends, to the access location determination unit 3010, a post-relocation erasure request that requests erasure of the data item from the server storage node 50 that has read the data item based on the relocation read request. Output.
  • the post-relocation erasure request may include a corresponding rearrangement data item ID 411.
  • the input / output execution unit 3031 receives an input / output request including at least a data item ID and information indicating whether the request is a read request or a write request.
  • the input / output execution unit 3031 executes the following processes (1) to (4) in response to the input / output request.
  • the input / output execution unit 3031 indicates that the received input / output request is a request for reading a data item, and the rearrangement data item ID 411 having the same value as the data item ID of the data item is included in the rearrangement information 410 If it is included, the following processing is performed. First, the input / output execution unit 3031 outputs a rearrangement read request including the rearrangement data item ID 411 to the access location determination unit 3010. Next, the input / output execution unit 3031 outputs a relocation writing request to the access location determination unit 3010. Next, the input / output execution unit 3031 outputs a post-relocation erasure request to the access location determination unit 3010.
  • the input / output execution unit 3031 transmits an input / output response including the data item read in response to the relocation read request to the client node 10 that issued the input / output request.
  • the received input / output request is a request for reading a data item, and the rearrangement data item ID 411 having the same value as the data item ID of the data item is included in the rearrangement information 410. If not, the following processing is performed.
  • the input / output execution unit 3031 includes the data item ID and outputs a normal read request for requesting reading of the data item specified by the data item ID to the access location determination unit 3010.
  • the input / output execution unit 3031 transmits an input / output response including the data item read in response to the normal read request to the client node 10 that issued the input / output request.
  • the input / output execution unit 3031 includes the relocation data item ID 411 having the same value as the data item ID of the data item in the relocation information 410 when the received input / output request is a data item write request. If it is included, the following processing is performed. Note that the writing when the rearrangement data item ID 411 having the same value as the data item ID of the data item is included in the rearrangement information 410 is a writing that overwrites the data item.
  • the input / output execution unit 3031 outputs a rearrangement write request for requesting writing of a data item corresponding to the received input / output request to the access location determination unit 3010, including the corresponding rearrangement data item ID 411.
  • the input / output execution unit 3031 outputs a post-placement deletion request to the access location determination unit 3010.
  • the post-deployment deletion request includes the corresponding rearrangement data item ID 411, and requests that the data item specified by the rearrangement data item ID 411 is deleted from the server storage node 50 derived by the pre-change algorithm described later. Is.
  • the received input / output request is a data item write request, and the rearrangement data item ID 411 having the same value as the data item ID of the data item is included in the rearrangement information 410. If not, the following processing is performed.
  • the input / output execution unit 3031 outputs a normal write request for requesting writing of the data item specified by the data item ID to the access location determination unit 3010, including the data item ID.
  • the processing in the input / output execution unit 3031 is as described above.
  • the access location determining unit 3010 holds this as the changed algorithm (second algorithm).
  • the access location determination unit 3010 operates as follows when the distributed placement algorithm is newly set by the algorithm change unit 3020 in a state where the changed algorithm is already held. First, the access location determination unit 3010 sets the post-change algorithm already held as the pre-change algorithm (first algorithm). Subsequently, the access location determination unit 3010 holds the newly set distributed arrangement algorithm as a new changed algorithm. For example, the access location determination unit 3010 receives (sets) a program that realizes the distributed arrangement algorithm from the algorithm change unit 3020 and holds the program name as information for specifying the changed algorithm and the changed algorithm.
  • FIG. 5 is a diagram illustrating an example of the distributed arrangement algorithm table 420. Referring to FIG.
  • the distributed arrangement algorithm table 420 holds a post-change program name 421 that realizes the post-change algorithm and a pre-change program name 422 that realizes the pre-change algorithm.
  • the access location determination unit 3010 clears the pre-change program name 422 with “0” and deletes the corresponding distributed allocation program.
  • the access location determination unit 3010 uses the pre-change algorithm to transmit node access information corresponding to the rearrangement read request (corresponding to the first node identification information). Is derived.
  • the access location determination unit 3010 reads the data item specified by the relocation data item ID 411 included in the relocation read request from the server storage node 50 (first node) corresponding to the derived node identification information. .
  • the access location determination unit 3010 uses the post-change algorithm to transmit node access information corresponding to the rearrangement write request (second node identification information). Derived).
  • the access location determination unit 3010 sends the data item specified by the relocation data item ID 411 included in the relocation write request to the server storage node 50 (second node) corresponding to the derived node identification information. Write out.
  • the access location determination unit 3010 uses the pre-change algorithm to transmit the access request corresponding to the post-relocation erasure request to the node identification information (first node identification information). Derived). Subsequently, the access location determination unit 3010 determines the data item specified by the relocation data item ID 411 included in the post-relocation deletion request from the server storage node 50 (first node) corresponding to the derived node identification information. to erase.
  • the access location determination unit 3010 derives node identification information for transmitting the access request corresponding to the normal read request, using the changed algorithm.
  • the access location determination unit 3010 reads the data item specified by the relocation data item ID 411 included in the relocation read request from the server storage node 50 corresponding to the derived node identification information. In addition, when receiving a normal write request, the access location determination unit 3010 derives node identification information for transmitting an access request corresponding to the normal write request, using the changed algorithm. Subsequently, the access location determination unit 3010 writes the data item specified by the relocation data item ID 411 included in the relocation write request to the server storage node 50 corresponding to the derived node identification information.
  • the distributed arrangement algorithm may be, for example, the following algorithm.
  • the access location determination unit 3010 has, for example, serial numbers “0”, “1” corresponding to the node identification information of the three server storage nodes 50 shown in FIG. 1 ”and“ 2 ”are assigned.
  • the access location determination unit 3010 operates as follows in the first to fourth procedures for deriving node identification information corresponding to the data item ID in the distributed placement algorithm.
  • the access location determination unit 3010 converts the data item ID included in the input / output request into a numerical value.
  • the access location determination unit 3010 converts the character code of the data item ID into a hexadecimal number.
  • the access location determination unit 3010 calculates a remainder obtained by dividing the data item ID included in the input / output request by “3 (the number of server storage nodes 50)”.
  • the access location determination unit 3010 determines the calculated remainder as the serial number of the server storage node 50 that stores the data item specified by the data item ID.
  • the access location determination unit 3010 derives node identification information corresponding to the determined serial number.
  • the distributed arrangement algorithm is, for example, the following algorithm.
  • the access location determination unit 3010 associates, with the node identification information of the server storage node 50, a value that can be taken by the hash value calculated by the hash function specified by the distributed placement algorithm in the procedure of initial setting of the distributed placement algorithm.
  • the hash function is, for example, CRC (Cyclic Redundancy Check) 16.
  • CRC Cyclic Redundancy Check
  • the access location determination unit 3010 associates each of the three server storage nodes 50 shown in FIG. That is, for example, the access location determination unit 3010 shares # 0000 to # 5555, # 5556 to #AAAA, and #AAAB to #FFFF for the node identification information of the first to third server storage nodes 50, respectively. Associate as a hash value.
  • the access location determination unit 3010 operates as follows in the first to fourth procedures for deriving node identification information corresponding to the data item ID of the distributed placement algorithm. First, in the first procedure, the access location determination unit 3010 calculates the hash value of the data item ID included in the input / output request using the hash function. When the data item ID is “DATA1” and the hash function is CRC16, the access location determination unit 3010 calculates, for example, # 0C9E. Next, in the second procedure, the access location determination unit 3010 determines in which shared hash value range the hash value of the data item ID is included. For example, the access location determination unit 3010 determines that # 0C9E is included in # 0000 to # 5555.
  • the access location determination unit 3010 derives node identification information corresponding to the determined shared hash value range.
  • the load monitoring unit 3060 monitors the load state of the distributed access node 30 and outputs the monitoring result.
  • the load state is, for example, a usage rate of a CPU (Central Processing Unit, not shown) or a usage rate of a memory (not shown) of the distributed access node 30.
  • the relocation execution unit 3030 outputs a relocation read request, and the server storage node 50 corresponding to the node identification information derived by the access location determination unit 3010 using the pre-change algorithm is included in the relocation read request. Reading the data item specified by the rearranged data item ID 411 is also referred to as rearrangement reading means.
  • the rearrangement execution unit 3030 outputs a rearrangement write request, and the access location determination unit 3010 sends a rearrangement write request to the server storage node 50 corresponding to the node identification information derived using the changed algorithm.
  • the writing of the data item specified by the rearrangement data item ID 411 included in is also referred to as rearrangement writing means.
  • the rearrangement execution unit 3030 outputs a post-relocation deletion request, and the post-relocation deletion request from the server storage node 50 corresponding to the node identification information derived by the access location determination unit 3010 using the pre-change algorithm.
  • the deletion of the data item specified by the rearrangement data item ID 411 included in the ID is also referred to as rearrangement erasure means.
  • FIG. 6 is a diagram illustrating a hardware configuration of the distributed access node 30 and its peripheral devices in the present embodiment.
  • the distributed access node 30 includes a CPU 3070, a storage unit 3071, a storage device 3072, an input unit 3073, an output unit 3074, and a communication unit 3075.
  • the CPU 3070 controls the overall operation of the distributed access node 30 according to the present embodiment by operating an operating system (not shown). Further, the CPU 3070 reads a program and data into the storage unit 3071 from, for example, a nonvolatile recording medium attached to the storage device 3072.
  • FIG. 1 is a diagram illustrating a hardware configuration of the distributed access node 30 and its peripheral devices in the present embodiment.
  • the distributed access node 30 includes a CPU 3070, a storage unit 3071, a storage device 3072, an input unit 3073, an output unit 3074, and a communication unit 3075.
  • the CPU 3070 controls the overall operation of the distributed access node 30 according to the present embodiment by operating an
  • the CPU 3070 executes various processes as each unit shown in FIG. 1 according to the read program and based on the read data. Note that the CPU 3070 may download a program and data to the storage unit 3071 from an external computer (not shown) connected to a communication network (not shown).
  • the storage unit 3071 stores programs and data.
  • the storage device 3072 is, for example, an optical disk, a flexible disk, a magnetic optical disk, an external hard disk, and a semiconductor memory, and includes a nonvolatile storage medium.
  • the storage device 3072 records the program so that it can be read by a computer. Further, the storage device 3072 may record data so as to be readable by a computer.
  • the input unit 3073 is realized by, for example, a mouse, a keyboard, a built-in key button, and the like, and is used for an input operation.
  • the input unit 3073 is not limited to a mouse, a keyboard, and a built-in key button, but may be a touch panel, an accelerometer, a gyro sensor, a camera, or the like.
  • the output unit 3074 is realized by a display, for example, and is used to check the output.
  • the communication unit 3075 realizes an interface with the network 20 and the distributed access node 30.
  • the communication unit 3075 is included as part of the access location determination unit 3010, the algorithm change unit 3020, and the input / output execution unit 3031. This completes the description of each hardware component of the distributed access node 30.
  • the functional unit block shown in FIG. 1 is realized by the hardware configuration shown in FIG.
  • the means for realizing each unit included in the distributed access node 30 is not limited to the above.
  • the distributed access node 30 may be realized by one physically coupled device, or by two or more physically separated devices connected by wire or wirelessly, and by the plurality of devices. Also good.
  • a recording medium (or storage medium) 3077 in which the above-described program is recorded may be supplied to the distributed access node 30, and the distributed access node 30 may read and execute the program stored in the recording medium. That is, this embodiment includes an embodiment of a recording medium that stores a program executed by the distributed access node 30 temporarily or non-temporarily.
  • the normal state is a state in which a distributed placement algorithm is set by the algorithm changing unit 3020 when the distributed access node 30 is initially set, and a new distributed placement algorithm has not been set yet.
  • a new distributed arrangement algorithm is set by the algorithm changing unit 3020, the rearrangement process using the new distributed arrangement algorithm is completed, and no further new distributed arrangement algorithm has been set yet. It is.
  • the normal state is a state where none of the rearrangement data item IDs 411 is included in the rearrangement information 410, there is no pre-change algorithm, and the rearrangement process is not executed.
  • the state in which the rearrangement process is being executed is hereinafter referred to as a rearrangement state.
  • the distributed access node 30 starts this operation when receiving an input / output request transmitted by any of the client nodes 10 to read / write data items.
  • the input / output execution unit 3031 confirms whether or not it is in a normal state (A101). For example, the input / output execution unit 3031 checks whether or not the rearrangement data item ID 411 is not included in the rearrangement information 410 (normal state) or not (rearrangement state).
  • the input / output execution unit 3031 refers to the distributed arrangement algorithm table 420, and the state where the pre-change algorithm and the post-change algorithm exist (rearrangement state) or the state where only the post-change algorithm exists (see FIG. (Normal state) may be confirmed. If it is not a steady state (rearranged state) (NO in A101), the process proceeds to step C103 in FIG. In the steady state (YES in A101), the input / output execution unit 3031 determines whether the received input / output request is an input / output request requesting reading or an input / output request requesting writing (step). A102). If the input / output request requests reading (YES in step A102), the process proceeds to A103.
  • the process proceeds to A110.
  • the input / output execution unit 3031 outputs a normal read request including the data item ID included in the received input / output request to the access location determination unit 3010 (step A103).
  • the access location determination unit 3010 derives the node identification information of the server storage node 50 that outputs the access request corresponding to the received normal read request using the post-change algorithm (step A104).
  • the access location determination unit 3010 outputs an access request corresponding to the received normal read request to the server storage node 50 corresponding to the derived node identification information (step A105).
  • the input / output execution unit 3031 receives the data item corresponding to the access request output by the access location determination unit 3010 (step A106). Next, the input / output execution unit 3031 transmits an input / output response including the read data item to the client node 10 that issued the input / output request (step A107). Then, the process proceeds to step A120. In step A110, the input / output execution unit 3031 outputs a normal write request including the data item ID included in the received input / output request to the access location determination unit 3010 (step A110). Next, the access location determination unit 3010 derives node identification information of the server storage node 50 that outputs an access request corresponding to the received normal write request using the post-change distributed arrangement algorithm (step A111).
  • the access location determination unit 3010 outputs an access request corresponding to the received normal write request to the server storage node 50 corresponding to the derived node identification information (step A112). Then, the process proceeds to step A120.
  • the access history collection unit 3040 records the data item ID corresponding to the access request output to the access history information 400. (Step A120). Then, the process ends.
  • FIG. 9 and FIG. 10 are flowcharts showing the operation of changing the distributed placement algorithm and rearranging the data items in the present embodiment.
  • the distributed access node 30 starts this operation when receiving the designation of the newly set distributed arrangement algorithm from the operator via the input unit 3073 shown in FIG.
  • the algorithm changing unit 3020 sets the distributed location algorithm corresponding to the designation of the distributed location algorithm newly received from the operator in the access location determining unit 3010 (step B101). Specifically, the algorithm changing unit 3020 downloads the distributed arrangement program corresponding to the received distributed arrangement algorithm designation to the access location determining unit 3010. At the same time, the algorithm changing unit 3020 outputs the program name of the distributed arrangement program to the access location determining unit 3010. Next, the access location determination unit 3010 receives the setting of the distributed arrangement algorithm.
  • the access location determination unit 3010 overwrites the program name 421 after the change with the program name 422 before the change, and writes the received program name into the program name 421 after the change (step B102).
  • the rearrangement information generation unit 3050 refers to the access history information 400 as shown in FIG. 3 and generates rearrangement information 410 as shown in FIG. 4 (step B103). Note that the rearrangement information generation unit 3050 may delete the referenced data item ID 401 among the data item IDs 401 included in the access history information 400. In such a case, after the relocation information 410 is generated, the data item ID 401 included in the access history information 400 identifies the data item stored in the server storage node 50 determined using the newly received distributed allocation algorithm. .
  • the load monitoring unit 3060 confirms that the load is not high (step B104). For example, the load monitoring unit 3060 confirms that the CPU is not in a high load state based on whether or not the CPU usage rate of the distributed access node 30 exceeds a predetermined threshold (for example, 50%). Further, the load monitoring unit 3060 confirms that the load is not in a high load state based on the result of inquiring the server storage node 50 about the load state, or on both the result and the CPU usage rate of the distributed access node 30. You may do it. If the load is high (YES in step B104), the process ends.
  • a predetermined threshold for example, 50%
  • the rearrangement execution unit 3030 acquires one rearrangement data item ID 411 from the head of the rearrangement information 410 (step B105).
  • the rearrangement execution unit 3030 outputs a rearrangement read request for requesting reading of the data item specified by the rearrangement data item ID 411 to the access location determination unit 3010, including the acquired rearrangement data item ID 411.
  • the access location determination unit 3010 receives the rearrangement read request and derives node identification information for transmitting an access request corresponding to the rearrangement read request using the pre-change algorithm (step B107).
  • the access location determination unit 3010 reads the data item specified by the relocation data item ID 411 included in the relocation read request from the server storage node 50 corresponding to the derived node identification information (step B108). Specifically, the access location determination unit 3010 transmits an access request including the relocation data item ID 411 to the server storage node 50 corresponding to the derived node identification information. Next, the access location determination unit 3010 receives the data item transmitted from the server storage node 50 in response to the output access request. Next, the rearrangement execution unit 3030 outputs a rearrangement write request for requesting writing of the data item read in response to the rearrangement read request to the access location determination unit 3010 (step B109).
  • the access location determination unit 3010 receives the rearrangement write request and derives node identification information for transmitting the access request corresponding to the rearrangement write request using the changed algorithm (step B110). Subsequently, the access location determination unit 3010 writes the data item specified by the relocation data item ID 411 included in the relocation write request to the server storage node 50 corresponding to the derived node identification information (step B111). Next, the rearrangement execution unit 3030 sends an erase request after rearrangement requesting that the data item is erased from the server storage node 50 that has read the data item based on the rearrangement read request, to the access location determination unit 3010. (Step B112).
  • the access location determination unit 3010 receives the post-relocation erasure request and derives node identification information for transmitting an access request corresponding to the post-relocation erasure request using the pre-change algorithm (step B113). Subsequently, the access location determination unit 3010 deletes the data item specified by the relocation data item ID 411 included in the post-relocation deletion request from the server storage node 50 corresponding to the derived node identification information (step B114). . Next, the rearrangement execution unit 3030 deletes the corresponding rearrangement data item ID 411 from the rearrangement information 410 (step B115). Next, the rearrangement execution unit 3030 checks whether or not the rearrangement data item ID 411 exists in the rearrangement information 410 (step B116).
  • step B116 If it exists (YES in step B116), the process returns to step B105. If it does not exist (NO in step B116), the access location determination unit 3010 clears the pre-change program name 422 in the distributed arrangement algorithm table 420 to “0” (step B117). Then, the process ends. Note that it is desirable that the process of generating the rearrangement information 410 from the access history information 400 in step B103 is performed simultaneously with, for example, step B101, step B102, and step B104. Further, when the frequency of input / output requests from the client node 10 is high, for example, the processing of step B103 may be performed at regular intervals independently of the processing of the flowchart shown in FIG.
  • the referenced data item ID 401 among the data item IDs 401 included in the access history information 400 may be sequentially deleted.
  • the above is the description of the operation of changing the distributed arrangement algorithm and rearranging the data items.
  • 11, 12 and 13 are flowcharts showing the operation when an input / output request is received in the rearrangement state (YES in step A101 in FIG. 7).
  • the input / output execution unit 3031 receives the input / output request in the rearrangement state (YES in step A101 in FIG. 7)
  • the data item ID included in the received input / output request includes the rearrangement included in the rearrangement information 410 It is confirmed whether or not it matches any of the data item IDs 411 (step C103).
  • step C104 the input / output execution unit 3031 determines whether the received input / output request is an input / output request requesting reading or an input / output request requesting writing (step C104). If the input / output request requests reading (YES in step C104), the process proceeds to C105. If the input / output request requests writing (NO in step C104), the process proceeds to C120.
  • step C105 the input / output execution unit 3031 outputs a rearrangement read request including the rearrangement data item ID 411 that identifies the data item to be read to the access location determination unit 3010 (step C105).
  • the access location determination unit 3010 receives the rearrangement read request and derives node identification information for transmitting an access request corresponding to the rearrangement read request using the pre-change algorithm (step C106). Subsequently, the access location determination unit 3010 reads the data item specified by the relocation data item ID 411 included in the relocation read request from the server storage node 50 corresponding to the derived node identification information (step C107).
  • the input / output execution unit 3031 outputs a rearrangement write request for requesting writing of the data item read in response to the rearrangement read request to the access location determination unit 3010 (step C108).
  • the access location determination unit 3010 receives the rearrangement write request and derives node identification information for transmitting an access request corresponding to the rearrangement write request using the changed algorithm (step C109). Subsequently, the access location determination unit 3010 writes the data item specified by the relocation data item ID 411 included in the relocation write request to the server storage node 50 corresponding to the derived node identification information (step C110).
  • the input / output execution unit 3031 sends an after-relocation erasure request for erasing the data item from the server storage node 50 that has read the data item based on the relocation read request, to the access location determination unit 3010.
  • the access location determination unit 3010 receives the post-relocation erasure request and derives node identification information for transmitting an access request corresponding to the post-relocation erasure request using the pre-change algorithm (step C112).
  • the access location determination unit 3010 deletes the data item specified by the relocation data item ID 411 included in the post-relocation deletion request from the server storage node 50 corresponding to the derived node identification information (step C113). .
  • the input / output execution unit 3031 deletes the corresponding rearrangement data item ID 411 from the rearrangement information 410 (step C114).
  • the input / output execution unit 3031 transmits an input / output response including the data item read in response to the rearrangement read request to the client node 10 that issued the input / output request (step C115).
  • the process proceeds to C130.
  • the input / output execution unit 3031 outputs an arrangement write request for requesting writing of a data item corresponding to the received input / output request to the access location determination unit 3010, including the corresponding relocation data item ID 411 ( Step C120).
  • the access location determination unit 3010 receives the arrangement write request and derives node identification information for transmitting the access request corresponding to the relocation write request using the post-change algorithm (step C121). Subsequently, the access location determination unit 3010 writes the data item specified by the relocation data item ID 411 included in the relocation write request to the server storage node 50 corresponding to the derived node identification information (step C122). Next, the input / output execution unit 3031 outputs, to the access location determination unit 3010, a post-relocation deletion request that requests the data item to be deleted from the server storage node 50 derived by the pre-change algorithm (Step S31). C123).
  • the access location determination unit 3010 receives the post-relocation erasure request and derives node identification information for transmitting the access request corresponding to the post-relocation erasure request using the pre-change algorithm (step C124). Subsequently, the access location determination unit 3010 deletes the data item specified by the relocation data item ID 411 included in the post-relocation deletion request from the server storage node 50 corresponding to the derived node identification information (step C125). . Next, the input / output execution unit 3031 deletes the corresponding rearrangement data item ID 411 from the rearrangement information 410 (step C126).
  • the corresponding rearrangement data item ID 411 is the rearrangement data item ID 411 included in the post-relocation erasure request.
  • step C130 the access history collection unit 3040 records the data item ID corresponding to the output access request in the access history information 400.
  • the distributed access node 30 may use three or more distributed arrangement algorithms.
  • the access history information may include a corresponding distributed arrangement algorithm ID in addition to the data item ID.
  • the access location determination unit 3010 may select the pre-change algorithm used when processing the relocation read request and the post-relocation erasure request with reference to the distributed allocation algorithm ID.
  • the distributed access node 30 performs relocation only on the data item corresponding to the data item ID included in the input / output request in a predetermined specific situation (for example, the CPU usage rate is higher than a predetermined value). You may make it do.
  • the first effect of the present embodiment described above is that the distributed arrangement algorithm can be dynamically changed even during the operation of the distributed system. This is because the following configuration is included. That is, first, the rearrangement information generation unit 3050 generates rearrangement information 410. Second, the rearrangement execution unit 3030 outputs a rearrangement read request, a rearrangement write request, and a post-relocation erasure request based on the rearrangement information 410.
  • the access location determination unit 3010 reads the corresponding data item from the server storage node 50 derived using the pre-change algorithm in response to the relocation read request. Fourth, the access location determination unit 3010 writes the data item to the server storage node 50 derived using the post-change algorithm in response to the relocation writing request. Fifth, the access location determination unit 3010 deletes the data item included in the server storage node 50 derived using the pre-change algorithm in response to the delete request after rearrangement.
  • the “derived server storage node 50” here means “the server storage node 50 corresponding to the derived node identification information”.
  • the input / output execution unit 3031 performs a rearrangement read request, a rearrangement write request, and an erase request after rearrangement based on the rearrangement information 410, or a normal read request and a normal write request. Are selectively output.
  • the access location determination unit 3010 reads the corresponding data item from the server storage node 50 derived using the post-change algorithm in response to the normal read request.
  • the access location determination unit 3010 writes the data item to the server storage node 50 derived using the post-change algorithm in response to the normal write request.
  • the “derived server storage node 50” here means “the server storage node 50 corresponding to the derived node identification information”.
  • the third effect of the present embodiment described above is that the change to the third distributed arrangement algorithm can be further started before the change from the first distributed arrangement algorithm to the second distributed arrangement algorithm is completed. It is a point.
  • the reason is that the access history information includes the distributed placement algorithm ID, and the access location determination unit 3010 refers to the distributed placement algorithm ID and selects the pre-change algorithm used when processing the rearrangement read request and the rearrangement deletion request. It is because it tried to do.
  • the fourth effect of the present embodiment described above is that data item relocation processing is efficiently executed even if one of one or more of the distributed access node 30 and the server storage node 50 is in a high load state. It is possible to do that.
  • FIG. 14 is a block diagram showing a configuration of the distributed access node 32 according to the present embodiment.
  • the distributed access node 32 according to the present embodiment further includes an effect prediction unit 3080 and an effect notification unit 3081 compared to the distributed access node 30 of the first embodiment.
  • the distributed access node 32 includes an access location determination unit 3210 instead of the access location determination unit 3010 as compared to the distributed access node 30.
  • the components of the distributed access node 32 in hardware units are the same as the components of the hardware configuration of the distributed access node 30 and its peripheral devices shown in FIG.
  • the effect prediction unit 3080 calculates an appropriateness of arrangement that indicates the appropriateness of the arrangement of data items corresponding to the candidate algorithm.
  • the candidate algorithm is one of a plurality of distributed arrangement algorithms that are replaced with the current changed algorithm (the currently used distributed arrangement algorithm) as a new changed algorithm.
  • the candidate algorithm includes the current modified algorithm itself.
  • the effect prediction unit 3080 selects a candidate algorithm, outputs it to the access location determination unit 3210, receives the rearrangement node correspondence information as a response, and calculates the placement appropriateness based on the received rearrangement node correspondence information.
  • the rearrangement node correspondence information 430 includes a rearrangement data item ID 411 and node identification information 432 in association with each other.
  • the effect prediction unit 3080 calculates the distribution degree (for example, standard deviation) of the data items based on the number of data items stored in each server storage node 50, and sets this as the appropriateness of arrangement. For example, the effect prediction unit 3080 refers to the access history information 400 to calculate the access frequency of each data item. Then, the effect prediction unit 3080 further calculates the access frequency of each server storage node 50 based on this access frequency. Then, the effect prediction unit 3080 may use the calculated access frequency as the placement appropriateness.
  • the distribution degree for example, standard deviation
  • the effect prediction unit 3080 may score (numerize) the access frequency of each data item and the number and size of the data items stored in each server storage node 50. Then, the effect prediction unit 3080 may calculate the total value for each server storage node 50 to obtain the placement appropriateness. In such a case, the access history information 400 may include the size of the data item.
  • the effect notification unit 3081 generates user determination information including the distributed placement algorithm and the corresponding placement appropriateness based on the placement appropriateness predicted by the effect prediction unit 3080. Next, the effect notification unit 3081 displays the generated user determination information on a display (not shown) via, for example, the output unit 3074 in FIG.
  • FIG. 16 is a diagram illustrating an example of the user determination information 440. Referring to FIG.
  • the user determination information 440 includes a distributed arrangement algorithm ID 441 and an arrangement appropriateness level 442.
  • the access location determination unit 3210 includes the following functions in addition to the functions of the access location determination unit 3010 of FIG. First, the access location determination unit 3210 uses the candidate algorithm to derive the node identification information 432 of the server storage node 50 in which the data items corresponding to the relocation data item ID 411 included in the relocation information 410 are stored. To do. Next, the access location determination unit 3010 outputs rearrangement node correspondence information 430 in which the node identification information 432 derived for each rearrangement data item ID 411 of the rearrangement information 410 is associated. Next, the operation of the present embodiment will be described in detail with reference to the drawings. FIG.
  • the rearrangement information generation unit 3050 generates the rearrangement information 410 with reference to the access history information 400 (step D101).
  • the effect prediction unit 3080 outputs the current changed algorithm as a candidate algorithm to the access location determination unit 3010 (step D102).
  • the access location determination unit 3010 uses the received candidate algorithm, and for the data items corresponding to the relocation data item ID 411 included in the relocation information 410, the node identification information of the server storage node 50 in which they are stored 432 is derived (step D103).
  • the access location determination unit 3010 generates rearrangement node correspondence information 430 in which the node identification information 411 derived for each rearrangement data item ID 411 of the rearrangement information 410 is associated, and outputs the generated rearrangement node correspondence information 430 to the effect prediction unit 3080 ( Step D104).
  • the effect prediction unit 3080 calculates the placement appropriateness corresponding to the candidate algorithm based on the received rearrangement node correspondence information 430, and outputs it to the effect notification unit 3081 together with the corresponding distributed placement algorithm ID (step D105). ).
  • the effect prediction unit 3080 determines whether or not there is a distributed arrangement algorithm to be selected as a candidate algorithm from among a plurality of distributed arrangement algorithms that can be set as the changed algorithm by the algorithm changing unit 3020 (step D106). If there is a distributed arrangement algorithm to be selected (YES in step D106), the process proceeds to step D107. If there is no distributed arrangement algorithm to be selected (YES in step D106), the process proceeds to step E101 in FIG. In addition, the effect prediction unit 3080, for example, if the ratio between the placement appropriateness calculated using the current modified algorithm as a candidate algorithm and the placement appropriateness output in step D105 exceeds a predetermined value, the candidate algorithm The selection may be terminated.
  • step D107 the effect prediction unit 3080 selects one candidate algorithm and outputs it to the access location determination unit 3010 (step D107). Then, the process returns to step D103.
  • the effect prediction unit 3080 selects, for example, the distributed arrangement algorithm held by the algorithm change unit 3020 as a candidate algorithm in order. Further, for example, the effect prediction unit 3080 may select a distributed arrangement algorithm input by the operator from the input unit 3073 shown in FIG. 6 as a candidate algorithm.
  • FIG. 18 is a flowchart showing the operation of the effect notification unit 3081 in this embodiment. First, the effect notification unit 3081 generates user determination information 440 based on the received placement appropriateness and the corresponding distributed placement algorithm ID (step E101).
  • the effect notification unit 3081 displays the generated user determination information 440 on a display (not shown) via, for example, the output unit 3074 in FIG. 6 (step E102).
  • the operator can confirm the displayed user determination information 440 and select an appropriate distributed arrangement algorithm by the input / output unit 3073 shown in FIG.
  • the distributed access node 32 designates the selected distributed arrangement algorithm, executes the operations shown in FIGS. 9 and 10, and rearranges the data items.
  • the first effect in the present embodiment described above is that it is possible to obtain a prediction of how appropriate the arrangement of data items is when the distributed arrangement algorithm is changed.
  • FIG. 19 is a block diagram showing the configuration of the distributed access node 33 according to this embodiment. Referring to FIG.
  • the distributed access node 33 further includes an effect prediction unit 3080, an algorithm determination unit 3090, and an appropriateness monitoring unit 3091, as compared to the distributed access node 30 of the first embodiment.
  • the distributed access node 33 includes an access location determination unit 3210 instead of the access location determination unit 3010 as compared to the distributed access node 30.
  • the components of the distributed access node 33 in hardware units are the same as the components of the hardware configuration of the distributed access node 30 and its peripheral devices shown in FIG.
  • the effect prediction unit 3080 is equivalent to the effect prediction unit 3080 shown in FIG.
  • the access location determination unit 3210 is equivalent to the access location determination unit 3210 shown in FIG.
  • the appropriateness monitoring unit 3091 outputs the current post-change algorithm as a candidate algorithm to the access location determination unit 3210 at a predetermined time (for example, every hour).
  • the appropriateness monitoring unit 3091 may output the current modified algorithm to the access location determination unit 3210 as a candidate algorithm when receiving an operator instruction from the input unit 3073 in FIG.
  • the appropriateness monitoring unit 3091 receives the rearrangement node correspondence information 430 as a response, and calculates the placement appropriateness based on the received rearrangement node correspondence information 430.
  • the appropriateness monitoring unit 3091 uses an algorithm when the calculated placement appropriateness exceeds a predetermined threshold value (for example, when the standard deviation representing the degree of distribution as the placement appropriateness exceeds a predetermined value).
  • FIG. 20 is a flowchart showing an operation for determining a distributed arrangement algorithm in the present embodiment.
  • the distributed access node 33 starts the operation of FIG. 20 when a time-out means (not shown) generates a timeout.
  • the rearrangement information generation unit 3050 generates the rearrangement information 410 with reference to the access history information 400 (Step F101).
  • the appropriateness monitoring unit 3091 outputs the current changed algorithm as a candidate algorithm to the access location determination unit 3210 (step F102).
  • the access location determination unit 3210 uses the received candidate algorithm, and for the data items corresponding to the rearrangement data item ID 411 included in the rearrangement information 410, the node identification information of the server storage node 50 in which they are stored 432 is derived (step F103).
  • the access location determination unit 3010 outputs the relocation node correspondence information 430 in which the node identification information 432 derived to each of the relocation data item IDs 411 of the relocation information 410 is associated with the appropriateness monitoring unit 3091 (step S91). F104).
  • the appropriateness monitoring unit 3091 calculates the placement appropriateness based on the received rearrangement node correspondence information 430 (step F105). Next, the appropriateness monitoring unit 3091 determines whether or not the calculated placement appropriateness exceeds a predetermined threshold (step F106). If the threshold is not exceeded (NO in step F106), the process ends. If the placement appropriateness exceeds a predetermined threshold (YES in Step F106), the appropriateness monitoring unit 3091 outputs the calculated placement appropriateness to the algorithm determining unit 3090 (Step F107).
  • the predetermined threshold is, for example, a value of a ratio between the number of any data item in the server storage node 50 and the number of data items in the other server storage node 50, which is “2”.
  • the predetermined threshold value may be “2”, for example, a value of a ratio between the access frequency of any of the server storage nodes 50 and the access frequency of other server storage nodes 50.
  • the effect prediction unit 3080 calculates placement appropriateness corresponding to a plurality of distributed placement algorithms that can be set as the changed algorithm by the algorithm changing unit 3020, and outputs the degree of placement appropriateness to the algorithm determining unit 3090 (step F108).
  • the operation of step F106 can be easily understood with reference to step D103 to step D107 of FIG.
  • the algorithm determination unit 3090 selects an appropriate distributed placement algorithm based on the placement appropriateness level corresponding to the received multiple distributed placement algorithms (step F109).
  • the algorithm determination unit 3090 selects, for example, a distributed placement algorithm whose placement appropriateness is better than the placement appropriateness corresponding to the current post-change algorithm and the best placement appropriateness corresponding to a plurality of distributed placement algorithms. To do. Next, the algorithm determination unit 3090 outputs the designation of the selected distributed arrangement algorithm to the algorithm change unit 3020 (step F110). Then, the process ends.
  • the effect of the present embodiment described above is that a more suitable distributed arrangement algorithm than the currently used distributed arrangement algorithm is selected, and data items are rearranged autonomously using the selected distributed arrangement algorithm. It is a point that can be made possible.
  • FIG. 21 is a block diagram showing a configuration of the distributed access node 34 according to the present embodiment.
  • the distributed access node 33 according to the present embodiment includes a rearrangement information generation unit 3050, a rearrangement reading unit 3410, a rearrangement writing unit 3420, and a rearrangement erasing unit 3430.
  • the distributed access node 30 may be replaced with the distributed access node 34 of the present embodiment.
  • the components of the distributed access node 34 in hardware units are the same as the hardware configuration of the distributed access node 30 and its peripheral devices shown in FIG.
  • the rearrangement information generation unit 3050 generates and outputs rearrangement information 410 including one or more rearrangement data item IDs 411 as illustrated in FIG.
  • the relocation data item ID 411 is a data item ID of a data item to be relocated among the data items stored in the server storage node 50.
  • the rearrangement reading unit 3410 derives node identification information using a first algorithm (pre-change algorithm) among a plurality of algorithms for deriving specific node identification information among the plurality of node identification information.
  • the relocation reading unit 3410 reads the data item specified by the relocation data item ID included in the relocation information 410 from the server storage node 50 corresponding to the derived node identification information.
  • the relocation writing unit 3420 stores the data specified by the relocation data item ID in the server storage node 50 corresponding to the node identification information derived using the second algorithm (algorithm after change) of the plurality of algorithms.
  • the rearrangement deleting unit 3430 deletes the data item specified by the rearrangement data item ID from the server storage node 50 corresponding to the node identification information derived using the pre-change algorithm.
  • the rearrangement information generation unit 3050 generates rearrangement information. Secondly, the data item specified by the relocation data item ID included in the relocation information 410 is retrieved from the server storage node 50 corresponding to the node identification information derived by the relocation reading unit 3410 using the pre-change algorithm. Read. Third, the relocation writing unit 3420 writes the data item specified by the relocation data item ID to the server storage node 50 corresponding to the node identification information derived using the post-change algorithm. Fourth, the rearrangement deleting unit 3430 deletes the data item specified by the rearrangement data item ID from the server storage node 50 corresponding to the node identification information derived using the pre-change algorithm.
  • each component described in each of the above embodiments does not necessarily have to be individually independent.
  • a plurality of components may be realized as one module, or one component may be realized as a plurality of modules.
  • Each component is configured such that a component is a part of another component, or a part of a component overlaps a part of another component. Also good.
  • a plurality of operations are described in order in the form of a flowchart, but the described order does not limit the order in which the plurality of operations are executed. For this reason, when each embodiment is implemented, the order of the plurality of operations can be changed within a range that does not hinder the contents.
  • a plurality of operations are not limited to being executed at different timings. For example, another operation may occur during the execution of a certain operation, or the execution timing of a certain operation and another operation may partially or entirely overlap.
  • a certain operation is described as a trigger for another operation, but the description does not limit all relationships between the certain operation and the other operations.
  • the distributed arrangement apparatus, the distributed arrangement method, and the program therefor according to the present invention can be applied to uses such as data center operation and management. Further, the distributed arrangement apparatus, the distributed arrangement method, and the program therefor according to the present invention can be applied to uses such as operation and management of appliance products constructed by a plurality of racks, computers, and storages, for example.

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

Provided is a distributed positioning device with which it is possible to dynamically change a distributed positioning algorithm even when operating a distributed system. The distributed positioning device comprises: a repositioning information generation means for generating repositioning information which includes one or more instances of repositioning data item identification information which is information which identifies a data item to be repositioned which is stored in a node; a repositioning read-in means for reading in a data item which is specified with the repositioning data item identification information from a first node which is determined using a first algorithm; a repositioning write means for writing the data item to a second node which is determined using a second algorithm; and a repositioning deletion means for deleting the data item from the first node.

Description

分散配置装置及び分散配置方法Distributed arrangement apparatus and distributed arrangement method
 本発明は、データを複数のノードに分散配置する分散配置装置、分散配置方法及びそのためのプログラムに関する。 The present invention relates to a distributed arrangement device that distributes data to a plurality of nodes, a distributed arrangement method, and a program therefor.
 ネットワークで接続された、サーバ及びストレージなどの、ノードから構成される分散システムにおいて、複数のデータアイテム(識別子を付与された、データのある塊)を複数のノードに、特定のアルゴリズムに従って分散配置する技術が知られている。
 この特定のアルゴリズム(以後、分散配置アルゴリズムと呼ぶ)は、データアイテムをどのように配置するかを決定するアルゴリズムである。分散配置アルゴリズムには様々な種類がある。また、どのデータアイテムをどのノードに配置するかを決定するためのデータアイテムの識別情報(以後、データアイテムID(Identification Data)と呼ぶ)の付与方法にも様々なものが存在する。
 例えば、分散配置アルゴリズムに相当する配置決定の方法として、リレーショナルデータベースに格納される表を、行ごと或いは列ごとのデータアイテムに分割して、複数のノードに分散配置する方法がある。
 また、分散キーバリューストアは、データアイテムをキーとバリューとの組み合わせで格納するキーバリューストアを、複数のノードで分担して格納するように拡張した方法である。分散キーバリューストアを実行する装置は、データアイテムの識別情報とするキーとノードの識別情報(例えば、IP(Internet Protocol)アドレス)との、それぞれについてハッシュ関数によりハッシュ値を算出する。次に、その装置は、算出したハッシュ値に基づいて、データアイテムとそのデータアイテムの格納を分担するノードとを、決定する。このようにしてデータアイテムの格納を分担するノードを決定するアルゴリズムとして、例えばコンシステントハッシュ法がある。
 更に、複数のデータアイテムを順繰りに複数のノードに割り振って行く、ラウンドロビンがある。
 特許文献1は、分散ストレージシステムを構成する各ストレージ装置が、その分散ストレージシステムの識別子空間の内の分担する範囲を決定し、対応する識別子を有するデータの塊を格納する技術を開示する。
 特許文献1に記載のストレージノードは、以下のように、分散ストレージシステムの識別子空間の内の分担する範囲を決定する。まず、そのストレージノードの空間幅決定部は、自ノードと隣接ストレージノードとの重みに基づいて、自ノードと隣接ストレージノードとの相対的な空間幅を決定する。次に、そのストレージノードの空間割当制御部は、自ノードと隣接ストレージノードとの間の空間を分割し、自ノードの分担する範囲を決定する。尚、自ノードと隣接ストレージノードとの間の空間は、自ノードのアドレス及び隣接するストレージノードのアドレスそれぞれに、ハッシュ関数を適用して得られる値を端点とする空間である。
 特許文献1に記載のストレージノードは、以下のように、対応する識別子を有するデータの塊を格納する。まず、ストレージノードは、ファイルID(例えば、対象ファイルのファイル名に対して、ハッシュ関数を適用して得られる値)を含む入出力要求を受け取る。次に、ストレージノードは、ファイルIDが自ノードの分担する範囲内に該当するか否かを確認する。該当する場合、ストレージノードは、自ノードのファイル記憶部にアクセスして要求された入出力処理を行う。
In a distributed system composed of nodes such as servers and storages connected via a network, a plurality of data items (a chunk of data assigned with an identifier) are distributed to a plurality of nodes according to a specific algorithm. Technology is known.
This particular algorithm (hereinafter referred to as a distributed placement algorithm) is an algorithm that determines how data items are placed. There are various types of distributed placement algorithms. Also, there are various methods for assigning data item identification information (hereinafter referred to as data item ID (Identification Data)) for determining which data item is placed in which node.
For example, as a method for determining the arrangement corresponding to the distributed arrangement algorithm, there is a method in which a table stored in the relational database is divided into data items for each row or column and distributed to a plurality of nodes.
The distributed key-value store is a method in which a key-value store that stores data items in a combination of a key and a value is extended so as to be shared and stored by a plurality of nodes. The apparatus that executes the distributed key-value store calculates a hash value by using a hash function for each of a key used as data item identification information and node identification information (for example, IP (Internet Protocol) address). Next, the apparatus determines a data item and a node that shares storage of the data item based on the calculated hash value. As an algorithm for determining the nodes that share the storage of data items in this way, for example, there is a consistent hash method.
Furthermore, there is a round robin in which a plurality of data items are sequentially allocated to a plurality of nodes.
Patent Document 1 discloses a technique in which each storage device constituting a distributed storage system determines a range to be shared within the identifier space of the distributed storage system, and stores a data chunk having a corresponding identifier.
The storage node described in Patent Literature 1 determines a shared range in the identifier space of the distributed storage system as follows. First, the space width determination unit of the storage node determines the relative space width between the self node and the adjacent storage node based on the weight between the self node and the adjacent storage node. Next, the space allocation control unit of the storage node divides the space between the own node and the adjacent storage node, and determines a range to be shared by the own node. The space between the own node and the adjacent storage node is a space whose end points are values obtained by applying a hash function to the address of the own node and the address of the adjacent storage node.
The storage node described in Patent Document 1 stores data chunks having corresponding identifiers as follows. First, the storage node receives an input / output request including a file ID (for example, a value obtained by applying a hash function to the file name of the target file). Next, the storage node checks whether or not the file ID falls within the range shared by the own node. If applicable, the storage node accesses the file storage unit of its own node and performs the requested input / output processing.
特開2004−252663号公報JP 2004-252663 A
 しかし、特許文献1に記載された技術は、分散システムの運用中において、分散配置のアルゴリズムをダイナミックに変更することが困難であるという問題点を有している。即ち、特許文献1に記載された技術は、そのシステムにより適した、データの分散配置アルゴリズムが他に存在する場合であっても、分散配置アルゴリズムをダイナミックに変更できない。
 分散配置アルゴリズムを変更できない理由は、特許文献1に記載された技術が、分散配置アルゴリズムの変更に伴うデータアクセスのロジックの変化により、分散配置アルゴリズムの変更前に配置されたデータへのアクセスに対応できなくなるためである。
 本発明の目的の一つは、上述した問題点を解決できる分散配置装置、分散配置方法及びそのためのプログラムを提供することにある。
However, the technique described in Patent Document 1 has a problem that it is difficult to dynamically change a distributed arrangement algorithm during operation of a distributed system. That is, the technique described in Patent Document 1 cannot dynamically change the distributed arrangement algorithm even when there is another distributed data arrangement algorithm that is more suitable for the system.
The reason why the distributed arrangement algorithm cannot be changed is that the technique described in Patent Document 1 supports access to data arranged before the change of the distributed arrangement algorithm due to a change in data access logic accompanying the change of the distributed arrangement algorithm. It is because it becomes impossible.
An object of the present invention is to provide a distributed arrangement apparatus, a distributed arrangement method, and a program therefor that can solve the above-described problems.
 本発明の分散配置装装置は、ノードに格納された再配置対象のデータアイテムを識別するための、データアイテム識別情報である再配置データアイテム識別情報を1以上含む再配置情報を生成し、出力する再配置情報生成手段と、複数の前記ノードに対応する複数のノード識別情報の内の特定のノード識別情報を導出する複数のアルゴリズムの内、第1のアルゴリズムを用いて導出した第1のノード識別情報に対応する第1のノードから、前記再配置情報に含まれる前記再配置データアイテム識別情報で特定されるデータアイテムを読み込む再配置読込手段と、前記複数のアルゴリズムの内の第2のアルゴリズムを用いて導出した第2のノード識別情報に対応する第2のノードに、前記再配置データアイテム識別情報で特定される前記データアイテムを書き出す再配置書出手段と、前記第1のアルゴリズムを用いて導出された前記第1のノード識別情報に対応する前記第1のノードから、前記再配置データアイテム識別情報で特定される前記データアイテムを消去する再配置消去手段と、を含む。
 本発明の分散配置装方法は、コンピュータが、ノードに格納された再配置対象のデータアイテムを識別するための、データアイテム識別情報である再配置データアイテム識別情報を1以上含む再配置情報を生成し、出力し、複数の前記ノードに対応する複数のノード識別情報の内の特定のノード識別情報を導出する複数のアルゴリズムの内、第1のアルゴリズムを用いて導出した第1のノード識別情報に対応する第1のノードから、前記再配置情報に含まれる前記再配置データアイテム識別情報で特定されるデータアイテムを読み込み、前記複数のアルゴリズムの内の第2のアルゴリズムを用いて導した第2のノード識別情報に対応する前記第2のノードに、前記再配置データアイテム識別情報で特定される前記データアイテムを書き出し、前記第1のアルゴリズムを用いて導出された前記第1のノード識別情報に対応する前記第1のノードから、前記再配置データアイテム識別情報で特定される前記データアイテムを消去する。
 本発明のプログラムは、ノードに格納された再配置対象のデータアイテムを識別するための、データアイテム識別情報である再配置データアイテム識別情報を1以上含む再配置情報を生成し、出力する処理と、複数の前記ノードに対応する複数のノード識別情報の内の特定のノード識別情報を導出する複数のアルゴリズムの内、第1のアルゴリズムを用いて導出した第1のノード識別情報に対応する第1のノードから、前記再配置情報に含まれる前記再配置データアイテム識別情報で特定されるデータアイテムを読み込む処理と、前記複数のアルゴリズムの内の第2のアルゴリズムを用いて導出した第2のノード識別情報に対応する第2のノードに、前記再配置データアイテム識別情報で特定される前記データアイテムを書き出す処理と、前記第1のアルゴリズムを用いて導出された前記第1のノード識別情報に対応する前記第1のノードから、前記再配置データアイテム識別情報で特定される前記データアイテムを消去する処理とを、コンピュータに実行させる。
The distributed placement device of the present invention generates and outputs relocation information including one or more relocation data item identification information, which is data item identification information, for identifying a relocation target data item stored in a node And a first node derived using a first algorithm among a plurality of algorithms for deriving specific node identification information among a plurality of node identification information corresponding to the plurality of nodes. Relocation reading means for reading a data item specified by the relocation data item identification information included in the relocation information from the first node corresponding to the identification information, and a second algorithm of the plurality of algorithms The data specified by the rearrangement data item identification information in the second node corresponding to the second node identification information derived using The rearrangement writing means for writing an item, and the first node corresponding to the first node identification information derived using the first algorithm, specified by the rearrangement data item identification information Relocation erasure means for erasing the data item.
According to the distributed arrangement method of the present invention, a computer generates relocation information including one or more relocation data item identification information that is data item identification information for identifying a data item to be relocated stored in a node. And outputting the first node identification information derived using the first algorithm among the plurality of algorithms for deriving specific node identification information among the plurality of node identification information corresponding to the plurality of nodes. A data item specified by the rearrangement data item identification information included in the rearrangement information is read from a corresponding first node, and a second item derived using a second algorithm of the plurality of algorithms is derived. Writing the data item specified by the relocation data item identification information to the second node corresponding to the node identification information; From the first node corresponding to the first node identification information derived using the serial first algorithm, erasing the data item specified by the rearranged data item identification information.
The program of the present invention generates and outputs relocation information including one or more relocation data item identification information that is data item identification information for identifying a relocation target data item stored in a node; The first corresponding to the first node identification information derived using the first algorithm among the plurality of algorithms for deriving specific node identification information among the plurality of node identification information corresponding to the plurality of nodes. A process of reading a data item specified by the rearrangement data item identification information included in the rearrangement information from a node of the second node, and a second node identification derived using a second algorithm of the plurality of algorithms A process of writing the data item specified by the relocation data item identification information to a second node corresponding to the information; A process of deleting the data item specified by the rearranged data item identification information from the first node corresponding to the first node identification information derived using the first algorithm; Let it run.
 本発明による効果は、分散システムの運用中においても、分散配置アルゴリズムをダイナミックに変更できるようになることある。 The effect of the present invention is that the distributed arrangement algorithm can be dynamically changed even during the operation of the distributed system.
図1は、第1の実施形態に係る分散アクセスノードの構成を示すブロック図である。FIG. 1 is a block diagram illustrating a configuration of a distributed access node according to the first embodiment. 図2は、第1乃至第4の実施形態における分散システムの構成を示すブロック図である。FIG. 2 is a block diagram showing the configuration of the distributed system in the first to fourth embodiments. 図3は、第1乃至第4の実施形態におけるアクセス履歴情報の例を示す図である。FIG. 3 is a diagram illustrating an example of access history information in the first to fourth embodiments. 図4は、第1乃至第4の実施形態における再配置情報の例を示す図である。FIG. 4 is a diagram illustrating an example of rearrangement information in the first to fourth embodiments. 図5は、第1乃至第4の実施形態における分散配置アルゴリズムテーブルの例を示す図である。FIG. 5 is a diagram illustrating an example of a distributed arrangement algorithm table in the first to fourth embodiments. 図6は、第1乃至第4の実施形態に係る分散アクセスノードとその周辺装置のハードウェア構成を示す図である。FIG. 6 is a diagram showing a hardware configuration of the distributed access node and its peripheral devices according to the first to fourth embodiments. 図7は、第1の実施形態における通常状態で入出力要求を受信した場合の動作の一部を示すフローチャートである。FIG. 7 is a flowchart showing a part of the operation when an input / output request is received in the normal state in the first embodiment. 図8は、第1の実施形態における通常状態で入出力要求を受信した場合の動作の一部を示すフローチャートである。FIG. 8 is a flowchart showing a part of the operation when the input / output request is received in the normal state in the first embodiment. 図9は、第1の実施形態における分散配置アルゴリズムを変更し、データアイテムを再配置する動作の一部を示すフローチャートである。FIG. 9 is a flowchart showing a part of the operation of changing the distributed arrangement algorithm in the first embodiment and rearranging the data items. 図10は、第1の実施形態における分散配置アルゴリズムを変更し、データアイテムを再配置する動作の一部を示すフローチャートである。FIG. 10 is a flowchart showing a part of the operation of changing the distributed arrangement algorithm in the first embodiment and rearranging the data items. 図11は、第1の実施形態における再配置状態で入出力要求を受信した場合の動作の一部を示すフローチャートである。FIG. 11 is a flowchart showing a part of the operation when an input / output request is received in the rearrangement state in the first embodiment. 図12は、第1の実施形態における再配置状態で入出力要求を受信した場合の動作の一部を示すフローチャートである。FIG. 12 is a flowchart illustrating a part of the operation when an input / output request is received in the rearrangement state according to the first embodiment. 図13は、第1の実施形態における再配置状態で入出力要求を受信した場合の動作の一部を示すフローチャートである。FIG. 13 is a flowchart illustrating a part of the operation when an input / output request is received in the rearrangement state according to the first embodiment. 図14は、第2の実施形態に係る分散アクセスノードの構成を示すブロック図である。FIG. 14 is a block diagram illustrating a configuration of a distributed access node according to the second embodiment. 図15は、第2及び第3の実施形態における再配置ノード対応情報の例を示す図である。FIG. 15 is a diagram illustrating an example of rearrangement node correspondence information in the second and third embodiments. 図16は、第2の実施形態における利用者判断情報の例を示す図である。FIG. 16 is a diagram illustrating an example of user determination information according to the second embodiment. 図17は、第2の実施形態における負荷状態を算出する動作を示すフローチャートである。FIG. 17 is a flowchart illustrating an operation for calculating a load state according to the second embodiment. 図18は、第2の実施形態における効果通知部の動作を示すフローチャートである。FIG. 18 is a flowchart showing the operation of the effect notification unit in the second embodiment. 図19は、第3の実施形態に係る分散アクセスノードの構成を示すブロック図である。FIG. 19 is a block diagram illustrating a configuration of a distributed access node according to the third embodiment. 図20は、第3の実施形態における分散配置アルゴリズムを決定する動作を示すフローチャートである。FIG. 20 is a flowchart illustrating an operation for determining a distributed arrangement algorithm according to the third embodiment. 図21は、第4の実施形態に係る分散アクセスノードの構成を示すブロック図である。FIG. 21 is a block diagram illustrating a configuration of a distributed access node according to the fourth embodiment. 図22は、プログラムを記録した不揮発性記憶媒体の例を示すブロック図である。FIG. 22 is a block diagram illustrating an example of a non-volatile storage medium on which a program is recorded.
 次に、本発明の実施形態について図面を参照して詳細に説明する。尚、各図面及び明細書記載の各実施形態において、同様の機能を備える構成要素には同様の符号が与えられている。
 [第1の実施形態]
 図1は、本発明の第1の実施形態に係る分散アクセスノード30の構成を示すブロック図である。図1を参照すると、分散アクセスノード30は、アクセス場所決定部3010、アルゴリズム変更部3020、再配置実行部3030、アクセス履歴収集部3040、再配置情報生成部3050、負荷監視部3060及び入出力実行部3031を含む。
 図2は、分散アクセスノード30を含む分散システム100の構成を示すブロック図である。図2を参照すると、分散システム100は、クライアントノード10、分散アクセスノード30、分散システムネットワーク40、サーバストレージ50及びストレージ60から構成される。
 クライアントノード10は、ネットワーク20を介して分散アクセスノード30に接続される。
 尚、図2において、クライアントノード10、サーバストレージノード50、及びストレージ60は、それぞれ3つであるが、任意の数のクライアントノード10、サーバストレージノード50及びストレージ60であってよい。
 図2に示す構成において、分散システム10は、概略つぎのように動作する。
 分散システムを利用するクライアントノード10は、少なくともデータアイテムIDを含む、データアイテムの読み書きの要求を、ネットワーク20を介して分散アクセスノード30に送信する。尚、データアイテムIDは、データアイテム識別情報とも呼ばれる。また、データアイテムの読み書きの要求は、入出力要求とも呼ばれる。
 分散アクセスノード30は、入出力要求を受信すると、特定の分散配置アルゴリズムを用いて、データアイテムの格納場所(サーバストレージノード50)を一意に決定する。続けて、分散アクセスノード30は、分散システムネットワーク40を介して、その決定した格納場所であるサーバストレージノード50に、受信した入出力要求に基づいて、アクセス要求を送信する。サーバストレージノード50は、受信したアクセス要求に基づいて、自身が管理するストレージ60に対して、データアイテムの読み込み或いは書き出しを行う。
 分散アクセスノード30は、上述したように、特定の分散配置アルゴリズムを用いて、データアイテムの格納場所を一意に決定する。
 尚、特定の分散配置アルゴリズムは、任意の分散配置アルゴリズムであってよい。従って、分散システムネットワーク40上の具体的な分散配置は、任意である。ここで、具体的な分散配置とは、どのようにサーバストレージノード50の配置を決定するかということである。例えば、具体的な分散配置は、サーバストレージノード50間において多重化、階層化或いは仮想化する配置であってよい。
 また、サーバストレージノード50は、ストレージ60へのアクセス時の遅延を緩和するためにキャッシュ(不図示)を有していてもよい。サーバストレージノード50は、そのキャッシュ内にアクセス要求の対象のデータアイテムがあれば、そのキャッシュに対して、データアイテムの読み込み或いは書き出しを行うようにしてもよい。
 また、サーバストレージノード50は、任意のファイルシステム(不図示)を用いて、任意の構成のストレージ60を制御するようにしてよい。
 次に、分散アクセスノード30の各構成要素について、詳細に説明する。尚、図1に示す構成要素は、ハードウェア単位の構成要素ではなく、機能単位の構成要素を示している。
 アルゴリズム変更部3020は、分散アクセスノード30の初期設定時、及び分散配置アルゴリズムの指定を受け取った場合、アクセス場所決定部3010に分散配置アルゴリズムを設定する。
 アルゴリズム変更部3020は、例えば、分散アクセスノード30の初期設定時において、予め定められた分散配置アルゴリズムを、アクセス場所決定部3010に設定する。アルゴリズム変更部3020は、例えば、図示しない入力部を経由してオペレータから、分散配置アルゴリズムの指定を受け取り、この指定に対応する分散配置アルゴリズムを予め定められた分散配置アルゴリズムとする。アルゴリズム変更部3020は、例えば、外部のサーバ(不図示)や他のモジュール(不図示)から、分散配置アルゴリズムの指定を受け取り、この指定に対応する分散配置アルゴリズムを予め定められた分散配置アルゴリズムとしてもよい。
 アルゴリズム変更部3020は、例えば、各分散配置アルゴリズムに対応する分散配置プログラムを、記憶手段(不図示)に保持する。そして、アルゴリズム変更部3020は、保持している分散配置プログラムの内、予め定められた分散配置アルゴリズムに対応する分散配置プログラムをアクセス場所決定部3010にダウンロードして設定する。
 アルゴリズム変更部3020は、使用する分散配置アルゴリズムの識別情報(以後、分散配置アルゴリズムIDと呼ぶ)をアクセス場所決定部3010に通知して、分散配置アルゴリズムをアクセス場所決定部3010に設定するようにしてもよい。この場合、アクセス場所決定部3010は、アクセスするサーバストレージノード50を一意に決定する複数種類の分散配置アルゴリズムで動作可能であってよい。そして、アクセス場所決定部3010は、複数の分散配置アルゴリズムの内、通知された分散配置アルゴリズムIDに対応する分散配置アルゴリズムで動作して、アクセスするサーバストレージノード50を一意に決定する。
 尚、アルゴリズム変更部3020は、例えば、図示しない手段(例えば、ネットワーク20を介して図示しないサーバからプログラムを取得する手段)により、分散配置プログラムを取得し、保持するようにしてもよい。
 アクセス履歴収集部3040は、クライアントノード10から入出力要求のあった(アクセスされた)データアイテムの、データアイテムIDをアクセス履歴情報として収集する。
 図3は、アクセス履歴情報400の例を示す図である。図3を参照すると、アクセス履歴情報400は、データアイテムID401を含む。
 尚、アクセス履歴収集部3040は、例えば、サーバストレージノード50へアクセス要求を行ったデータアイテムのデータアイテムIDを、アクセス履歴情報400として収集するようにしてもよい。
 また、アクセス履歴収集部3040は、データアイテムID401に替えて、他の情報をアクセス履歴情報として収集してもよい。この場合、他の情報(例えば、データアイテムのハッシュ値)は、各分散配置アルゴリズムが特定のデータアイテムを同一のデータアイテムとして識別可能な情報である。即ち、アクセス履歴情報は、サーバストレージノード50に格納されたデータアイテムを特定する、何らかのデータアイテムの識別情報を少なくとも含む。
 更に、アクセス履歴収集部3040は、データアイテムの識別情報以外の任意の情報をアクセス履歴情報として併せて収集してもよい。任意の情報は、例えば、入出力要求のあった時刻、アクセス要求を行った時刻、入出力要求の種類(例えば、読み込み、書き出し)、データアイテムのサイズ及び対応する分散配置アルゴリズムIDである。
 再配置情報生成部3050は、再配置データアイテムID(再配置データアイテム識別情報とも呼ばれる)を1以上含む再配置情報を生成し、出力する。再配置データアイテムIDは、サーバストレージノード50に格納された、再配置対象のデータアイテムのデータアイテムID401である。
 図4は、再配置情報410の例を示す図である。図4を参照すると、再配置情報410は、再配置データアイテムID411を含む。
 再配置情報生成部3050は、アクセス履歴400に含まれるデータアイテムID401それぞれの含まれている個数を計数し、計数された個数の値が大きい順に、データアイテムID401を再配置データアイテムID411として並べた再配置情報410を生成する。
 再配置情報生成部3050は、例えば、アクセス履歴情報に含まれるデータアイテムIDを、単位時間当たりのアクセス数が多い順に、再配置データアイテムID411として並べた再配置情報410を生成してもよい。また、再配置情報生成部3050は、例えば、アクセス履歴情報に含まれるデータアイテムIDを、最近アクセスのあった順に、再配置データアイテムID411として並べた再配置情報410を生成してもよい。これらの場合、アクセス履歴情報は、データアイテム識別情報に対応する、入出力要求のあった時刻及びアクセス要求を行った時刻のいずれかを少なくとも含む。
 更に、再配置情報生成部3050は、例えば、入出力要求の種類、データアイテムのサイズ及び対応する分散配置アルゴリズムIDの内の任意のものに基づいて決定した順に、再配置データアイテムID411を並べた再配置情報410を生成してもよい。この場合、アクセス履歴情報は、それぞれに対応する情報を少なくとも含む。
 尚、再配置情報生成部3050は、例えば、サーバストレージノード50からサーバストレージノード50に格納しているデータアイテムのデータアイテムIDを取得し、取得したデータアイテムIDを再配置データアイテムID411としてもよい。この場合、分散アクセスノード30は、アクセス履歴収集部3040を含まなくてもよい。
 再配置実行部3030は、再配置情報410から、再配置データアイテムID411を1つ取得する。続けて、再配置実行部3030は、取得した再配置データアイテムID411を含み、その再配置データアイテムID411で特定されるデータアイテムの読み込みを要求する再配置読込要求を、アクセス場所決定部3010に出力する。
 また、再配置実行部3030は、再配置読込要求に対応して読み取ったデータアイテムの書き出しを要求する再配置書出要求を、アクセス場所決定部3010に出力する。尚、再配置書出要求は、対応する再配置データアイテムID411を含んでいてよい。
 また、再配置実行部3030は、再配置読込要求に基づいてデータアイテムを読み取ったサーバストレージノード50から、そのデータアイテムを消去することを要求する再配置後消去要求を、アクセス場所決定部3010に出力する。尚、再配置後消去要求は、対応する再配置データアイテムID411を含んでいてよい。
 入出力実行部3031は、データアイテムIDと読み込みの要求及び書き出しの要求のいずれであるかの情報とを少なくとも含む、入出力要求を受信する。
 入出力実行部3031は、入出力要求に応じて、次の(1)~(4)の処理を実行する。
 (1)入出力実行部3031は、受信した入出力要求がデータアイテムの読み込みの要求であって、かつ、そのデータアイテムのデータアイテムIDと同じ値の再配置データアイテムID411が再配置情報410に含まれている場合、以下の処理を行う。
 まず、入出力実行部3031は、その再配置データアイテムID411を含む、再配置読込要求をアクセス場所決定部3010に出力する。
 次に、入出力実行部3031は、再配置書出要求をアクセス場所決定部3010に出力する。
 次に、入出力実行部3031は、再配置後消去要求を、アクセス場所決定部3010に出力する。
 次に、入出力実行部3031は、再配置読込要求に対応して読み取ったデータアイテムを含む入出力応答を、入出力要求の発行元のクライアントノード10に送信する。
 (2)入出力実行部3031は、受信した入出力要求がデータアイテムの読み込みの要求であり、そのデータアイテムのデータアイテムIDと同じ値の再配置データアイテムID411が再配置情報410に含まれていない場合、以下の処理を行う。
 入出力実行部3031は、そのデータアイテムIDを含み、そのデータアイテムIDで特定されるデータアイテムの読み込みを要求する通常読込要求をアクセス場所決定部3010に出力する。
 次に、入出力実行部3031は、通常読込要求に対応して読み取ったデータアイテムを含む入出力応答を、入出力要求の発行元のクライアントノード10に送信する。
 (3)入出力実行部3031は、受信した入出力要求がデータアイテムの書き出しの要求であって、かつ、そのデータアイテムのデータアイテムIDと同じ値の再配置データアイテムID411が再配置情報410に含まれている場合、以下の処理を行う。尚、データアイテムのデータアイテムIDと同じ値の再配置データアイテムID411が再配置情報410に含まれている場合の書き出しは、即ち、データアイテムを上書きする書き出しである。
 まず、入出力実行部3031は、対応する再配置データアイテムID411を含み、受信した入出力要求に対応するデータアイテムの書き出しを要求する再配置書出要求を、アクセス場所決定部3010に出力する。
 次に、入出力実行部3031は、配置後消去要求を、アクセス場所決定部3010に出力する。配置後消去要求は、対応する再配置データアイテムID411を含み、後述する変更前アルゴリズムで導出されたサーバストレージノード50から、その再配置データアイテムID411で特定されるデータアイテムを消去することを要求するものである。
 (4)入出力実行部3031は、受信した入出力要求がデータアイテムの書き出しの要求であり、そのデータアイテムのデータアイテムIDと同じ値の再配置データアイテムID411が再配置情報410に含まれていない場合、以下の処理を行う。
 入出力実行部3031は、そのデータアイテムIDを含み、そのデータアイテムIDで特定されるデータアイテムの書き出しを要求する通常書出要求をアクセス場所決定部3010に出力する。
 入出力実行部3031における処理は、以上の通りである。
 アクセス場所決定部3010は、アルゴリズム変更部3020によって分散配置アルゴリズムを設定されたされた場合、これを変更後アルゴリズム(第2のアルゴリズム)として保持する。
 また、アクセス場所決定部3010は、既に変更後アルゴリズムを保持している状態において、アルゴリズム変更部3020によって分散配置アルゴリズムを新たに設定された場合、以下のように動作する。まず、アクセス場所決定部3010は、既に保持している変更後アルゴリズムを変更前アルゴリズム(第1のアルゴリズム)とする。続けて、アクセス場所決定部3010は、新たに設定された分散配置アルゴリズムを新たな変更後アルゴリズムして保持する。
 アクセス場所決定部3010は、例えば、分散配置アルゴリズムを実現するプログラムをアルゴリズム変更部3020から受け取り(設定され)、そのプログラム名を変更後アルゴリズム及び変更前アルゴリズムを特定する情報として保持する。図5は、分散配置アルゴリズムテーブル420の例を示す図である。図5を参照すると、分散配置アルゴリズムテーブル420は、変更後アルゴリズムを実現する変更後プログラム名421と変更前アルゴリズムを実現する変更前プログラム名422とを保持する。
 アクセス場所決定部3010は、変更後アルゴリズムを使用した再配置の処理が完了した場合、変更前プログラム名422を「0」でクリアし、対応する分散配置プログラムを削除する。
 また、アクセス場所決定部3010は、再配置読込要求を受け取った場合、変更前アルゴリズムを用いて、再配置読込要求に対応するアクセス要求を送信するノード識別情報(第1のノード識別情報に対応)を導出する。続けて、アクセス場所決定部3010は、導出したノード識別情報に対応するサーバストレージノード50(第1のノード)から、再配置読込要求に含まれる再配置データアイテムID411で特定されるデータアイテムを読み込む。
 また、アクセス場所決定部3010は、再配置書出要求を受け取った場合、変更後アルゴリズムを用いて、再配置書出要求に対応するアクセス要求を送信するノード識別情報(第2のノード識別情報に対応)を導出する。続けて、アクセス場所決定部3010は、導出したノード識別情報に対応するサーバストレージノード50(第2のノード)に、再配置書出要求に含まれる再配置データアイテムID411で特定されるデータアイテムを書き出す。
 また、アクセス場所決定部3010は、再配置後消去要求を受け取った場合、変更前アルゴリズムを用いて、再配置後消去要求に対応するアクセス要求を送信するノード識別情報(第1のノード識別情報に対応)を導出する。続けて、アクセス場所決定部3010は、導出したノード識別情報に対応するサーバストレージノード50(第1のノード)から、再配置後消去要求に含まれる再配置データアイテムID411で特定されるデータアイテムを消去する。
 アクセス場所決定部3010は、通常読込要求を受け取った場合、変更後アルゴリズムを用いて、通常読込要求に対応するアクセス要求を送信するノード識別情報を導出する。続けて、アクセス場所決定部3010は、導出したノード識別情報に対応するサーバストレージノード50から、再配置読込要求に含まれる再配置データアイテムID411で特定されるデータアイテムを読み込む。
 また、アクセス場所決定部3010は、通常書出要求を受け取った場合、変更後アルゴリズムを用い、通常書出要求に対応するアクセス要求を送信するノード識別情報を導出する。続けて、アクセス場所決定部3010は、導出したノード識別情報に対応するサーバストレージノード50に、再配置書出要求に含まれる再配置データアイテムID411で特定されるデータアイテムを書き出す。
 分散配置アルゴリズムは、例えば以下のアルゴリズムであってもよい。
 アクセス場所決定部3010は、分散配置アルゴリズムにおける初期設定の手順において、例えば図2に示す3台のサーバストレージノード50の、ノード識別情報それぞれに、1対1で対応する連続番号「0」、「1」、「2」を付与する。
 アクセス場所決定部3010は、分散配置アルゴリズムにおけるデータアイテムIDに対応するノード識別情報を導出する第1の手順から第4の手順において、以下のように動作する。
 まず、第1の手順において、アクセス場所決定部3010は、入出力要求に含まれるデータアイテムIDを数値に変換する。例えば、アクセス場所決定部3010は、データアイテムIDの文字コードを16進数に変換する。
 次に、第2の手順において、アクセス場所決定部3010は、入出力要求に含まれるデータアイテムIDを「3(サーバストレージノード50の台数)」で割った剰余を算出する。
 次に、第3の手順において、アクセス場所決定部3010は、算出した剰余を、そのデータアイテムIDで特定されるデータアイテムを格納するサーバストレージノード50の連続番号と決定する。
 次に、第4の手順において、アクセス場所決定部3010は、決定した連続番号に対応するノード識別情報を導出する。
 また、分散配置アルゴリズムは、例えば以下のアルゴリズムである。
 アクセス場所決定部3010は、分散配置アルゴリズムの初期設定の手順において、その分散配置アルゴリズムが指定するハッシュ関数で算出されるハッシュ値がとりえる値を、サーバストレージノード50のノード識別情報それぞれに、関連付ける。ハッシュ関数は、例えば、CRC(Cyclic Redundancy Check)16である。具体的には、分散配置アルゴリズムが指定するハッシュ関数が、例えば、CRC16である場合、そのハッシュ関数で算出されるハッシュ値がとりえる値は、#0000(#は後に続く4つの文字が16進数の数値を表すことを意味する)から#FFFFである。アクセス場所決定部3010は例えば、図2に示す3台のサーバストレージノード50それぞれに、そのハッシュ値がとりえる値を3分割して、関連付ける。即ち、アクセス場所決定部3010は、例えば、1台目乃至3台目のサーバストレージノード50のノード識別情報それぞれに、#0000~#5555、#5556~#AAAA及び#AAAB~#FFFFを、分担ハッシュ値として関連付ける。
 アクセス場所決定部3010は、分散配置アルゴリズムのデータアイテムIDに対応するノード識別情報を導出する第1の手順から第4の手順において、以下のように動作する。
 まず、第1の手順において、アクセス場所決定部3010は、入出力要求に含まれるデータアイテムIDのハッシュ値を、そのハッシュ関数で算出する。アクセス場所決定部3010は、データアイテムIDが「DATA1」であり、そのハッシュ関数がCRC16である場合、アクセス場所決定部3010は、例えば、#0C9Eを算出する。
 次に、第2の手順において、アクセス場所決定部3010は、データアイテムIDのハッシュ値がいずれの分担ハッシュ値の範囲に含まれるかを判定する。アクセス場所決定部3010は、例えば、#0C9Eが#0000~#5555に含まれることを判定する。
 次に、第3の手順において、アクセス場所決定部3010は、判定した分担ハッシュ値の範囲に対応するノード識別情報を導出する。
 負荷監視部3060は、分散アクセスノード30の負荷状態を監視し、その監視結果を出力する。負荷状態は、例えば、分散アクセスノード30のCPU(Central Processing Unit、不図示)の使用率やメモリ(不図示)の使用率である。
 尚、再配置実行部3030が再配置読込要求を出力することと、アクセス場所決定部3010が変更前アルゴリズムを用いて導出したノード識別情報に対応するサーバストレージノード50に、再配置読込要求に含まれる再配置データアイテムID411で特定されるデータアイテムを読み込むこととは、併せて再配置読込手段とも呼ばれる。
 また、再配置実行部3030が再配置書出要求を出力することと、アクセス場所決定部3010が変更後アルゴリズムを用いて導出したノード識別情報に対応するサーバストレージノード50に、再配置書出要求に含まれる再配置データアイテムID411で特定されるデータアイテムを書き出すこととは、併せて再配置書出手段とも呼ばれる。
 また、再配置実行部3030が再配置後消去要求を出力することと、アクセス場所決定部3010が変更前アルゴリズムを用いて導出したノード識別情報に対応するサーバストレージノード50から、再配置後消去要求に含まれる再配置データアイテムID411で特定されるデータアイテムを消去することとは、併せて再配置消去手段とも呼ばれる。
 以上が、分散アクセスノード30の機能単位の各構成要素についての説明である。
 次に、分散アクセスノード30のハードウェア単位の構成要素について説明する。
 図6は、本実施形態における分散アクセスノード30とその周辺装置のハードウェア構成を示す図である。図6に示されるように、分散アクセスノード30は、CPU3070、記憶部3071、記憶装置3072、入力部3073、出力部3074及び通信部3075を含む。CPU3070は、オペレーティングシステム(不図示)を動作させて、本実施形態に係る分散アクセスノード30の、全体の動作を制御する。また、CPU3070は、例えば記憶装置3072に装着された不揮発性の記録媒体から、記憶部3071にプログラムやデータを読み込む。図22は、プログラムを記録した不揮発性記憶媒体3077の例を示すブロック図である。そして、CPU3070は、読み込んだプログラムに従って、また読み込んだデータに基づいて、図1に示す各部として各種の処理を実行する。
 尚、CPU3070は、通信網(不図示)に接続されている外部コンピュータ(不図示)から、記憶部3071にプログラムやデータをダウンロードするようにしてもよい。
 記憶部3071は、プログラムやデータを記憶する。
 記憶装置3072は、例えば、光ディスク、フレキシブルディスク、磁気光ディスク、外付けハードディスク及び半導体メモリであって、不揮発性の記憶媒体を含む。記憶装置3072は、プログラムをコンピュータ読み取り可能に記録する。また、記憶装置3072は、データをコンピュータ読み取り可能に記録してもよい。
 入力部3073は、例えばマウスやキーボード、内蔵のキーボタンなどで実現され、入力操作に用いられる。入力部3073は、マウスやキーボード、内蔵のキーボタンに限らず、例えばタッチパネル、加速度計、ジャイロセンサ、カメラなどでもよい。
 出力部3074は、例えばディスプレイで実現され、出力を確認するために用いられる。
 通信部3075は、ネットワーク20及び分散アクセスノード30とのインタフェースを実現する。通信部3075は、アクセス場所決定部3010、アルゴリズム変更部3020、入出力実行部3031の一部として含まれる。
 以上が、分散アクセスノード30のハードウェア単位の各構成要素についての説明である。
 以上説明したように、図1に示す機能単位のブロックは、図6に示すハードウェア構成によって実現される。ただし、分散アクセスノード30が備える各部の実現手段は、上記に限定されない。すなわち、分散アクセスノード30は、物理的に結合した一つの装置により実現されてもよいし、物理的に分離した2つ以上の装置を有線または無線で接続し、これら複数の装置により実現されてもよい。
 また、前述のプログラムを記録した記録媒体(または記憶媒体)3077が分散アクセスノード30に供給され、分散アクセスノード30は、記録媒体に格納されたプログラムを読み込み、実行してもよい。すなわち、本実施形態は、分散アクセスノード30が実行するプログラムを、一時的にまたは非一時的に、記憶する記録媒体の実施形態を含む。
 次に、本実施形態の動作について図面を参照して詳細に説明する。
 図7及び図8は、本実施形態における、通常状態で入出力要求を受信した場合の動作を示すフローチャートである。
 尚、通常状態は、分散アクセスノード30の初期設定時にアルゴリズム変更部3020によって分散配置アルゴリズムを設定され、新たな分散配置アルゴリズムは未だ設定されていない状態である。通常状態は、また、アルゴリズム変更部3020によって新たな分散配置アルゴリズムを設定され、新たな分散配置アルゴリズムを用いた再配置の処理が完了し、更なる新たな分散配置アルゴリズムは未だ設定されていない状態である。従って、通常状態は、再配置情報410に再配置データアイテムID411が1つも含まれていない状態であり、変更前アルゴリズムは存在しない状態であり、再配置の処理を実行していない状態である。また、再配置の処理を実行している状態を、以後、再配置状態と呼ぶ。
 分散アクセスノード30は、クライアントノード10のいずれかがデータアイテムを読み書きするために送信した、入出力要求を受信したことを契機に、本動作を開始する。
 まず、入出力実行部3031は、通常状態であるか否かを確認する(A101)。例えば、入出力実行部3031は、再配置情報410に再配置データアイテムID411が1つも含まれていない状態(通常状態)であるか否(再配置状態)かを確認する。入出力実行部3031は、例えば、分散配置アルゴリズムテーブル420を参照して、変更前アルゴリズムと変更後アルゴリズムとが存在している状態(再配置状態)か変更後アルゴリズムだけが存在している状態(通常状態)かを確認するようにしてもよい。
 定常状態でない(再配置状態である)場合(A101でNO)、処理は後述する図11のステップC103へ進む。
 定常状態である場合(A101でYES)、入出力実行部3031は、受信した入出力要求が読み込みを要求する入出力要求であるか、書き出しを要求する入出力要求であるかを判定する(ステップA102)。読み込みを要求する入出力要求である場合(ステップA102でYES)、処理はA103へ進む。書き出しを要求する入出力要求である場合(ステップA102でNO)、処理はA110へ進む。
 A103において、入出力実行部3031は、受信した入出力要求に含まれるデータアイテムIDを含む、通常読込要求をアクセス場所決定部3010に出力する(ステップA103)。
 次に、アクセス場所決定部3010は、変更後アルゴリズムを用いて、受信した通常読込要求に対応する、アクセス要求を出力するサーバストレージノード50のノード識別情報を導出する(ステップA104)。
 次に、アクセス場所決定部3010は、導出したノード識別情報に対応するサーバストレージノード50に、受信した通常読込要求に対応するアクセス要求を出力する(ステップA105)。
 次に、入出力実行部3031は、アクセス場所決定部3010が出力したアクセス要求に対応するデータアイテムを受け取る(ステップA106)。
 次に、入出力実行部3031は、読み取ったデータアイテムを含む入出力応答を、入出力要求の発行元のクライアントノード10に送信する(ステップA107)。そして、処理はステップA120へ進む。
 ステップA110において、入出力実行部3031は、受信した入出力要求に含まれるデータアイテムIDを含む、通常書出要求をアクセス場所決定部3010に出力する(ステップA110)。
 次に、アクセス場所決定部3010は、変更後分散配置アルゴリズムを用いて、受信した通常書出要求に対応するアクセス要求を出力するサーバストレージノード50のノード識別情報を導出する(ステップA111)。
 次に、アクセス場所決定部3010は、導出したノード識別情報に対応するサーバストレージノード50に、受信した通常書出要求に対応するアクセス要求を出力する(ステップA112)。そして、処理はステップA120へ進む。
 ステップA120において、アクセス履歴収集部3040は、アクセス履歴情報400に出力したアクセス要求に対応するデータアイテムIDを記録する。(ステップA120)。そして、処理は終了する。
 以上が、通常状態で入出力要求を受信した場合の分散アクセスノード30の動作の説明である。
 図9及び図10は、本実施形態における、分散配置アルゴリズムを変更し、データアイテムを再配置する動作を示すフローチャートである。
 分散アクセスノード30は、図6に示す入力部3073を経由してオペレータから、新たに設定する分散配置アルゴリズムの指定を受け取ったことを契機に、本動作を開始する。
 アルゴリズム変更部3020は、オペレータから新たに受け取った分散配置アルゴリズムの指定に対応する分散配置アルゴリズムをアクセス場所決定部3010に設定する(ステップB101)。具体的には、アルゴリズム変更部3020は、受け取った分散配置アルゴリズムの指定に対応する分散配置プログラムをアクセス場所決定部3010にダウンロードする。同時に、アルゴリズム変更部3020は、その分散配置プログラムのプログラム名をアクセス場所決定部3010に出力する。
 次に、アクセス場所決定部3010は、分散配置アルゴリズムの設定を受け付ける。具体的には、アクセス場所決定部3010は、プログラム名を受け取ると、変更後プログラム名421を変更前プログラム名422に上書きし、受け取ったプログラム名を変更後プログラム名421に書き込む(ステップB102)。
 次に、再配置情報生成部3050は、図3に示すようなアクセス履歴情報400を参照し、図4に示すような再配置情報410を生成する(ステップB103)。
 尚、再配置情報生成部3050は、アクセス履歴情報400に含まれるデータアイテムID401の内、参照済みのデータアイテムID401を削除するようにしてもよい。こうした場合、再配置情報410が生成された後に、アクセス履歴情報400含まれるデータアイテムID401は、新たに受け取った分散配置アルゴリズムを用いて決定されたサーバストレージノード50に格納されたデータアイテムを特定する。従って、更に新たな分散配置アルゴリズムへ変更して、データアイテムを再配置する処理を実行することが可能となる。
 次に、負荷監視部3060は、高負荷状態でないことを確認する(ステップB104)。例えば、負荷監視部3060は、分散アクセスノード30のCPU使用率が、予め定められた閾値(例えば、50%)を越えていないか否かに基づいて高負荷状態でないことを確認する。また、負荷監視部3060は、サーバストレージノード50に負荷の状態を問い合わせた結果に基づいて、或いはその結果と分散アクセスノード30のCPU使用率の両方に基づいて、高負荷状態でないことを確認するようにしてもよい。高負荷状態である場合(ステップB104でYES)、処理は終了する。
 高負荷状態でない場合(ステップB104でNO)、再配置実行部3030は、再配置情報410の先頭から、再配置データアイテムID411を1つ取得する(ステップB105)。
 次に、再配置実行部3030は、取得した再配置データアイテムID411を含み、その再配置データアイテムID411で特定されるデータアイテムの読み込みを要求する再配置読込要求を、アクセス場所決定部3010に出力する(ステップB106)。
 次に、アクセス場所決定部3010は、再配置読込要求を受け取り、変更前アルゴリズムを用いて、再配置読込要求に対応するアクセス要求を送信するノード識別情報を導出する(ステップB107)。
 続けて、アクセス場所決定部3010は、導出したノード識別情報に対応するサーバストレージノード50から、再配置読込要求に含まれる再配置データアイテムID411で特定されるデータアイテムを読み込む(ステップB108)。具体的には、アクセス場所決定部3010は、導出したノード識別情報に対応するサーバストレージノード50に、再配置データアイテムID411を含むアクセス要求を送信する。次に、アクセス場所決定部3010は、出力したアクセス要求に応答して、サーバストレージノード50から送信されたデータアイテムを受け取る。
 次に、再配置実行部3030は、再配置読込要求に対応して読み取ったデータアイテムの書き出しを要求する再配置書出要求を、アクセス場所決定部3010に出力する(ステップB109)。
 次に、アクセス場所決定部3010は、再配置書出要求を受け取り、変更後アルゴリズムを用いて、再配置書出要求に対応するアクセス要求を送信するノード識別情報を導出する(ステップB110)。
 続けて、アクセス場所決定部3010は、導出したノード識別情報に対応するサーバストレージノード50に、再配置書出要求に含まれる再配置データアイテムID411で特定されるデータアイテムを書き出す(ステップB111)。
 次に、再配置実行部3030は、再配置読込要求に基づいてデータアイテムを読み取ったサーバストレージノード50から、そのデータアイテムを消去することを要求する再配置後消去要求を、アクセス場所決定部3010に出力する(ステップB112)。
 次に、アクセス場所決定部3010は、再配置後消去要求を受け取り、変更前アルゴリズムを用いて、再配置後消去要求に対応するアクセス要求を送信するノード識別情報を導出する(ステップB113)。
 続けて、アクセス場所決定部3010は、導出したノード識別情報に対応するサーバストレージノード50から、再配置後消去要求に含まれる再配置データアイテムID411で特定されるデータアイテムを消去する(ステップB114)。
 次に、再配置実行部3030は、再配置情報410から、対応する再配置データアイテムID411を削除する(ステップB115)。
 次に、再配置実行部3030は、再配置情報410に、再配置データアイテムID411が存在するか否かを確認する(ステップB116)。存在する場合(ステップB116でYES)、処理はステップB105へ戻る。
 存在しない場合(ステップB116でNO)、アクセス場所決定部3010は、分散配置アルゴリズムテーブル420の変更前プログラム名422を「0」クリアする(ステップB117)。そして、処理は終了する。
 尚、ステップB103のアクセス履歴情報400から再配置情報410を生成する処理を、例えば、ステップB101、ステップB102及びステップB104と同時に動作するようにすることが望ましい。また、クライアントノード10からの入出力要求の頻度が高い場合、ステップB103の処理を、例えば、図9に示すフローチャートの処置とは独立して、一定時間ごとに行うようにしてもよい。こうした場合、アクセス履歴情報400に含まれるデータアイテムID401の内、参照済みのデータアイテムID401は、順次削除されるようにしてもよい。
 以上が、分散配置アルゴリズムを変更し、データアイテムを再配置する動作の説明である。
 図11、図12及び図13は、再配置状態で入出力要求を受信した場合(図7のステップA101でYES)の動作を示すフローチャートである。
 入出力実行部3031は、再配置状態で入出力要求を受信した場合(図7のステップA101でYES)、受信した入出力要求に含まれるデータアイテムIDが、再配置情報410に含まれる再配置データアイテムID411のいずれかと一致するか否かを確認する(ステップC103)。一致する場合(ステップC103でYES)、処理はステップC104へ進む。一致しない場合(ステップC103でNO)、処理は図7のステップA102へ進む。
 ステップC104において、入出力実行部3031は、受信した入出力要求が、読み込みを要求する入出力要求であるか、書き出しを要求する入出力要求であるかを判定する(ステップC104)。読み込みを要求する入出力要求である場合(ステップC104でYES)、処理はC105へ進む。書き出しを要求する入出力要求である場合(ステップC104でNO)、処理はC120へ進む。
 ステップC105において、入出力実行部3031は、読み込むデータアイテムを特定する再配置データアイテムID411を含む再配置読込要求を、アクセス場所決定部3010に出力する(ステップC105)。
 次に、アクセス場所決定部3010は、再配置読込要求を受け取り、変更前アルゴリズムを用いて、再配置読込要求に対応するアクセス要求を送信するノード識別情報を導出する(ステップC106)。
 続けて、アクセス場所決定部3010は、導出したノード識別情報に対応するサーバストレージノード50から、再配置読込要求に含まれる再配置データアイテムID411で特定されるデータアイテムを読み込む(ステップC107)。
 次に、入出力実行部3031は、再配置読込要求に対応して読み取ったデータアイテムの書き出しを要求する再配置書出要求を、アクセス場所決定部3010に出力する(ステップC108)。
 次に、アクセス場所決定部3010は、再配置書出要求を受け取り、変更後アルゴリズムを用いて、再配置書出要求に対応するアクセス要求を送信するノード識別情報を導出する(ステップC109)。
 続けて、アクセス場所決定部3010は、導出したノード識別情報に対応するサーバストレージノード50に、再配置書出要求に含まれる再配置データアイテムID411で特定されるデータアイテムを書き出す(ステップC110)。
 次に、入出力実行部3031は、再配置読込要求に基づいてデータアイテムを読み取ったサーバストレージノード50から、そのデータアイテムを消去することを要求する再配置後消去要求を、アクセス場所決定部3010に出力する(ステップC111)。
 次に、アクセス場所決定部3010は、再配置後消去要求を受け取り、変更前アルゴリズムを用いて、再配置後消去要求に対応するアクセス要求を送信するノード識別情報を導出する(ステップC112)。
 続けて、アクセス場所決定部3010は、導出したノード識別情報に対応するサーバストレージノード50から、再配置後消去要求に含まれる再配置データアイテムID411で特定されるデータアイテムを消去する(ステップC113)。
 次に、入出力実行部3031は、再配置情報410から、対応する再配置データアイテムID411を削除する(ステップC114)。
 次に、入出力実行部3031は、再配置読込要求に対応して読み取ったデータアイテムを含む入出力応答を、入出力要求の発行元のクライアントノード10に送信する(ステップC115)。そして、処理はC130へ進む。
 C120において、入出力実行部3031は、対応する再配置データアイテムID411を含み、受信した入出力要求に対応するデータアイテムの書き出しを要求する配置書出要求を、アクセス場所決定部3010に出力する(ステップC120)。
 次に、アクセス場所決定部3010は、配置書出要求を受け取り、変更後アルゴリズムを用いて、再配置書出要求に対応するアクセス要求を送信するノード識別情報を導出する(ステップC121)。
 続けて、アクセス場所決定部3010は、導出したノード識別情報に対応するサーバストレージノード50に、再配置書出要求に含まれる再配置データアイテムID411で特定されるデータアイテムを書き出す(ステップC122)。
 次に、入出力実行部3031は、変更前アルゴリズムで導出されたサーバストレージノード50から、そのデータアイテムを消去することを要求する再配置後消去要求を、アクセス場所決定部3010に出力する(ステップC123)。
 次に、アクセス場所決定部3010は、再配置後消去要求を受け取り、変更前アルゴリズムを用いて、再配置後消去要求に対応するアクセス要求を送信するノード識別情報を導出する(ステップC124)。
 続けて、アクセス場所決定部3010は、導出したノード識別情報に対応するサーバストレージノード50から、再配置後消去要求に含まれる再配置データアイテムID411で特定されるデータアイテムを消去する(ステップC125)。
 次に、入出力実行部3031は、再配置情報410から、対応する再配置データアイテムID411を削除する(ステップC126)。ここで、対応する再配置データアイテムID411は、再配置後消去要求に含まれる再配置データアイテムID411である。そして、処理はC130へ進む。
 [0166]
 ステップC130において、アクセス履歴収集部3040は、アクセス履歴情報400に、出力したアクセス要求に対応するデータアイテムIDを記録する。(ステップC130)。
 以上が、再配置状態で入出力要求を受信した場合の動作の説明である。
 尚、分散アクセスノード30は、3以上の分散配置アルゴリズムを用いるようにしてもよい。この場合、アクセス履歴情報は、データアイテムIDに加えて、対応する分散配置アルゴリズムIDを含むようにしてもよい。加えて、アクセス場所決定部3010は、分散配置アルゴリズムIDを参照して、再配置読込要求及び再配置後消去要求の処理時に用いる変更前アルゴリズムを選択するようにしてもよい。
 また、分散アクセスノード30は、予め定められた特定の状況(例えば、CPU使用率が所定の値より高い)において、入出力要求に含まれるデータアイテムIDに対応するデータアイテムについてのみ再配置を実行するようにしてもよい。
 上述した本実施形態における第1の効果は、分散システムの運用中においても、分散配置アルゴリズムをダイナミックに変更することが可能になる点である。
 その理由は、以下のような構成を含むからである。即ち、第1に再配置情報生成部3050が、再配置情報410を生成する。第2に、再配置実行部3030が再配置情報410に基づいて、再配置読込要求と再配置書出要求と再配置後消去要求とを出力する。第3に、アクセス場所決定部3010が、再配置読込要求に応じて、変更前アルゴリズムを用いて導出したサーバストレージノード50から対応するデータアイテムを読み出す。第4に、アクセス場所決定部3010が、再配置書出要求に応じて、変更後アルゴリズムを用いて導出したサーバストレージノード50にそのデータアイテムを書き出す。第5に、アクセス場所決定部3010が、再配置後消去要求に応じて、変更前アルゴリズムを用いて導出したサーバストレージノード50に含まれる、そのデータアイテムを消去する。尚、ここでの「導出したサーバストレージノード50」とは、「導出したノード識別情報に対応するサーバストレージノード50」を意味する。
 上述した本実施形態における第2の効果は、分散配置アルゴリズムを変更する処理と、入出力要求の処理とを、並行して効率よく処理することが可能になる点である。
 その理由は、以下のような構成を含むからである。即ち、第1に入出力実行部3031が、再配置情報410に基づいて、再配置読込要求と再配置書出要求と再配置後消去要求とを、または、通常読込要求と通常書出要求とを、選択的に出力する。第2に、アクセス場所決定部3010が、通常読込要求に応じて、変更後アルゴリズムを用いて導出したサーバストレージノード50から対応するデータアイテムを読み出す。第3に、アクセス場所決定部3010が、通常書出要求に応じて、変更後アルゴリズムを用いて導出したサーバストレージノード50にそのデータアイテムを書き出す。尚、ここでの「導出したサーバストレージノード50」とは、「導出したノード識別情報に対応するサーバストレージノード50」を意味する。
 上述した本実施形態における第3の効果は、第1の分散配置アルゴリズムから第2の分散配置アルゴリズムへ変更が完了する前に、更に第3の分散配置アルゴリズムへの変更を開始することが可能になる点である。
 その理由は、アクセス履歴情報に分散配置アルゴリズムIDを含み、アクセス場所決定部3010は、分散配置アルゴリズムIDを参照して、再配置読込要求及び再配置後消去要求の処理時に用いる変更前アルゴリズムを選択するようにしたからである。
 上述した本実施形態における第4の効果は、分散アクセスノード30及びサーバストレージノード50の内の1以上の内のいずれかが高負荷状態であっても、データアイテムの再配置処理を効率よく実行することが可能になる点である。
 その理由は、分散アクセスノード30は、予め定められた特定の状況において、入出力要求に含まれるデータアイテムIDに対応するデータアイテムについてのみ再配置を実行するようにしたからである。
 [第2の実施形態]
 次に、本発明の第2の実施形態について図面を参照して詳細に説明する。
 図14は、本実施形態に係る分散アクセスノード32の構成を示すブロック図である。図14を参照すると、本実施形態に係る分散アクセスノード32は、第1の実施形態の分散アクセスノード30と比べ、効果予測部3080及び効果通知部3081を更に含む。また、分散アクセスノード32は、分散アクセスノード30と比べて、アクセス場所決定部3010に替えてアクセス場所決定部3210を含む。
 尚、分散アクセスノード32のハードウェア単位の構成要素は、図6に示す分散アクセスノード30及びその周辺装置のハードウェア構成の構成要素と同等である。
 効果予測部3080は、候補アルゴリズムに対応する、データアイテムの配置の適切度を示す配置適切度を算出する。候補アルゴリズムとは、現在の変更後アルゴリズム(現在使用している分散配置アルゴリズム)に替えて新たな変更後アルゴリズムとする、複数の分散配置アルゴリズムの内のいずれかである。そして、候補アルゴリズムは、現在の変更後アルゴリズム自身を含む。効果予測部3080は、候補アルゴリズムを選定し、アクセス場所決定部3210に出力し、その応答として再配置ノード対応情報を受け取り、受け取った再配置ノード対応情報に基づいて配置適切度を算出する。
 図15は、再配置ノード対応情報430の例を示す情報である。図15を参照すると、再配置ノード対応情報430は、再配置データアイテムID411とノード識別情報432を対応付けて含む。
 効果予測部3080は、各サーバストレージノード50に格納されるデータアイテムの数に基づいて、データアイテムの散布度(例えば、標準偏差)を算出し、これを配置適切度とする。
 効果予測部3080は、例えば、アクセス履歴情報400を参照してデータアイテムそれぞれのアクセス頻度を算出する。そして、効果予測部3080は、このアクセス頻度に基づいて各サーバストレージノード50のアクセス頻度を更に算出する。そして、効果予測部3080は、算出したアクセス頻度を配置適切度としてもよい。
 また、効果予測部3080は、データアイテムそれぞれのアクセス頻度、各サーバストレージノード50に格納されるデータアイテムの数とサイズをスコア化(数値化)してもよい。そして、効果予測部3080は、サーバストレージノード50ごとに合計値を算出して配置適切度としてもよい。こうした場合、アクセス履歴情報400は、データアイテムのサイズを含むようにしてもよい。
 効果通知部3081は、効果予測部3080が予測した配置適切度に基づいて、分散配置アルゴリズムと対応する配置適切度とを含む利用者判断情報を生成する。次に、効果通知部3081は、生成した利用者判断情報を、例えば、図6の出力部3074を介してディスプレイ(不図示)に表示させる。
 図16は、利用者判断情報440の例を示す図である。図16を参照すると、利用者判断情報440は、分散配置アルゴリズムID441と配置適切度442とを含む。
 アクセス場所決定部3210は、図1のアクセス場所決定部3010の機能に加え、以下の機能を含む。まず、アクセス場所決定部3210は、候補アルゴリズムを用いて、再配置情報410に含まれる再配置データアイテムID411に対応するデータアイテムについて、それらが格納されるサーバストレージノード50のノード識別情報432を導出する。次に、アクセス場所決定部3010は、再配置情報410の再配置データアイテムID411それぞれに導出したノード識別情報432を対応付けた再配置ノード対応情報430を、出力する。
 次に、本実施形態の動作について、図面を参照して詳細に説明する。
 図17は、本実施形態における、配置適切度を算出する動作を示すフローチャートである。
 最初に、再配置情報生成部3050は、アクセス履歴情報400を参照して再配置情報410を生成する(ステップD101)。
 次に、効果予測部3080は、現在の変更後アルゴリズムを、候補アルゴリズムとして、アクセス場所決定部3010に出力する(ステップD102)。
 次に、アクセス場所決定部3010は、受け取った候補アルゴリズムを用いて、再配置情報410に含まれる再配置データアイテムID411に対応するデータアイテムについて、それらが格納されるサーバストレージノード50のノード識別情報432を導出する(ステップD103)。
 次に、アクセス場所決定部3010は、再配置情報410の再配置データアイテムID411それぞれに導出したノード識別情報411を対応付けた再配置ノード対応情報430を生成し、効果予測部3080に出力する(ステップD104)。
 次に、効果予測部3080は、受け取った再配置ノード対応情報430に基づいて、候補アルゴリズムに対応する配置適切度を算出し、対応する分散配置アルゴリズムIDと共に効果通知部3081へ出力する(ステップD105)。
 次に、効果予測部3080は、アルゴリズム変更部3020が変更後アルゴリズムとして設定可能な、複数の分散配置アルゴリズムの内から、候補アルゴリズムとして選択する分散配置アルゴリズムが存在するか否かを判定する(ステップD106)。選択する分散配置アルゴリズムが存在する場合(ステップD106でYES)、処理はステップD107へ進む。選択する分散配置アルゴリズムが存在しない場合(ステップD106でYES)、処理は後述する図18のステップE101へ進む。また、効果予測部3080は、例えば、現在の変更後アルゴリズムを候補アルゴリズムとして算出した配置適切度と、ステップD105で出力した配置適切度との比が予め定められた値を超えた場合、候補アルゴリズムの選択を終了するようにしてもよい。
 ステップD107において、効果予測部3080は、候補アルゴリズムを1つ選択し、アクセス場所決定部3010に出力する(ステップD107)。そして、処理はステップD103へ戻る。尚、効果予測部3080は、例えば、アルゴリズム変更部3020が保持する分散配置アルゴリズムを、順番に、候補アルゴリズムとして選択する。また、効果予測部3080は、例えば、図6に示す入力部3073からオペレータが入力した分散配置アルゴリズムを候補アルゴリズムとして選択するようにしてもよい。図18は、本実施形態における、効果通知部3081の動作を示すフローチャートである。
 まず、効果通知部3081は、受け取った配置適切度と対応する分散配置アルゴリズムIDとに基づいて、利用者判断情報440を生成する(ステップE101)。
 次に、効果通知部3081は、生成した利用者判断情報440を、例えば、図6の出力部3074を介してディスプレイ(不図示)に表示させる(ステップE102)。
 オペレータは、表示された利用者判断情報440を確認し、図6の入出力部3073によって適切な分散配置アルゴリズムを選択することができる。そして、分散アクセスノード32は、選択した分散配置アルゴリズムを指定して、前述した図9、図10に示す動作を実行し、データアイテムを再配置させる。
 上述した本実施形態における第1の効果は、分散配置アルゴリズムを変更した場合の、データアイテムの配置がどの程度適切になるかの予測を得ることが可能になる点である。
 その理由は、アクセス場所決定部3010が再配置ノード対応情報430を生成し、効果予測部3080が、再配置ノード対応情報430に基づいて、候補アルゴリズムに対応する配置適切度を算出するようにしたからである。
 上述した本実施形態における第2の効果は、オペレータが適切な分散配置アルゴリズムを選択することを、可能にする点である。
 その理由は、効果通知部3081が、配置適切度と対応する分散配置アルゴリズムIDとに基づいて、利用者判断情報440を生成し、表示させるようにしたからである。
 [第3の実施形態]
 次に、本発明の第3の実施形態について図面を参照して詳細に説明する。
 図19は、本実施形態に係る分散アクセスノード33の構成を示すブロック図である。図19を参照すると、本実施形態に係る分散アクセスノード33は、第1の実施形態の分散アクセスノード30と比べ、効果予測部3080とアルゴリズム決定部3090と適切度監視部3091とを更に含む。また、分散アクセスノード33は、分散アクセスノード30と比べて、アクセス場所決定部3010に替えてアクセス場所決定部3210を含む。
 尚、分散アクセスノード33のハードウェア単位の構成要素は、図6に示す分散アクセスノード30及びその周辺装置のハードウェア構成の構成要素と同等である。
 効果予測部3080は、図14に示す効果予測部3080と同等である。
 アクセス場所決定部3210は、図14に示すアクセス場所決定部3210と同等である。
 適切度監視部3091は、予め定められた時期(例えば、1時間毎)に、現在の変更後アルゴリズムを候補アルゴリズムとしてアクセス場所決定部3210に出力する。尚、適切度監視部3091は、図6の入力部3073からオペレータの指示を受けた場合に、現在の変更後アルゴリズムを候補アルゴリズムとしてアクセス場所決定部3210に出力するようにしてもよい。
 次に、適切度監視部3091は、その応答として再配置ノード対応情報430を受け取り、受け取った再配置ノード対応情報430に基づいて配置適切度を算出する。次に、適切度監視部3091は、算出配置適切度が予め定められた閾値を越えた場合(例えば、配置適切度とした散布度を表す標準偏差が、所定の値を超えた場合)、アルゴリズム決定部3090にその配置適切度を出力する。
 アルゴリズム決定部3090は、効果予測部3080が出力する配置適切度に基づいて、適切な分散配置アルゴリズムを選択する。次に、アルゴリズム決定部3090は、選択した分散配置アルゴリズムの指定をアルゴリズム変更部3020に出力する。
 次に、本実施形態の動作について、図面を参照して詳細に説明する。
 図20は、本実施形態における分散配置アルゴリズムを決定する動作を示すフローチャートである。
 分散アクセスノード33は、計時手段(不図示)のタイムアウト発生を契機に、図20の動作を開始する。
 最初に、再配置情報生成部3050は、アクセス履歴情報400を参照して再配置情報410を生成する(ステップF101)。
 次に、適切度監視部3091は、現在の変更後アルゴリズムを候補アルゴリズムとしてアクセス場所決定部3210に出力する(ステップF102)。
 次に、アクセス場所決定部3210は、受け取った候補アルゴリズムを用いて、再配置情報410に含まれる再配置データアイテムID411に対応するデータアイテムについて、それらが格納されるサーバストレージノード50のノード識別情報432を導出する(ステップF103)。
 次に、アクセス場所決定部3010は、再配置情報410の再配置データアイテムID411それぞれに導出したノード識別情報432を対応付けた再配置ノード対応情報430を、適切度監視部3091に出力する(ステップF104)。
 次に、適切度監視部3091は、受け取った再配置ノード対応情報430に基づいて配置適切度を算出する(ステップF105)。
 次に、適切度監視部3091は、算出した配置適切度が予め定められた閾値を越えたか否かを判定する(ステップF106)。閾値を越えていない場合(ステップF106でNO)、処理は終了する。
 配置適切度が予め定められた閾値を越えた場合(ステップF106でYES)、適切度監視部3091は、算出した配置適切度を、アルゴリズム決定部3090に出力する(ステップF107)。
 ここで、予め定められた閾値は、例えば、サーバストレージノード50のいずれかのデータアイテム数と、他のサーバストレージノード50のデータアイテム数との比の値で、「2」である。或いは、予め定められた閾値は、例えば、サーバストレージノード50のいずれかへのアクセス頻度と、他のサーバストレージノード50のアクセス頻度との比の値で、「2」であってもよい。
 次に、効果予測部3080は、アルゴリズム変更部3020が変更後アルゴリズムとして設定可能な、複数の分散配置アルゴリズムに対応する配置適切度を算出し、アルゴリズム決定部3090に出力する(ステップF108)。尚、ステップF106の動作は、図17のステップD103~ステップD107を参照して、容易に理解可能であるため、詳細な説明を省略する。
 次に、アルゴリズム決定部3090は、受け取った複数の分散配置アルゴリズムに対応する配置適切度に基づいて、適切な分散配置アルゴリズムを選択する(ステップF109)。アルゴリズム決定部3090は、例えば、配置適切度が現在の変更後アルゴリズムに対応する配置適切度よりよく、かつ、複数の分散配置アルゴリズムに対応する配置適切度の内で最もよい、分散配置アルゴリズムを選択する。
 次に、アルゴリズム決定部3090は、選択した分散配置アルゴリズムの指定をアルゴリズム変更部3020に出力する(ステップF110)。そして、処理は終了する。
 上述した本実施形態における効果は、現在利用している分散配置アルゴリズムよりも適切な分散配置アルゴリズムを選択し、選択した分散配置アルゴリズムを用いた、データアイテムの再配置を自律的に実施することを可能にできる点である。
 その理由は、適切度監視部3091が現在の配置適切度を監視し、この監視結果に対応して、アルゴリズム決定部3090が適切な分散配置アルゴリズムを選択し、その分散配置アルゴリズムの指定をアルゴリズム変更部3020へ通知するようにしたからである。
 [第4の実施形態]
 次に、本発明の第4の実施形態について図面を参照して詳細に説明する。
 図21は、本実施形態に係る分散アクセスノード34の構成を示すブロック図である。図21を参照すると、本実施形態の分散アクセスノード33は、再配置情報生成部3050、再配置読込部3410、再配置書出部3420及び再配置消去部3430を含む。
 図2に示す分散システム100において、分散アクセスノード30は、本実施形態の分散アクセスノード34に置き換えられてもよい。
 尚、分散アクセスノード34のハードウェア単位の構成要素は、図6に示す分散アクセスノード30とその周辺装置のハードウェア構成と同等である。
 再配置情報生成部3050は、図4に示すような、再配置データアイテムID411を1以上含む、再配置情報410を生成し、出力する。尚、再配置データアイテムID411は、サーバストレージノード50に格納されたデータアイテムの内、再配置対象のデータアイテムのデータアイテムIDである。
 再配置読込部3410は、複数のノード識別情報の内の特定のノード識別情報を導出する複数のアルゴリズムの内、第1のアルゴリズム(変更前アルゴリズム)を用いてノード識別情報を導出する。次に、再配置読込部3410は、導出したノード識別情報に対応するサーバストレージノード50から、再配置情報410に含まれる再配置データアイテムIDで特定されるデータアイテムを読み込む。
 再配置書出部3420は、複数のアルゴリズムの内の第2のアルゴリズム(変更後アルゴリズム)を用いて導出したノード識別情報に対応するサーバストレージノード50に、再配置データアイテムIDで特定されるデータアイテムを書き出す。
 再配置消去部3430は、変更前アルゴリズムを用いて導出されたノード識別情報に対応するサーバストレージノード50から、再配置データアイテムIDで特定されるデータアイテムを消去する。
 上述した本実施形態における効果は、分散システムの運用中においても、分散配置アルゴリズムをダイナミックに変更することが可能になる点である。
 その理由は、以下のような構成を含むからである。即ち、第1に再配置情報生成部3050が、再配置情報を生成する。第2に、再配置読込部3410が、変更前アルゴリズムを用いて導出したノード識別情報に対応するサーバストレージノード50から、再配置情報410に含まれる再配置データアイテムIDで特定されるデータアイテムを読み込む。第3に、再配置書出部3420が、変更後アルゴリズムを用いて導出したノード識別情報に対応するサーバストレージノード50に、再配置データアイテムIDで特定されるデータアイテムを書き出す。第4に、再配置消去部3430が、変更前アルゴリズムを用いて導出されたノード識別情報に対応するサーバストレージノード50から、再配置データアイテムIDで特定されるデータアイテムを消去する。
 以上、各実施の形態を参照して本発明を説明したが、本発明は上記実施の形態に限定されるものではない。本発明の構成や詳細には、本発明のスコープ内で当業者が理解しえる様々な変更をすることができる。
 例えば、以上の各実施形態で説明した各構成要素は、必ずしも個々に独立した存在である必要はない。例えば、各構成要素は、複数の構成要素が1個のモジュールとして実現されたり、一つの構成要素が複数のモジュールで実現されたりしてもよい。また、各構成要素は、ある構成要素が他の構成要素の一部であったり、ある構成要素の一部と他の構成要素の一部とが重複していたり、といったような構成であってもよい。
 また、以上説明した各実施形態では、複数の動作をフローチャートの形式で順番に記載してあるが、その記載の順番は複数の動作を実行する順番を限定するものではない。このため、各実施形態を実施するときには、その複数の動作の順番は内容的に支障しない範囲で変更することができる。
 更に、以上説明した各実施形態では、複数の動作は個々に相違するタイミングで実行されることに限定されない。例えば、ある動作の実行中に他の動作が発生したり、ある動作と他の動作との実行タイミングが部分的に乃至全部において重複していたりしていてもよい。
 更に、以上説明した各実施形態では、ある動作が他の動作の契機になるように記載しているが、その記載はある動作と他の動作の全ての関係を限定するものではない。このため、各実施形態を実施するときには、その複数の動作の関係は内容的に支障のない範囲で変更することができる。また各構成要素の各動作の具体的な記載は、各構成要素の各動作を限定するものではない。このため、各構成要素の具体的な各動作は、各実施形態を実施する上で機能的、性能的、その他の特性に対して支障をきたさない範囲内で変更されて良い。
 以上、実施形態を参照して本願発明を説明したが、本願発明は上記実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
 この出願は、2011年7月1日に出願された日本出願特願2011−147519を基礎とする優先権を主張し、その開示の全てをここに取り込む。
Next, embodiments of the present invention will be described in detail with reference to the drawings. In addition, in each embodiment described in each drawing and specification, the same code | symbol is given to the component provided with the same function.
[First Embodiment]
FIG. 1 is a block diagram showing the configuration of the distributed access node 30 according to the first embodiment of the present invention. Referring to FIG. 1, the distributed access node 30 includes an access location determination unit 3010, an algorithm change unit 3020, a relocation execution unit 3030, an access history collection unit 3040, a relocation information generation unit 3050, a load monitoring unit 3060, and input / output execution. Part 3031.
FIG. 2 is a block diagram showing a configuration of the distributed system 100 including the distributed access node 30. Referring to FIG. 2, the distributed system 100 includes a client node 10, a distributed access node 30, a distributed system network 40, a server storage 50 and a storage 60.
The client node 10 is connected to the distributed access node 30 via the network 20.
In FIG. 2, there are three client nodes 10, server storage nodes 50, and storages 60, but any number of client nodes 10, server storage nodes 50, and storages 60 may be used.
In the configuration shown in FIG. 2, the distributed system 10 generally operates as follows.
The client node 10 using the distributed system transmits a data item read / write request including at least the data item ID to the distributed access node 30 via the network 20. The data item ID is also called data item identification information. A request for reading and writing data items is also called an input / output request.
When receiving the input / output request, the distributed access node 30 uniquely determines the data item storage location (server storage node 50) using a specific distributed arrangement algorithm. Subsequently, the distributed access node 30 transmits an access request to the server storage node 50 that is the determined storage location via the distributed system network 40 based on the received input / output request. Based on the received access request, the server storage node 50 reads or writes data items from / to the storage 60 managed by the server storage node 50.
As described above, the distributed access node 30 uniquely determines the storage location of the data item using a specific distributed arrangement algorithm.
The specific distributed arrangement algorithm may be an arbitrary distributed arrangement algorithm. Therefore, a specific distributed arrangement on the distributed system network 40 is arbitrary. Here, the specific distributed arrangement is how to determine the arrangement of the server storage nodes 50. For example, a specific distributed arrangement may be an arrangement that is multiplexed, hierarchized or virtualized between the server storage nodes 50.
Further, the server storage node 50 may have a cache (not shown) in order to reduce a delay when accessing the storage 60. The server storage node 50 may read or write data items to / from the cache if there is an access request target data item in the cache.
The server storage node 50 may control the storage 60 having an arbitrary configuration using an arbitrary file system (not shown).
Next, each component of the distributed access node 30 will be described in detail. Note that the components shown in FIG. 1 are not hardware components but functional units.
The algorithm changing unit 3020 sets the distributed placement algorithm in the access location determining unit 3010 when the distributed access node 30 is initially set and when the designation of the distributed placement algorithm is received.
For example, the algorithm changing unit 3020 sets a predetermined distributed arrangement algorithm in the access location determining unit 3010 when the distributed access node 30 is initially set. For example, the algorithm changing unit 3020 receives a designation of a distributed arrangement algorithm from an operator via an input unit (not shown), and sets a distributed arrangement algorithm corresponding to this designation as a predetermined distributed arrangement algorithm. For example, the algorithm changing unit 3020 receives designation of a distributed arrangement algorithm from an external server (not shown) or another module (not shown), and sets the distributed arrangement algorithm corresponding to this designation as a predetermined distributed arrangement algorithm. Also good.
The algorithm changing unit 3020 holds, for example, a distributed arrangement program corresponding to each distributed arrangement algorithm in a storage unit (not shown). Then, the algorithm changing unit 3020 downloads and sets a distributed arrangement program corresponding to a predetermined distributed arrangement algorithm to the access location determination unit 3010 among the distributed arrangement programs held.
The algorithm changing unit 3020 notifies the access location determining unit 3010 of identification information (hereinafter referred to as distributed allocation algorithm ID) of the distributed allocation algorithm to be used, and sets the distributed allocation algorithm in the access location determining unit 3010. Also good. In this case, the access location determination unit 3010 may be operable with a plurality of types of distributed arrangement algorithms that uniquely determine the server storage node 50 to be accessed. Then, the access location determination unit 3010 operates with the distributed placement algorithm corresponding to the notified distributed placement algorithm ID among the plurality of distributed placement algorithms, and uniquely determines the server storage node 50 to be accessed.
Note that the algorithm changing unit 3020 may acquire and hold the distributed arrangement program by means not shown (for example, means for acquiring a program from a server not shown via the network 20).
The access history collection unit 3040 collects the data item IDs of the data items that have been requested (accessed) from the client node 10 as access history information.
FIG. 3 is a diagram illustrating an example of the access history information 400. Referring to FIG. 3, the access history information 400 includes a data item ID 401.
Note that the access history collection unit 3040 may collect, for example, the data item ID of the data item that has requested access to the server storage node 50 as the access history information 400.
Further, the access history collection unit 3040 may collect other information as access history information instead of the data item ID 401. In this case, the other information (for example, the hash value of the data item) is information that allows each distributed arrangement algorithm to identify a specific data item as the same data item. That is, the access history information includes at least identification information of some data item that identifies the data item stored in the server storage node 50.
Further, the access history collection unit 3040 may collect any information other than the data item identification information as access history information. The arbitrary information is, for example, the time when the input / output request is made, the time when the access request is made, the type of input / output request (for example, reading or writing), the size of the data item, and the corresponding distributed arrangement algorithm ID.
The rearrangement information generation unit 3050 generates and outputs rearrangement information including one or more rearrangement data item IDs (also referred to as rearrangement data item identification information). The rearrangement data item ID is the data item ID 401 of the data item to be rearranged stored in the server storage node 50.
FIG. 4 is a diagram illustrating an example of the rearrangement information 410. Referring to FIG. 4, the rearrangement information 410 includes a rearrangement data item ID 411.
The rearrangement information generation unit 3050 counts the number of each data item ID 401 included in the access history 400 and arranges the data item ID 401 as the rearrangement data item ID 411 in descending order of the counted number. Relocation information 410 is generated.
For example, the rearrangement information generation unit 3050 may generate rearrangement information 410 in which data item IDs included in access history information are arranged as rearrangement data item IDs 411 in descending order of the number of accesses per unit time. The rearrangement information generation unit 3050 may generate rearrangement information 410 in which, for example, data item IDs included in the access history information are arranged as rearrangement data item IDs 411 in the order of recent access. In these cases, the access history information includes at least one of the time when the input / output request is made and the time when the access request is made, corresponding to the data item identification information.
Furthermore, the rearrangement information generation unit 3050 arranges the rearrangement data item IDs 411 in the order determined based on, for example, the type of input / output request, the size of the data item, and any of the corresponding distributed arrangement algorithm IDs. The rearrangement information 410 may be generated. In this case, the access history information includes at least information corresponding to each.
The rearrangement information generation unit 3050 may acquire the data item ID of the data item stored in the server storage node 50 from the server storage node 50, for example, and may use the acquired data item ID as the rearrangement data item ID 411. . In this case, the distributed access node 30 may not include the access history collection unit 3040.
The rearrangement execution unit 3030 acquires one rearrangement data item ID 411 from the rearrangement information 410. Subsequently, the rearrangement execution unit 3030 outputs a rearrangement read request for requesting reading of the data item specified by the rearrangement data item ID 411 to the access location determination unit 3010, including the acquired rearrangement data item ID 411. To do.
Further, the rearrangement execution unit 3030 outputs a rearrangement write request for requesting writing of the data item read in response to the rearrangement read request to the access location determination unit 3010. The rearrangement writing request may include the corresponding rearrangement data item ID 411.
In addition, the rearrangement execution unit 3030 sends, to the access location determination unit 3010, a post-relocation erasure request that requests erasure of the data item from the server storage node 50 that has read the data item based on the relocation read request. Output. The post-relocation erasure request may include a corresponding rearrangement data item ID 411.
The input / output execution unit 3031 receives an input / output request including at least a data item ID and information indicating whether the request is a read request or a write request.
The input / output execution unit 3031 executes the following processes (1) to (4) in response to the input / output request.
(1) The input / output execution unit 3031 indicates that the received input / output request is a request for reading a data item, and the rearrangement data item ID 411 having the same value as the data item ID of the data item is included in the rearrangement information 410 If it is included, the following processing is performed.
First, the input / output execution unit 3031 outputs a rearrangement read request including the rearrangement data item ID 411 to the access location determination unit 3010.
Next, the input / output execution unit 3031 outputs a relocation writing request to the access location determination unit 3010.
Next, the input / output execution unit 3031 outputs a post-relocation erasure request to the access location determination unit 3010.
Next, the input / output execution unit 3031 transmits an input / output response including the data item read in response to the relocation read request to the client node 10 that issued the input / output request.
(2) In the input / output execution unit 3031, the received input / output request is a request for reading a data item, and the rearrangement data item ID 411 having the same value as the data item ID of the data item is included in the rearrangement information 410. If not, the following processing is performed.
The input / output execution unit 3031 includes the data item ID and outputs a normal read request for requesting reading of the data item specified by the data item ID to the access location determination unit 3010.
Next, the input / output execution unit 3031 transmits an input / output response including the data item read in response to the normal read request to the client node 10 that issued the input / output request.
(3) The input / output execution unit 3031 includes the relocation data item ID 411 having the same value as the data item ID of the data item in the relocation information 410 when the received input / output request is a data item write request. If it is included, the following processing is performed. Note that the writing when the rearrangement data item ID 411 having the same value as the data item ID of the data item is included in the rearrangement information 410 is a writing that overwrites the data item.
First, the input / output execution unit 3031 outputs a rearrangement write request for requesting writing of a data item corresponding to the received input / output request to the access location determination unit 3010, including the corresponding rearrangement data item ID 411.
Next, the input / output execution unit 3031 outputs a post-placement deletion request to the access location determination unit 3010. The post-deployment deletion request includes the corresponding rearrangement data item ID 411, and requests that the data item specified by the rearrangement data item ID 411 is deleted from the server storage node 50 derived by the pre-change algorithm described later. Is.
(4) In the input / output execution unit 3031, the received input / output request is a data item write request, and the rearrangement data item ID 411 having the same value as the data item ID of the data item is included in the rearrangement information 410. If not, the following processing is performed.
The input / output execution unit 3031 outputs a normal write request for requesting writing of the data item specified by the data item ID to the access location determination unit 3010, including the data item ID.
The processing in the input / output execution unit 3031 is as described above.
When the distributed placement algorithm is set by the algorithm changing unit 3020, the access location determining unit 3010 holds this as the changed algorithm (second algorithm).
In addition, the access location determination unit 3010 operates as follows when the distributed placement algorithm is newly set by the algorithm change unit 3020 in a state where the changed algorithm is already held. First, the access location determination unit 3010 sets the post-change algorithm already held as the pre-change algorithm (first algorithm). Subsequently, the access location determination unit 3010 holds the newly set distributed arrangement algorithm as a new changed algorithm.
For example, the access location determination unit 3010 receives (sets) a program that realizes the distributed arrangement algorithm from the algorithm change unit 3020 and holds the program name as information for specifying the changed algorithm and the changed algorithm. FIG. 5 is a diagram illustrating an example of the distributed arrangement algorithm table 420. Referring to FIG. 5, the distributed arrangement algorithm table 420 holds a post-change program name 421 that realizes the post-change algorithm and a pre-change program name 422 that realizes the pre-change algorithm.
When the relocation processing using the post-change algorithm is completed, the access location determination unit 3010 clears the pre-change program name 422 with “0” and deletes the corresponding distributed allocation program.
In addition, when the access location determination unit 3010 receives a rearrangement read request, the access location determination unit 3010 uses the pre-change algorithm to transmit node access information corresponding to the rearrangement read request (corresponding to the first node identification information). Is derived. Subsequently, the access location determination unit 3010 reads the data item specified by the relocation data item ID 411 included in the relocation read request from the server storage node 50 (first node) corresponding to the derived node identification information. .
In addition, when the access location determination unit 3010 receives a rearrangement write request, the access location determination unit 3010 uses the post-change algorithm to transmit node access information corresponding to the rearrangement write request (second node identification information). Derived). Subsequently, the access location determination unit 3010 sends the data item specified by the relocation data item ID 411 included in the relocation write request to the server storage node 50 (second node) corresponding to the derived node identification information. Write out.
In addition, when the access location determination unit 3010 receives the post-relocation erasure request, the access location determination unit 3010 uses the pre-change algorithm to transmit the access request corresponding to the post-relocation erasure request to the node identification information (first node identification information). Derived). Subsequently, the access location determination unit 3010 determines the data item specified by the relocation data item ID 411 included in the post-relocation deletion request from the server storage node 50 (first node) corresponding to the derived node identification information. to erase.
When receiving the normal read request, the access location determination unit 3010 derives node identification information for transmitting the access request corresponding to the normal read request, using the changed algorithm. Subsequently, the access location determination unit 3010 reads the data item specified by the relocation data item ID 411 included in the relocation read request from the server storage node 50 corresponding to the derived node identification information.
In addition, when receiving a normal write request, the access location determination unit 3010 derives node identification information for transmitting an access request corresponding to the normal write request, using the changed algorithm. Subsequently, the access location determination unit 3010 writes the data item specified by the relocation data item ID 411 included in the relocation write request to the server storage node 50 corresponding to the derived node identification information.
The distributed arrangement algorithm may be, for example, the following algorithm.
In the initial setting procedure in the distributed placement algorithm, the access location determination unit 3010 has, for example, serial numbers “0”, “1” corresponding to the node identification information of the three server storage nodes 50 shown in FIG. 1 ”and“ 2 ”are assigned.
The access location determination unit 3010 operates as follows in the first to fourth procedures for deriving node identification information corresponding to the data item ID in the distributed placement algorithm.
First, in the first procedure, the access location determination unit 3010 converts the data item ID included in the input / output request into a numerical value. For example, the access location determination unit 3010 converts the character code of the data item ID into a hexadecimal number.
Next, in the second procedure, the access location determination unit 3010 calculates a remainder obtained by dividing the data item ID included in the input / output request by “3 (the number of server storage nodes 50)”.
Next, in the third procedure, the access location determination unit 3010 determines the calculated remainder as the serial number of the server storage node 50 that stores the data item specified by the data item ID.
Next, in the fourth procedure, the access location determination unit 3010 derives node identification information corresponding to the determined serial number.
The distributed arrangement algorithm is, for example, the following algorithm.
The access location determination unit 3010 associates, with the node identification information of the server storage node 50, a value that can be taken by the hash value calculated by the hash function specified by the distributed placement algorithm in the procedure of initial setting of the distributed placement algorithm. . The hash function is, for example, CRC (Cyclic Redundancy Check) 16. Specifically, when the hash function specified by the distributed arrangement algorithm is, for example, CRC16, the value that can be taken by the hash value calculated by the hash function is # 0000 (the following four characters are hexadecimal numbers) To #FFFF. For example, the access location determination unit 3010 associates each of the three server storage nodes 50 shown in FIG. That is, for example, the access location determination unit 3010 shares # 0000 to # 5555, # 5556 to #AAAA, and #AAAB to #FFFF for the node identification information of the first to third server storage nodes 50, respectively. Associate as a hash value.
The access location determination unit 3010 operates as follows in the first to fourth procedures for deriving node identification information corresponding to the data item ID of the distributed placement algorithm.
First, in the first procedure, the access location determination unit 3010 calculates the hash value of the data item ID included in the input / output request using the hash function. When the data item ID is “DATA1” and the hash function is CRC16, the access location determination unit 3010 calculates, for example, # 0C9E.
Next, in the second procedure, the access location determination unit 3010 determines in which shared hash value range the hash value of the data item ID is included. For example, the access location determination unit 3010 determines that # 0C9E is included in # 0000 to # 5555.
Next, in the third procedure, the access location determination unit 3010 derives node identification information corresponding to the determined shared hash value range.
The load monitoring unit 3060 monitors the load state of the distributed access node 30 and outputs the monitoring result. The load state is, for example, a usage rate of a CPU (Central Processing Unit, not shown) or a usage rate of a memory (not shown) of the distributed access node 30.
The relocation execution unit 3030 outputs a relocation read request, and the server storage node 50 corresponding to the node identification information derived by the access location determination unit 3010 using the pre-change algorithm is included in the relocation read request. Reading the data item specified by the rearranged data item ID 411 is also referred to as rearrangement reading means.
Also, the rearrangement execution unit 3030 outputs a rearrangement write request, and the access location determination unit 3010 sends a rearrangement write request to the server storage node 50 corresponding to the node identification information derived using the changed algorithm. The writing of the data item specified by the rearrangement data item ID 411 included in is also referred to as rearrangement writing means.
Further, the rearrangement execution unit 3030 outputs a post-relocation deletion request, and the post-relocation deletion request from the server storage node 50 corresponding to the node identification information derived by the access location determination unit 3010 using the pre-change algorithm. The deletion of the data item specified by the rearrangement data item ID 411 included in the ID is also referred to as rearrangement erasure means.
This completes the description of each component of the functional unit of the distributed access node 30.
Next, components in units of hardware of the distributed access node 30 will be described.
FIG. 6 is a diagram illustrating a hardware configuration of the distributed access node 30 and its peripheral devices in the present embodiment. As illustrated in FIG. 6, the distributed access node 30 includes a CPU 3070, a storage unit 3071, a storage device 3072, an input unit 3073, an output unit 3074, and a communication unit 3075. The CPU 3070 controls the overall operation of the distributed access node 30 according to the present embodiment by operating an operating system (not shown). Further, the CPU 3070 reads a program and data into the storage unit 3071 from, for example, a nonvolatile recording medium attached to the storage device 3072. FIG. 22 is a block diagram illustrating an example of a nonvolatile storage medium 3077 in which a program is recorded. The CPU 3070 executes various processes as each unit shown in FIG. 1 according to the read program and based on the read data.
Note that the CPU 3070 may download a program and data to the storage unit 3071 from an external computer (not shown) connected to a communication network (not shown).
The storage unit 3071 stores programs and data.
The storage device 3072 is, for example, an optical disk, a flexible disk, a magnetic optical disk, an external hard disk, and a semiconductor memory, and includes a nonvolatile storage medium. The storage device 3072 records the program so that it can be read by a computer. Further, the storage device 3072 may record data so as to be readable by a computer.
The input unit 3073 is realized by, for example, a mouse, a keyboard, a built-in key button, and the like, and is used for an input operation. The input unit 3073 is not limited to a mouse, a keyboard, and a built-in key button, but may be a touch panel, an accelerometer, a gyro sensor, a camera, or the like.
The output unit 3074 is realized by a display, for example, and is used to check the output.
The communication unit 3075 realizes an interface with the network 20 and the distributed access node 30. The communication unit 3075 is included as part of the access location determination unit 3010, the algorithm change unit 3020, and the input / output execution unit 3031.
This completes the description of each hardware component of the distributed access node 30.
As described above, the functional unit block shown in FIG. 1 is realized by the hardware configuration shown in FIG. However, the means for realizing each unit included in the distributed access node 30 is not limited to the above. In other words, the distributed access node 30 may be realized by one physically coupled device, or by two or more physically separated devices connected by wire or wirelessly, and by the plurality of devices. Also good.
Further, a recording medium (or storage medium) 3077 in which the above-described program is recorded may be supplied to the distributed access node 30, and the distributed access node 30 may read and execute the program stored in the recording medium. That is, this embodiment includes an embodiment of a recording medium that stores a program executed by the distributed access node 30 temporarily or non-temporarily.
Next, the operation of this embodiment will be described in detail with reference to the drawings.
7 and 8 are flowcharts showing the operation when an input / output request is received in the normal state in the present embodiment.
The normal state is a state in which a distributed placement algorithm is set by the algorithm changing unit 3020 when the distributed access node 30 is initially set, and a new distributed placement algorithm has not been set yet. In the normal state, a new distributed arrangement algorithm is set by the algorithm changing unit 3020, the rearrangement process using the new distributed arrangement algorithm is completed, and no further new distributed arrangement algorithm has been set yet. It is. Therefore, the normal state is a state where none of the rearrangement data item IDs 411 is included in the rearrangement information 410, there is no pre-change algorithm, and the rearrangement process is not executed. The state in which the rearrangement process is being executed is hereinafter referred to as a rearrangement state.
The distributed access node 30 starts this operation when receiving an input / output request transmitted by any of the client nodes 10 to read / write data items.
First, the input / output execution unit 3031 confirms whether or not it is in a normal state (A101). For example, the input / output execution unit 3031 checks whether or not the rearrangement data item ID 411 is not included in the rearrangement information 410 (normal state) or not (rearrangement state). For example, the input / output execution unit 3031 refers to the distributed arrangement algorithm table 420, and the state where the pre-change algorithm and the post-change algorithm exist (rearrangement state) or the state where only the post-change algorithm exists (see FIG. (Normal state) may be confirmed.
If it is not a steady state (rearranged state) (NO in A101), the process proceeds to step C103 in FIG.
In the steady state (YES in A101), the input / output execution unit 3031 determines whether the received input / output request is an input / output request requesting reading or an input / output request requesting writing (step). A102). If the input / output request requests reading (YES in step A102), the process proceeds to A103. If the input / output request requests writing (NO in step A102), the process proceeds to A110.
In A103, the input / output execution unit 3031 outputs a normal read request including the data item ID included in the received input / output request to the access location determination unit 3010 (step A103).
Next, the access location determination unit 3010 derives the node identification information of the server storage node 50 that outputs the access request corresponding to the received normal read request using the post-change algorithm (step A104).
Next, the access location determination unit 3010 outputs an access request corresponding to the received normal read request to the server storage node 50 corresponding to the derived node identification information (step A105).
Next, the input / output execution unit 3031 receives the data item corresponding to the access request output by the access location determination unit 3010 (step A106).
Next, the input / output execution unit 3031 transmits an input / output response including the read data item to the client node 10 that issued the input / output request (step A107). Then, the process proceeds to step A120.
In step A110, the input / output execution unit 3031 outputs a normal write request including the data item ID included in the received input / output request to the access location determination unit 3010 (step A110).
Next, the access location determination unit 3010 derives node identification information of the server storage node 50 that outputs an access request corresponding to the received normal write request using the post-change distributed arrangement algorithm (step A111).
Next, the access location determination unit 3010 outputs an access request corresponding to the received normal write request to the server storage node 50 corresponding to the derived node identification information (step A112). Then, the process proceeds to step A120.
In step A120, the access history collection unit 3040 records the data item ID corresponding to the access request output to the access history information 400. (Step A120). Then, the process ends.
The above is the description of the operation of the distributed access node 30 when an input / output request is received in the normal state.
FIG. 9 and FIG. 10 are flowcharts showing the operation of changing the distributed placement algorithm and rearranging the data items in the present embodiment.
The distributed access node 30 starts this operation when receiving the designation of the newly set distributed arrangement algorithm from the operator via the input unit 3073 shown in FIG.
The algorithm changing unit 3020 sets the distributed location algorithm corresponding to the designation of the distributed location algorithm newly received from the operator in the access location determining unit 3010 (step B101). Specifically, the algorithm changing unit 3020 downloads the distributed arrangement program corresponding to the received distributed arrangement algorithm designation to the access location determining unit 3010. At the same time, the algorithm changing unit 3020 outputs the program name of the distributed arrangement program to the access location determining unit 3010.
Next, the access location determination unit 3010 receives the setting of the distributed arrangement algorithm. Specifically, upon receiving the program name, the access location determination unit 3010 overwrites the program name 421 after the change with the program name 422 before the change, and writes the received program name into the program name 421 after the change (step B102).
Next, the rearrangement information generation unit 3050 refers to the access history information 400 as shown in FIG. 3 and generates rearrangement information 410 as shown in FIG. 4 (step B103).
Note that the rearrangement information generation unit 3050 may delete the referenced data item ID 401 among the data item IDs 401 included in the access history information 400. In such a case, after the relocation information 410 is generated, the data item ID 401 included in the access history information 400 identifies the data item stored in the server storage node 50 determined using the newly received distributed allocation algorithm. . Therefore, it is possible to execute processing for rearranging data items by changing to a new distributed placement algorithm.
Next, the load monitoring unit 3060 confirms that the load is not high (step B104). For example, the load monitoring unit 3060 confirms that the CPU is not in a high load state based on whether or not the CPU usage rate of the distributed access node 30 exceeds a predetermined threshold (for example, 50%). Further, the load monitoring unit 3060 confirms that the load is not in a high load state based on the result of inquiring the server storage node 50 about the load state, or on both the result and the CPU usage rate of the distributed access node 30. You may do it. If the load is high (YES in step B104), the process ends.
When not in a high load state (NO in step B104), the rearrangement execution unit 3030 acquires one rearrangement data item ID 411 from the head of the rearrangement information 410 (step B105).
Next, the rearrangement execution unit 3030 outputs a rearrangement read request for requesting reading of the data item specified by the rearrangement data item ID 411 to the access location determination unit 3010, including the acquired rearrangement data item ID 411. (Step B106).
Next, the access location determination unit 3010 receives the rearrangement read request and derives node identification information for transmitting an access request corresponding to the rearrangement read request using the pre-change algorithm (step B107).
Subsequently, the access location determination unit 3010 reads the data item specified by the relocation data item ID 411 included in the relocation read request from the server storage node 50 corresponding to the derived node identification information (step B108). Specifically, the access location determination unit 3010 transmits an access request including the relocation data item ID 411 to the server storage node 50 corresponding to the derived node identification information. Next, the access location determination unit 3010 receives the data item transmitted from the server storage node 50 in response to the output access request.
Next, the rearrangement execution unit 3030 outputs a rearrangement write request for requesting writing of the data item read in response to the rearrangement read request to the access location determination unit 3010 (step B109).
Next, the access location determination unit 3010 receives the rearrangement write request and derives node identification information for transmitting the access request corresponding to the rearrangement write request using the changed algorithm (step B110).
Subsequently, the access location determination unit 3010 writes the data item specified by the relocation data item ID 411 included in the relocation write request to the server storage node 50 corresponding to the derived node identification information (step B111).
Next, the rearrangement execution unit 3030 sends an erase request after rearrangement requesting that the data item is erased from the server storage node 50 that has read the data item based on the rearrangement read request, to the access location determination unit 3010. (Step B112).
Next, the access location determination unit 3010 receives the post-relocation erasure request and derives node identification information for transmitting an access request corresponding to the post-relocation erasure request using the pre-change algorithm (step B113).
Subsequently, the access location determination unit 3010 deletes the data item specified by the relocation data item ID 411 included in the post-relocation deletion request from the server storage node 50 corresponding to the derived node identification information (step B114). .
Next, the rearrangement execution unit 3030 deletes the corresponding rearrangement data item ID 411 from the rearrangement information 410 (step B115).
Next, the rearrangement execution unit 3030 checks whether or not the rearrangement data item ID 411 exists in the rearrangement information 410 (step B116). If it exists (YES in step B116), the process returns to step B105.
If it does not exist (NO in step B116), the access location determination unit 3010 clears the pre-change program name 422 in the distributed arrangement algorithm table 420 to “0” (step B117). Then, the process ends.
Note that it is desirable that the process of generating the rearrangement information 410 from the access history information 400 in step B103 is performed simultaneously with, for example, step B101, step B102, and step B104. Further, when the frequency of input / output requests from the client node 10 is high, for example, the processing of step B103 may be performed at regular intervals independently of the processing of the flowchart shown in FIG. In such a case, the referenced data item ID 401 among the data item IDs 401 included in the access history information 400 may be sequentially deleted.
The above is the description of the operation of changing the distributed arrangement algorithm and rearranging the data items.
11, 12 and 13 are flowcharts showing the operation when an input / output request is received in the rearrangement state (YES in step A101 in FIG. 7).
When the input / output execution unit 3031 receives the input / output request in the rearrangement state (YES in step A101 in FIG. 7), the data item ID included in the received input / output request includes the rearrangement included in the rearrangement information 410 It is confirmed whether or not it matches any of the data item IDs 411 (step C103). If they match (YES in step C103), the process proceeds to step C104. If they do not match (NO in step C103), the process proceeds to step A102 in FIG.
In step C104, the input / output execution unit 3031 determines whether the received input / output request is an input / output request requesting reading or an input / output request requesting writing (step C104). If the input / output request requests reading (YES in step C104), the process proceeds to C105. If the input / output request requests writing (NO in step C104), the process proceeds to C120.
In step C105, the input / output execution unit 3031 outputs a rearrangement read request including the rearrangement data item ID 411 that identifies the data item to be read to the access location determination unit 3010 (step C105).
Next, the access location determination unit 3010 receives the rearrangement read request and derives node identification information for transmitting an access request corresponding to the rearrangement read request using the pre-change algorithm (step C106).
Subsequently, the access location determination unit 3010 reads the data item specified by the relocation data item ID 411 included in the relocation read request from the server storage node 50 corresponding to the derived node identification information (step C107).
Next, the input / output execution unit 3031 outputs a rearrangement write request for requesting writing of the data item read in response to the rearrangement read request to the access location determination unit 3010 (step C108).
Next, the access location determination unit 3010 receives the rearrangement write request and derives node identification information for transmitting an access request corresponding to the rearrangement write request using the changed algorithm (step C109).
Subsequently, the access location determination unit 3010 writes the data item specified by the relocation data item ID 411 included in the relocation write request to the server storage node 50 corresponding to the derived node identification information (step C110).
Next, the input / output execution unit 3031 sends an after-relocation erasure request for erasing the data item from the server storage node 50 that has read the data item based on the relocation read request, to the access location determination unit 3010. (Step C111).
Next, the access location determination unit 3010 receives the post-relocation erasure request and derives node identification information for transmitting an access request corresponding to the post-relocation erasure request using the pre-change algorithm (step C112).
Subsequently, the access location determination unit 3010 deletes the data item specified by the relocation data item ID 411 included in the post-relocation deletion request from the server storage node 50 corresponding to the derived node identification information (step C113). .
Next, the input / output execution unit 3031 deletes the corresponding rearrangement data item ID 411 from the rearrangement information 410 (step C114).
Next, the input / output execution unit 3031 transmits an input / output response including the data item read in response to the rearrangement read request to the client node 10 that issued the input / output request (step C115). Then, the process proceeds to C130.
In C120, the input / output execution unit 3031 outputs an arrangement write request for requesting writing of a data item corresponding to the received input / output request to the access location determination unit 3010, including the corresponding relocation data item ID 411 ( Step C120).
Next, the access location determination unit 3010 receives the arrangement write request and derives node identification information for transmitting the access request corresponding to the relocation write request using the post-change algorithm (step C121).
Subsequently, the access location determination unit 3010 writes the data item specified by the relocation data item ID 411 included in the relocation write request to the server storage node 50 corresponding to the derived node identification information (step C122).
Next, the input / output execution unit 3031 outputs, to the access location determination unit 3010, a post-relocation deletion request that requests the data item to be deleted from the server storage node 50 derived by the pre-change algorithm (Step S31). C123).
Next, the access location determination unit 3010 receives the post-relocation erasure request and derives node identification information for transmitting the access request corresponding to the post-relocation erasure request using the pre-change algorithm (step C124).
Subsequently, the access location determination unit 3010 deletes the data item specified by the relocation data item ID 411 included in the post-relocation deletion request from the server storage node 50 corresponding to the derived node identification information (step C125). .
Next, the input / output execution unit 3031 deletes the corresponding rearrangement data item ID 411 from the rearrangement information 410 (step C126). Here, the corresponding rearrangement data item ID 411 is the rearrangement data item ID 411 included in the post-relocation erasure request. Then, the process proceeds to C130.
[0166]
In step C130, the access history collection unit 3040 records the data item ID corresponding to the output access request in the access history information 400. (Step C130).
The above is the description of the operation when the input / output request is received in the rearrangement state.
The distributed access node 30 may use three or more distributed arrangement algorithms. In this case, the access history information may include a corresponding distributed arrangement algorithm ID in addition to the data item ID. In addition, the access location determination unit 3010 may select the pre-change algorithm used when processing the relocation read request and the post-relocation erasure request with reference to the distributed allocation algorithm ID.
In addition, the distributed access node 30 performs relocation only on the data item corresponding to the data item ID included in the input / output request in a predetermined specific situation (for example, the CPU usage rate is higher than a predetermined value). You may make it do.
The first effect of the present embodiment described above is that the distributed arrangement algorithm can be dynamically changed even during the operation of the distributed system.
This is because the following configuration is included. That is, first, the rearrangement information generation unit 3050 generates rearrangement information 410. Second, the rearrangement execution unit 3030 outputs a rearrangement read request, a rearrangement write request, and a post-relocation erasure request based on the rearrangement information 410. Third, the access location determination unit 3010 reads the corresponding data item from the server storage node 50 derived using the pre-change algorithm in response to the relocation read request. Fourth, the access location determination unit 3010 writes the data item to the server storage node 50 derived using the post-change algorithm in response to the relocation writing request. Fifth, the access location determination unit 3010 deletes the data item included in the server storage node 50 derived using the pre-change algorithm in response to the delete request after rearrangement. The “derived server storage node 50” here means “the server storage node 50 corresponding to the derived node identification information”.
The second effect of the present embodiment described above is that the process of changing the distributed arrangement algorithm and the process of the input / output request can be efficiently processed in parallel.
This is because the following configuration is included. That is, first, the input / output execution unit 3031 performs a rearrangement read request, a rearrangement write request, and an erase request after rearrangement based on the rearrangement information 410, or a normal read request and a normal write request. Are selectively output. Second, the access location determination unit 3010 reads the corresponding data item from the server storage node 50 derived using the post-change algorithm in response to the normal read request. Third, the access location determination unit 3010 writes the data item to the server storage node 50 derived using the post-change algorithm in response to the normal write request. The “derived server storage node 50” here means “the server storage node 50 corresponding to the derived node identification information”.
The third effect of the present embodiment described above is that the change to the third distributed arrangement algorithm can be further started before the change from the first distributed arrangement algorithm to the second distributed arrangement algorithm is completed. It is a point.
The reason is that the access history information includes the distributed placement algorithm ID, and the access location determination unit 3010 refers to the distributed placement algorithm ID and selects the pre-change algorithm used when processing the rearrangement read request and the rearrangement deletion request. It is because it tried to do.
The fourth effect of the present embodiment described above is that data item relocation processing is efficiently executed even if one of one or more of the distributed access node 30 and the server storage node 50 is in a high load state. It is possible to do that.
The reason is that the distributed access node 30 executes the rearrangement only for the data item corresponding to the data item ID included in the input / output request in a predetermined specific situation.
[Second Embodiment]
Next, a second embodiment of the present invention will be described in detail with reference to the drawings.
FIG. 14 is a block diagram showing a configuration of the distributed access node 32 according to the present embodiment. Referring to FIG. 14, the distributed access node 32 according to the present embodiment further includes an effect prediction unit 3080 and an effect notification unit 3081 compared to the distributed access node 30 of the first embodiment. Also, the distributed access node 32 includes an access location determination unit 3210 instead of the access location determination unit 3010 as compared to the distributed access node 30.
The components of the distributed access node 32 in hardware units are the same as the components of the hardware configuration of the distributed access node 30 and its peripheral devices shown in FIG.
The effect prediction unit 3080 calculates an appropriateness of arrangement that indicates the appropriateness of the arrangement of data items corresponding to the candidate algorithm. The candidate algorithm is one of a plurality of distributed arrangement algorithms that are replaced with the current changed algorithm (the currently used distributed arrangement algorithm) as a new changed algorithm. The candidate algorithm includes the current modified algorithm itself. The effect prediction unit 3080 selects a candidate algorithm, outputs it to the access location determination unit 3210, receives the rearrangement node correspondence information as a response, and calculates the placement appropriateness based on the received rearrangement node correspondence information.
FIG. 15 is information indicating an example of the rearrangement node correspondence information 430. Referring to FIG. 15, the rearrangement node correspondence information 430 includes a rearrangement data item ID 411 and node identification information 432 in association with each other.
The effect prediction unit 3080 calculates the distribution degree (for example, standard deviation) of the data items based on the number of data items stored in each server storage node 50, and sets this as the appropriateness of arrangement.
For example, the effect prediction unit 3080 refers to the access history information 400 to calculate the access frequency of each data item. Then, the effect prediction unit 3080 further calculates the access frequency of each server storage node 50 based on this access frequency. Then, the effect prediction unit 3080 may use the calculated access frequency as the placement appropriateness.
The effect prediction unit 3080 may score (numerize) the access frequency of each data item and the number and size of the data items stored in each server storage node 50. Then, the effect prediction unit 3080 may calculate the total value for each server storage node 50 to obtain the placement appropriateness. In such a case, the access history information 400 may include the size of the data item.
The effect notification unit 3081 generates user determination information including the distributed placement algorithm and the corresponding placement appropriateness based on the placement appropriateness predicted by the effect prediction unit 3080. Next, the effect notification unit 3081 displays the generated user determination information on a display (not shown) via, for example, the output unit 3074 in FIG.
FIG. 16 is a diagram illustrating an example of the user determination information 440. Referring to FIG. 16, the user determination information 440 includes a distributed arrangement algorithm ID 441 and an arrangement appropriateness level 442.
The access location determination unit 3210 includes the following functions in addition to the functions of the access location determination unit 3010 of FIG. First, the access location determination unit 3210 uses the candidate algorithm to derive the node identification information 432 of the server storage node 50 in which the data items corresponding to the relocation data item ID 411 included in the relocation information 410 are stored. To do. Next, the access location determination unit 3010 outputs rearrangement node correspondence information 430 in which the node identification information 432 derived for each rearrangement data item ID 411 of the rearrangement information 410 is associated.
Next, the operation of the present embodiment will be described in detail with reference to the drawings.
FIG. 17 is a flowchart showing the operation for calculating the placement appropriateness in this embodiment.
First, the rearrangement information generation unit 3050 generates the rearrangement information 410 with reference to the access history information 400 (step D101).
Next, the effect prediction unit 3080 outputs the current changed algorithm as a candidate algorithm to the access location determination unit 3010 (step D102).
Next, the access location determination unit 3010 uses the received candidate algorithm, and for the data items corresponding to the relocation data item ID 411 included in the relocation information 410, the node identification information of the server storage node 50 in which they are stored 432 is derived (step D103).
Next, the access location determination unit 3010 generates rearrangement node correspondence information 430 in which the node identification information 411 derived for each rearrangement data item ID 411 of the rearrangement information 410 is associated, and outputs the generated rearrangement node correspondence information 430 to the effect prediction unit 3080 ( Step D104).
Next, the effect prediction unit 3080 calculates the placement appropriateness corresponding to the candidate algorithm based on the received rearrangement node correspondence information 430, and outputs it to the effect notification unit 3081 together with the corresponding distributed placement algorithm ID (step D105). ).
Next, the effect prediction unit 3080 determines whether or not there is a distributed arrangement algorithm to be selected as a candidate algorithm from among a plurality of distributed arrangement algorithms that can be set as the changed algorithm by the algorithm changing unit 3020 (step D106). If there is a distributed arrangement algorithm to be selected (YES in step D106), the process proceeds to step D107. If there is no distributed arrangement algorithm to be selected (YES in step D106), the process proceeds to step E101 in FIG. In addition, the effect prediction unit 3080, for example, if the ratio between the placement appropriateness calculated using the current modified algorithm as a candidate algorithm and the placement appropriateness output in step D105 exceeds a predetermined value, the candidate algorithm The selection may be terminated.
In step D107, the effect prediction unit 3080 selects one candidate algorithm and outputs it to the access location determination unit 3010 (step D107). Then, the process returns to step D103. Note that the effect prediction unit 3080 selects, for example, the distributed arrangement algorithm held by the algorithm change unit 3020 as a candidate algorithm in order. Further, for example, the effect prediction unit 3080 may select a distributed arrangement algorithm input by the operator from the input unit 3073 shown in FIG. 6 as a candidate algorithm. FIG. 18 is a flowchart showing the operation of the effect notification unit 3081 in this embodiment.
First, the effect notification unit 3081 generates user determination information 440 based on the received placement appropriateness and the corresponding distributed placement algorithm ID (step E101).
Next, the effect notification unit 3081 displays the generated user determination information 440 on a display (not shown) via, for example, the output unit 3074 in FIG. 6 (step E102).
The operator can confirm the displayed user determination information 440 and select an appropriate distributed arrangement algorithm by the input / output unit 3073 shown in FIG. Then, the distributed access node 32 designates the selected distributed arrangement algorithm, executes the operations shown in FIGS. 9 and 10, and rearranges the data items.
The first effect in the present embodiment described above is that it is possible to obtain a prediction of how appropriate the arrangement of data items is when the distributed arrangement algorithm is changed.
The reason is that the access location determination unit 3010 generates the rearrangement node correspondence information 430, and the effect prediction unit 3080 calculates the placement appropriateness corresponding to the candidate algorithm based on the rearrangement node correspondence information 430. Because.
The second effect of the present embodiment described above is that the operator can select an appropriate distributed arrangement algorithm.
The reason is that the effect notification unit 3081 generates and displays the user determination information 440 based on the placement appropriateness and the corresponding distributed placement algorithm ID.
[Third Embodiment]
Next, a third embodiment of the present invention will be described in detail with reference to the drawings.
FIG. 19 is a block diagram showing the configuration of the distributed access node 33 according to this embodiment. Referring to FIG. 19, the distributed access node 33 according to the present embodiment further includes an effect prediction unit 3080, an algorithm determination unit 3090, and an appropriateness monitoring unit 3091, as compared to the distributed access node 30 of the first embodiment. Also, the distributed access node 33 includes an access location determination unit 3210 instead of the access location determination unit 3010 as compared to the distributed access node 30.
The components of the distributed access node 33 in hardware units are the same as the components of the hardware configuration of the distributed access node 30 and its peripheral devices shown in FIG.
The effect prediction unit 3080 is equivalent to the effect prediction unit 3080 shown in FIG.
The access location determination unit 3210 is equivalent to the access location determination unit 3210 shown in FIG.
The appropriateness monitoring unit 3091 outputs the current post-change algorithm as a candidate algorithm to the access location determination unit 3210 at a predetermined time (for example, every hour). The appropriateness monitoring unit 3091 may output the current modified algorithm to the access location determination unit 3210 as a candidate algorithm when receiving an operator instruction from the input unit 3073 in FIG.
Next, the appropriateness monitoring unit 3091 receives the rearrangement node correspondence information 430 as a response, and calculates the placement appropriateness based on the received rearrangement node correspondence information 430. Next, the appropriateness monitoring unit 3091 uses an algorithm when the calculated placement appropriateness exceeds a predetermined threshold value (for example, when the standard deviation representing the degree of distribution as the placement appropriateness exceeds a predetermined value). The placement appropriateness is output to the determination unit 3090.
The algorithm determination unit 3090 selects an appropriate distributed arrangement algorithm based on the arrangement appropriateness output from the effect prediction unit 3080. Next, the algorithm determination unit 3090 outputs the designation of the selected distributed arrangement algorithm to the algorithm change unit 3020.
Next, the operation of the present embodiment will be described in detail with reference to the drawings.
FIG. 20 is a flowchart showing an operation for determining a distributed arrangement algorithm in the present embodiment.
The distributed access node 33 starts the operation of FIG. 20 when a time-out means (not shown) generates a timeout.
First, the rearrangement information generation unit 3050 generates the rearrangement information 410 with reference to the access history information 400 (Step F101).
Next, the appropriateness monitoring unit 3091 outputs the current changed algorithm as a candidate algorithm to the access location determination unit 3210 (step F102).
Next, the access location determination unit 3210 uses the received candidate algorithm, and for the data items corresponding to the rearrangement data item ID 411 included in the rearrangement information 410, the node identification information of the server storage node 50 in which they are stored 432 is derived (step F103).
Next, the access location determination unit 3010 outputs the relocation node correspondence information 430 in which the node identification information 432 derived to each of the relocation data item IDs 411 of the relocation information 410 is associated with the appropriateness monitoring unit 3091 (step S91). F104).
Next, the appropriateness monitoring unit 3091 calculates the placement appropriateness based on the received rearrangement node correspondence information 430 (step F105).
Next, the appropriateness monitoring unit 3091 determines whether or not the calculated placement appropriateness exceeds a predetermined threshold (step F106). If the threshold is not exceeded (NO in step F106), the process ends.
If the placement appropriateness exceeds a predetermined threshold (YES in Step F106), the appropriateness monitoring unit 3091 outputs the calculated placement appropriateness to the algorithm determining unit 3090 (Step F107).
Here, the predetermined threshold is, for example, a value of a ratio between the number of any data item in the server storage node 50 and the number of data items in the other server storage node 50, which is “2”. Alternatively, the predetermined threshold value may be “2”, for example, a value of a ratio between the access frequency of any of the server storage nodes 50 and the access frequency of other server storage nodes 50.
Next, the effect prediction unit 3080 calculates placement appropriateness corresponding to a plurality of distributed placement algorithms that can be set as the changed algorithm by the algorithm changing unit 3020, and outputs the degree of placement appropriateness to the algorithm determining unit 3090 (step F108). The operation of step F106 can be easily understood with reference to step D103 to step D107 of FIG.
Next, the algorithm determination unit 3090 selects an appropriate distributed placement algorithm based on the placement appropriateness level corresponding to the received multiple distributed placement algorithms (step F109). The algorithm determination unit 3090 selects, for example, a distributed placement algorithm whose placement appropriateness is better than the placement appropriateness corresponding to the current post-change algorithm and the best placement appropriateness corresponding to a plurality of distributed placement algorithms. To do.
Next, the algorithm determination unit 3090 outputs the designation of the selected distributed arrangement algorithm to the algorithm change unit 3020 (step F110). Then, the process ends.
The effect of the present embodiment described above is that a more suitable distributed arrangement algorithm than the currently used distributed arrangement algorithm is selected, and data items are rearranged autonomously using the selected distributed arrangement algorithm. It is a point that can be made possible.
The reason is that the appropriateness monitoring unit 3091 monitors the current placement appropriateness, the algorithm determining unit 3090 selects an appropriate distributed placement algorithm in accordance with the monitoring result, and the algorithm is changed to specify the distributed placement algorithm. This is because the notification to the unit 3020 is made.
[Fourth Embodiment]
Next, a fourth embodiment of the present invention will be described in detail with reference to the drawings.
FIG. 21 is a block diagram showing a configuration of the distributed access node 34 according to the present embodiment. Referring to FIG. 21, the distributed access node 33 according to the present embodiment includes a rearrangement information generation unit 3050, a rearrangement reading unit 3410, a rearrangement writing unit 3420, and a rearrangement erasing unit 3430.
In the distributed system 100 illustrated in FIG. 2, the distributed access node 30 may be replaced with the distributed access node 34 of the present embodiment.
The components of the distributed access node 34 in hardware units are the same as the hardware configuration of the distributed access node 30 and its peripheral devices shown in FIG.
The rearrangement information generation unit 3050 generates and outputs rearrangement information 410 including one or more rearrangement data item IDs 411 as illustrated in FIG. The relocation data item ID 411 is a data item ID of a data item to be relocated among the data items stored in the server storage node 50.
The rearrangement reading unit 3410 derives node identification information using a first algorithm (pre-change algorithm) among a plurality of algorithms for deriving specific node identification information among the plurality of node identification information. Next, the relocation reading unit 3410 reads the data item specified by the relocation data item ID included in the relocation information 410 from the server storage node 50 corresponding to the derived node identification information.
The relocation writing unit 3420 stores the data specified by the relocation data item ID in the server storage node 50 corresponding to the node identification information derived using the second algorithm (algorithm after change) of the plurality of algorithms. Export items.
The rearrangement deleting unit 3430 deletes the data item specified by the rearrangement data item ID from the server storage node 50 corresponding to the node identification information derived using the pre-change algorithm.
The effect of this embodiment described above is that the distributed arrangement algorithm can be dynamically changed even during the operation of the distributed system.
This is because the following configuration is included. That is, first, the rearrangement information generation unit 3050 generates rearrangement information. Secondly, the data item specified by the relocation data item ID included in the relocation information 410 is retrieved from the server storage node 50 corresponding to the node identification information derived by the relocation reading unit 3410 using the pre-change algorithm. Read. Third, the relocation writing unit 3420 writes the data item specified by the relocation data item ID to the server storage node 50 corresponding to the node identification information derived using the post-change algorithm. Fourth, the rearrangement deleting unit 3430 deletes the data item specified by the rearrangement data item ID from the server storage node 50 corresponding to the node identification information derived using the pre-change algorithm.
Although the present invention has been described with reference to each embodiment, the present invention is not limited to the above embodiment. Various changes that can be understood by those skilled in the art can be made to the configuration and details of the present invention within the scope of the present invention.
For example, each component described in each of the above embodiments does not necessarily have to be individually independent. For example, for each component, a plurality of components may be realized as one module, or one component may be realized as a plurality of modules. Each component is configured such that a component is a part of another component, or a part of a component overlaps a part of another component. Also good.
Further, in each of the embodiments described above, a plurality of operations are described in order in the form of a flowchart, but the described order does not limit the order in which the plurality of operations are executed. For this reason, when each embodiment is implemented, the order of the plurality of operations can be changed within a range that does not hinder the contents.
Furthermore, in each embodiment described above, a plurality of operations are not limited to being executed at different timings. For example, another operation may occur during the execution of a certain operation, or the execution timing of a certain operation and another operation may partially or entirely overlap.
Furthermore, in each of the embodiments described above, a certain operation is described as a trigger for another operation, but the description does not limit all relationships between the certain operation and the other operations. For this reason, when each embodiment is implemented, the relationship between the plurality of operations can be changed within a range that does not hinder the contents. The specific description of each operation of each component does not limit each operation of each component. For this reason, each specific operation | movement of each component may be changed in the range which does not cause trouble with respect to a functional, performance, and other characteristic in implementing each embodiment.
While the present invention has been described with reference to the embodiments, the present invention is not limited to the above embodiments. Various changes that can be understood by those skilled in the art can be made to the configuration and details of the present invention within the scope of the present invention.
This application claims the priority on the basis of Japanese application Japanese Patent Application No. 2011-147519 for which it applied on July 1, 2011, and takes in those the indications of all here.
 本発明における分散配置装置、分散配置方法及びそのためのプログラムは、例えば、データセンターの運用、管理といった用途に適用されうる。また、本発明における分散配置装置、分散配置方法及びそのためのプログラムは、例えば、複数のラック、コンピュータ、ストレージで構築される、アプライアンス製品の運用、管理といった用途にも適用されうる。 The distributed arrangement apparatus, the distributed arrangement method, and the program therefor according to the present invention can be applied to uses such as data center operation and management. Further, the distributed arrangement apparatus, the distributed arrangement method, and the program therefor according to the present invention can be applied to uses such as operation and management of appliance products constructed by a plurality of racks, computers, and storages, for example.
 10 クライアントノード
 20 ネットワーク
 30 分散アクセスノード
 32 分散アクセスノード
 33 分散アクセスノード
 34 分散アクセスノード
 40 分散システムネットワーク
 50 サーバストレージノード
 60 ストレージ
 400 アクセス履歴情報
 401 データアイテムID
 410 再配置情報
 411 再配置データアイテムID
 420 分散配置アルゴリズムテーブル
 421 変更後プログラム名
 422 変更前プログラム名
 430 再配置ノード対応情報
 432 ノード識別情報
 440 利用者判断情報
 441 分散配置アルゴリズムID
 442 配置適切度
 3010 アクセス場所決定部
 3210 アクセス場所決定部
 3020 アルゴリズム変更部
 3030 再配置実行部
 3031 入出力実行部
 3040 アクセス履歴収集部
 3050 再配置情報生成部
 3060 負荷監視部
 3070 CPU
 3071 記憶部
 3072 記憶装置
 3073 入力部
 3074 出力部
 3075 通信部
 3077 記録媒体
 3080 効果予測部
 3081 効果通知部
 3090 アルゴリズム決定部
 3091 適切度監視部
 3410 再配置読込部
 3420 再配置書出部
 3430 再配置消去部
DESCRIPTION OF SYMBOLS 10 Client node 20 Network 30 Distributed access node 32 Distributed access node 33 Distributed access node 34 Distributed access node 40 Distributed system network 50 Server storage node 60 Storage 400 Access history information 401 Data item ID
410 Relocation information 411 Relocation data item ID
420 Distributed Allocation Algorithm Table 421 Program Name After Change 422 Program Name Before Change 430 Relocation Node Correspondence Information 432 Node Identification Information 440 User Judgment Information 441 Distributed Allocation Algorithm ID
442 Arrangement appropriateness 3010 Access location determination unit 3210 Access location determination unit 3020 Algorithm change unit 3030 Relocation execution unit 3031 Input / output execution unit 3040 Access history collection unit 3050 Relocation information generation unit 3060 Load monitoring unit 3070 CPU
3071 Storage unit 3072 Storage device 3073 Input unit 3074 Output unit 3075 Communication unit 3077 Recording medium 3080 Effect prediction unit 3081 Effect notification unit 3090 Algorithm determination unit 3091 Relevance monitoring unit 3410 Relocation reading unit 3420 Relocation writing unit 3430 Relocation erasure Part

Claims (14)

  1.  ノードに格納された再配置対象のデータアイテムを識別するための、データアイテム識別情報である再配置データアイテム識別情報を1以上含む再配置情報を生成し、出力する再配置情報生成手段と、
     複数の前記ノードに対応する複数のノード識別情報の内の特定のノード識別情報を導出する複数のアルゴリズムの内、第1のアルゴリズムを用いて導出した第1のノード識別情報に対応する第1のノードから、前記再配置情報に含まれる前記再配置データアイテム識別情報で特定されるデータアイテムを読み込む再配置読込手段と、
     前記複数のアルゴリズムの内の第2のアルゴリズムを用いて導出した第2のノード識別情報に対応する第2のノードに、前記再配置データアイテム識別情報で特定される前記データアイテムを書き出す再配置書出手段と、
     前記第1のアルゴリズムを用いて導出された前記第1のノード識別情報に対応する前記第1のノードから、前記再配置データアイテム識別情報で特定される前記データアイテムを消去する再配置消去手段と、を含む
     分散配置装置。
    Relocation information generating means for generating and outputting relocation information including one or more relocation data item identification information which is data item identification information for identifying a data item to be relocated stored in a node;
    Among the plurality of algorithms for deriving specific node identification information among the plurality of node identification information corresponding to the plurality of nodes, the first corresponding to the first node identification information derived using the first algorithm Relocation reading means for reading a data item specified by the relocation data item identification information included in the relocation information from a node;
    A rearrangement document for writing out the data item specified by the rearrangement data item identification information to a second node corresponding to second node identification information derived using the second algorithm of the plurality of algorithms Means of exiting,
    Relocation erasure means for erasing the data item specified by the relocation data item identification information from the first node corresponding to the first node identification information derived using the first algorithm; , Including distributed placement equipment.
  2.  少なくとも前記データアイテム識別情報を含む受信した入出力要求がデータアイテムの読み込みの要求であって、前記データアイテムのデータアイテム識別情報が前記再配置データアイテム識別情報として前記再配置情報に含まれている場合に、前記再配置読込手段に前記再配置データアイテム識別情報で特定されるデータアイテムの読み込みを要求する手段と、
     前記入出力要求がデータアイテムの書き出しの要求であって、前記データアイテムのデータアイテム識別情報が前記再配置データアイテム識別情報として前記再配置情報に含まれている場合に、前記再配置書出手段に前記再配置データアイテム識別情報で特定されるデータアイテムの書き出しを要求する手段と、を更に含む
     ことを特徴とする請求項1記載の分散配置装置。
    The received input / output request including at least the data item identification information is a data item read request, and the data item identification information of the data item is included in the relocation information as the relocation data item identification information A means for requesting the rearrangement reading means to read the data item specified by the rearrangement data item identification information;
    The relocation writing means when the input / output request is a data item write request and the data item identification information of the data item is included in the relocation information as the relocation data item identification information The distributed arrangement apparatus according to claim 1, further comprising: means for requesting writing of the data item specified by the relocation data item identification information.
  3.  前記分散配置装置自身の負荷状態を監視し、その監視結果を出力する負荷監視手段を更に含み、
     前記再配置読込手段は、前記監視結果に基づいて、前記再配置データアイテム識別情報で特定されるデータアイテムを読み込む
     ことを特徴とする請求項1または2記載の分散配置装置。
    It further includes load monitoring means for monitoring the load state of the distributed arrangement device itself and outputting the monitoring result,
    The distributed arrangement apparatus according to claim 1, wherein the rearrangement reading unit reads a data item specified by the rearrangement data item identification information based on the monitoring result.
  4.  前記再配置情報生成手段は、前記データアイテム識別情報と前記データアイテム識別情報で特定される前記データアイテムがアクセスされた時刻とを少なくとも含むアクセス履歴情報に基づいて、単位時間当たりのアクセス数が多い前記データアイテムに対応する順に、前記再配置データアイテム識別情報を並べた前記再配置情報を生成する
     ことを特徴とする請求項1乃至3のいずれか1項に記載の分散配置装置。
    The relocation information generating means has a large number of accesses per unit time based on access history information including at least the data item identification information and a time when the data item specified by the data item identification information is accessed. The distributed arrangement apparatus according to any one of claims 1 to 3, wherein the rearrangement information in which the rearrangement data item identification information is arranged in an order corresponding to the data items is generated.
  5.  前記アクセス履歴情報は、前記データアイテム識別情報に対応する前記アルゴリズムの識別情報を更に含み、
     前記再配置読込手段及び再配置消去手段は、前記アルゴリズムの識別情報に基づいて、前記第1のアルゴリズムを選択する
     ことを特徴とする請求項4記載の分散配置装置。
    The access history information further includes identification information of the algorithm corresponding to the data item identification information,
    The distributed arrangement apparatus according to claim 4, wherein the rearrangement reading unit and the rearrangement erasing unit select the first algorithm based on identification information of the algorithm.
  6.  複数の前記アルゴリズムそれぞれに対応する、前記データアイテムの配置の適切度を示す配置適切度を算出し、出力する効果予測手段を更に含む
     ことを特徴とする請求項1乃至5のいずれか1項に記載の分散配置装置。
    6. The method according to claim 1, further comprising an effect prediction unit that calculates and outputs an arrangement appropriateness indicating an appropriateness of the arrangement of the data item corresponding to each of the plurality of algorithms. The distributed arrangement apparatus as described.
  7.  前記配置適切度に基づいて、前記第2のアルゴリズムを選択するアルゴリズム決定手段を更に含む
     ことを特徴とする請求項6記載の分散配置装置。
    The distributed arrangement apparatus according to claim 6, further comprising an algorithm determination unit that selects the second algorithm based on the appropriateness of arrangement.
  8.  前記第2のアルゴリズムに対応する前記配置適切度を監視し、その監視の結果を前記アルゴリズム決定手段に通知する適切度監視手段を更に含む
     ことを特徴とする請求項7記載の分散配置装置。
    The distributed arrangement apparatus according to claim 7, further comprising an appropriateness monitoring unit that monitors the appropriateness of arrangement corresponding to the second algorithm and notifies the algorithm determination unit of a result of the monitoring.
  9.  コンピュータが、
     ノードに格納された再配置対象のデータアイテムを識別するための、データアイテム識別情報である再配置データアイテム識別情報を1以上含む再配置情報を生成し、出力し、
     複数の前記ノードに対応する複数のノード識別情報の内の特定のノード識別情報を導出する複数のアルゴリズムの内、第1のアルゴリズムを用いて導出した第1のノード識別情報に対応する第1のノードから、前記再配置情報に含まれる前記再配置データアイテム識別情報で特定されるデータアイテムを読み込み、
     前記複数のアルゴリズムの内の第2のアルゴリズムを用いて導出した第2のノード識別情報に対応する前記第2のノードに、前記再配置データアイテム識別情報で特定される前記データアイテムを書き出し、
     前記第1のアルゴリズムを用いて導出された前記第1のノード識別情報に対応する前記第1のノードから、前記再配置データアイテム識別情報で特定される前記データアイテムを消去する
     分散配置方法。
    Computer
    Generating and outputting relocation information including one or more relocation data item identification information which is data item identification information for identifying a relocation target data item stored in the node;
    Among the plurality of algorithms for deriving specific node identification information among the plurality of node identification information corresponding to the plurality of nodes, the first corresponding to the first node identification information derived using the first algorithm From the node, read the data item specified by the relocation data item identification information included in the relocation information,
    Writing out the data item specified by the relocation data item identification information to the second node corresponding to second node identification information derived using a second algorithm of the plurality of algorithms;
    A distributed arrangement method for erasing the data item specified by the relocation data item identification information from the first node corresponding to the first node identification information derived using the first algorithm.
  10.  少なくとも前記データアイテム識別情報を含む受信した入出力要求がデータアイテムの読み込みの要求であって、前記データアイテムのデータアイテム識別情報が前記再配置データアイテム識別情報として前記再配置情報に含まれている場合に、前記第1のアルゴリズムを用いて導出した前記第1のノード識別情報に対応する前記第1のノードから、前記再配置データアイテム識別情報で特定されるデータアイテムの読み込み、
     前記入出力要求がデータアイテムの書き出しの要求であって、前記データアイテムのデータアイテム識別情報が前記再配置データアイテム識別情報として前記再配置情報に含まれている場合に、前記第2のアルゴリズムを用いて導出した前記第2のノード識別情報に対応する前記第2のノードに、前記再配置データアイテム識別情報で特定されるデータアイテムの書き出す
     ことを特徴とする請求項9記載の分散配置方法。
    The received input / output request including at least the data item identification information is a data item read request, and the data item identification information of the data item is included in the relocation information as the relocation data item identification information A reading of a data item identified by the relocation data item identification information from the first node corresponding to the first node identification information derived using the first algorithm,
    When the input / output request is a data item write request and the data item identification information of the data item is included in the relocation information as the relocation data item identification information, the second algorithm is The distributed arrangement method according to claim 9, wherein the data item specified by the rearranged data item identification information is written to the second node corresponding to the second node identification information derived by using the second node identification information.
  11.  前記コンピュータ自身の負荷状態を監視し、
     前記監視結果に基づいて、前記再配置データアイテム識別情報で特定されるデータアイテムを読み込む
     ことを特徴とする請求項9または10記載の分散配置方法。
    Monitoring the load status of the computer itself,
    The distributed arrangement method according to claim 9 or 10, wherein a data item specified by the rearrangement data item identification information is read based on the monitoring result.
  12.  複数の前記アルゴリズムそれぞれに対応する、前記データアイテムの配置の適切度を示す配置適切度を算出し、出力する
     ことを特徴とする請求項9乃至11のいずれか1項に記載の分散配置方法。
    The distributed arrangement method according to any one of claims 9 to 11, wherein an arrangement appropriateness indicating an appropriateness of the arrangement of the data items corresponding to each of the plurality of algorithms is calculated and output.
  13.  前記配置適切度に基づいて、前記第2のアルゴリズムを選択する
     ことを特徴とする請求項12記載の分散配置方法。
    The distributed arrangement method according to claim 12, wherein the second algorithm is selected based on the appropriateness of arrangement.
  14.  ノードに格納された再配置対象のデータアイテムを識別するための、データアイテム識別情報である再配置データアイテム識別情報を1以上含む再配置情報を生成し、出力する処理と、
     複数の前記ノードに対応する複数のノード識別情報の内の特定のノード識別情報を導出する複数のアルゴリズムの内、第1のアルゴリズムを用いて導出した第1のノード識別情報に対応する第1のノードから、前記再配置情報に含まれる前記再配置データアイテム識別情報で特定されるデータアイテムを読み込む処理と、
     前記複数のアルゴリズムの内の第2のアルゴリズムを用いて導出した第2のノード識別情報に対応する第2のノードに、前記再配置データアイテム識別情報で特定される前記データアイテムを書き出す処理と、
     前記第1のアルゴリズムを用いて導出された前記第1のノード識別情報に対応する前記第1のノードから、前記再配置データアイテム識別情報で特定される前記データアイテムを消去する処理とを、コンピュータに実行させる
     プログラムを記録した不揮発性媒体。
    Processing for generating and outputting relocation information including one or more relocation data item identification information, which is data item identification information, for identifying a relocation target data item stored in a node;
    Among the plurality of algorithms for deriving specific node identification information among the plurality of node identification information corresponding to the plurality of nodes, the first corresponding to the first node identification information derived using the first algorithm A process of reading a data item specified by the relocation data item identification information included in the relocation information from a node;
    A process of writing the data item specified by the relocation data item identification information to a second node corresponding to second node identification information derived using a second algorithm of the plurality of algorithms;
    A process of erasing the data item specified by the relocation data item identification information from the first node corresponding to the first node identification information derived using the first algorithm. A non-volatile medium that records a program to be executed.
PCT/JP2012/067245 2011-07-01 2012-06-29 Distributed positioning device and distributed positioning method WO2013005812A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2011147519 2011-07-01
JP2011-147519 2011-07-01

Publications (1)

Publication Number Publication Date
WO2013005812A1 true WO2013005812A1 (en) 2013-01-10

Family

ID=47437158

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2012/067245 WO2013005812A1 (en) 2011-07-01 2012-06-29 Distributed positioning device and distributed positioning method

Country Status (1)

Country Link
WO (1) WO2013005812A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014203376A (en) * 2013-04-09 2014-10-27 日本電信電話株式会社 Data processing request distribution device and data processing request distribution program

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003006021A (en) * 2001-06-27 2003-01-10 Hitachi Ltd Data base system, data base managing method and program
JP2008084244A (en) * 2006-09-29 2008-04-10 Alaxala Networks Corp Hash table creating method

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003006021A (en) * 2001-06-27 2003-01-10 Hitachi Ltd Data base system, data base managing method and program
JP2008084244A (en) * 2006-09-29 2008-04-10 Alaxala Networks Corp Hash table creating method

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014203376A (en) * 2013-04-09 2014-10-27 日本電信電話株式会社 Data processing request distribution device and data processing request distribution program

Similar Documents

Publication Publication Date Title
US20190073372A1 (en) Creating Snapshots Of A Storage Volume In A Distributed Storage System
JP5931196B2 (en) Control method of cache memory provided in I / O node and plural calculation nodes
US10235047B2 (en) Memory management method, apparatus, and system
US20150381734A1 (en) Storage system and storage system control method
JP2013509658A (en) Allocation of storage memory based on future usage estimates
US20210004171A1 (en) I/o request processing method and device
US10552460B2 (en) Sensor data management apparatus, sensor data management method, and computer program product
JP2013045379A (en) Storage control method, information processing device and program
US10831371B2 (en) Quota controlled movement of data in a tiered storage system
JP2005322020A (en) Storage system, file access control program and file access control method
JP6798564B2 (en) Resource setting control device, resource setting control system, resource setting control method, and resource setting control program
JP2015191523A (en) Configuration management apparatus, configuration management system, and configuration management program
US9338057B2 (en) Techniques for searching data associated with devices in a heterogeneous data center
JP2004318540A (en) Performance information monitoring device, method and program
US10146783B2 (en) Using file element accesses to select file elements in a file system to defragment
CN105760391B (en) Method, data node, name node and system for dynamically redistributing data
JP2005157711A (en) Storage system learning access pattern
CN110457307B (en) Metadata management system, user cluster creation method, device, equipment and medium
JP2005149283A (en) Information processing system, control method therefor, and program
WO2013005812A1 (en) Distributed positioning device and distributed positioning method
JP6307962B2 (en) Information processing system, information processing method, and information processing program
JP2020031359A (en) Network management device, and network management method
US20140058717A1 (en) Simulation system for simulating i/o performance of volume and simulation method
JP2009157441A (en) Information processor, file rearrangement method, and program
JP6568232B2 (en) Computer system and device management method

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: 12807158

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: 12807158

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: JP