WO2013073022A1 - 計算機システム及び障害検出方法 - Google Patents
計算機システム及び障害検出方法 Download PDFInfo
- Publication number
- WO2013073022A1 WO2013073022A1 PCT/JP2011/076401 JP2011076401W WO2013073022A1 WO 2013073022 A1 WO2013073022 A1 WO 2013073022A1 JP 2011076401 W JP2011076401 W JP 2011076401W WO 2013073022 A1 WO2013073022 A1 WO 2013073022A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- server
- computers
- failure
- computer
- connection
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Ceased
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0706—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
- G06F11/0709—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a distributed system consisting of a plurality of standalone computer nodes, e.g. clusters, client-server systems
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0751—Error or fault detection not based on redundancy
Definitions
- the present invention relates to a distributed database composed of a plurality of computers.
- the present invention relates to a computer system and method for detecting a failure of a computer constituting a distributed database.
- a volatile storage medium capable of accessing data at high speed for example, a configuration in which data is stored in a memory, a non-volatile recording medium having excellent data storage durability, such as an SSD (Solid State Disk), etc.
- Various configurations such as a configuration for storing data in an HDD or the like and a configuration for using these in combination are employed.
- a memory store configured by virtually integrating the memories of a plurality of computers and a nonvolatile storage medium of one or more computers according to various operation policies such as emphasis on high-speed accessibility and persistence It is possible to change the balance of the disk store composed of
- the memory store and the disk store store data in which data (value) and data identifier (key) are paired.
- parallel processing is realized by configuring a cluster from a plurality of servers and distributing and arranging data on the servers included in the cluster. Specifically, data is stored in each server for each key range. Each server executes processing as a master of data included in the key range in charge. That is, in response to a read request including a predetermined key, a server in charge of data in a key range including the key reads data corresponding to the key.
- the cluster has a configuration in which servers are connected in a ring shape, and each server is assigned a unique identification number.
- various methods such as a consistent hashing method, a range method, and a list method are used.
- the consistent hashing method will be described.
- a hash value for a key is calculated, and a remainder obtained by dividing the calculated hash value by the number of servers is calculated.
- Data is arranged in a server whose remainder matches the server identification number.
- KVS is known to adopt a configuration in which replicated data of data managed by other servers is stored in the servers constituting the cluster. That is, each server is a master that manages data included in a predetermined key range, and at the same time is a slave that holds duplicate data of data managed by other servers. As a result, even when a failure occurs on a server, the data managed by the failed server becomes the master by upgrading the replicated data held by the other server that is a slave, Processing can continue.
- the master server is referred to as a master server
- the slave server is also referred to as a slave server.
- KVS also ensures fault tolerance.
- slave servers that is, the number of servers serving as storage destinations of replicated data can be arbitrarily set by the computer system.
- a heartbeat is known as a method for detecting a failure of a server constituting a database as described above (see, for example, Patent Document 1).
- the monitoring device transmits a heartbeat signal and does not respond for a certain period and times out, it is determined that a failure has occurred in the node.
- the timeout time in order to shorten the processing stop time of the server.
- the time-out time is shortened, a time-out occurs due to delay or disappearance of the heartbeat signal on the network, and erroneous fault detection may be performed even though no fault has occurred. Therefore, the timeout time needs to be sufficiently long, and it is difficult to shorten the service interruption time by the failure detection method using the heartbeat.
- a typical example of the invention disclosed in the present application is as follows. That is, a computer system in which a plurality of computers are connected through a connection established on a network, each of the plurality of computers being connected to a processor, a memory connected to the processor, and the processor.
- a network interface for communicating with other devices via the network, and the plurality of computers includes a computer that executes a business using a database configured from a storage area of each computer,
- data is distributed and arranged for each data management range, and the computer system monitors the connection state of the plurality of computers, and the connection A plurality of computers constituting the database by detecting an abnormal connection A connection management unit for detecting occurrence of harm, and managing the management range of the data distributed and arranged in each of a plurality of computers constituting the database, and when a failure occurs in any of the computers constituting the database
- a management range management unit for updating the management range.
- the present invention it is possible to detect a failure of a computer constituting a database based on the connection state. Recover faults faster than heartbeat.
- FIG. 1 is a block diagram showing a configuration of a computer system according to the first embodiment of the present invention.
- the computer system includes servers 100A and 100B, client devices 200A and 200B, a configuration information management server 300, and a network 400.
- Servers 100A and 100B, client devices 200A and 200B, and configuration information management server 300 are connected to each other via a network 400.
- the servers 100A and 100B are not distinguished from each other, they are described as the server 100, and when the client devices 200A and 200B are not distinguished from each other, they are described as the client device 200.
- the present invention is not limited to this. That is, the computer system may include one or three or more servers 100 and client devices 200.
- the network 400 may have various wired and wireless configurations such as LAN, WAN, and SAN.
- the present invention may be any network as long as the server 100, the client device 200, and the configuration information management server 300 can communicate with each other.
- the network 400 includes a plurality of network devices (not shown).
- the network device includes, for example, a switch and a gateway.
- each client device 200 is connected to all the servers 100 included in the computer system and can communicate with all the servers 100.
- this embodiment demonstrates as what establishes a connection with all the servers 100, the structure which establishes a connection with some servers 100 may be sufficient as this invention.
- a cluster is configured from a plurality of servers 100, and a NoSQL database is constructed on a storage area included in the servers 100.
- KVS is used as the NoSQL database. Further, it is assumed that the data is arranged in each server 100 for each key range (key range).
- the server 100 is a computer constituting the KVS.
- the server 100 executes various processes in accordance with requests from the client device 200. In the present embodiment, it is assumed that the configuration of each server 100 is the same.
- the server 100 is arranged with data for each predetermined key range, and operates as a master server that manages data included in the key range.
- the server 100 holds duplicate data of data included in the key range managed by the other server 100 and operates as a slave server.
- data managed as a master server is referred to as master data
- data managed as a slave server is also referred to as slave data.
- the cluster of this embodiment there is no single server serving as a management server that manages the entire computer system, and all servers 100 are treated as equivalent servers. As a result, even if a failure occurs in one server, other slave servers can continue processing as a new master server, so that the processing can be continued without stopping the computer system.
- the server 100 stores a program for realizing the connection management unit 110, the data management unit 120, the configuration information management unit 130, the heartbeat control unit 140, the failure notification relay unit 150, and the OS (operating system) 160.
- the server 100 also stores configuration information 180.
- a data store 170 that is a database constituting the KVS is stored.
- the data store 170 stores data including a key and a value as a set.
- master data 171 managed as a master by the server 100 and slave data 172 that is a replica of the master data of another server 100 are stored.
- connection management unit 110 manages the state of the connection established between the server 100 and the client device 200.
- the connection management unit 110 holds a connection table 115 for managing the connection state. Details of the connection table 115 will be described later with reference to FIGS. 6A and 6B.
- the data management unit 120 controls various processes for data managed by the server 100.
- the data management unit 120 receives a request from the client device 200 and controls processing such as data reading and writing based on the request.
- the configuration information management unit 130 manages configuration information 180 that manages a data storage destination.
- the heartbeat control unit 140 controls and monitors a heartbeat signal transmitted / received between the servers 100.
- the failure notification relay unit 150 notifies the configuration information management server 300 that a failure has occurred in the server 100.
- the OS 160 manages the entire server 100.
- the configuration information 180 stores information indicating a data storage destination. That is, information indicating the key range of each server 100 is stored.
- the client device 200 transmits various processing requests to the server 100.
- the client device 200 stores programs for realizing the connection management unit 210, the access request unit 220, the configuration information management unit 230, and the failure notification unit 240.
- the client device 200 stores configuration information 260.
- connection management unit 210 manages the state of the connection established between the client device 200 and each server 100.
- the connection management unit 210 holds a connection table 215 for managing the connection state. Details of the connection table 215 will be described later with reference to FIGS. 5A and 5B.
- the access request unit 220 transmits an access request to the server 100.
- the access request is for requesting execution of data read processing and data write processing. Note that the writing process includes data writing and data overwriting.
- the configuration information management unit 230 manages the configuration information 260 for managing the data storage destination.
- the failure notification unit 240 notifies a failure of the server 100.
- the OS 250 manages the entire client device 200.
- the configuration information management server 300 manages configuration information for managing the data storage destination in the computer system.
- the configuration information management server 300 stores software for realizing the configuration information management unit 310 and the OS 320. Further, the configuration information management server 300 stores configuration information 330.
- the configuration information management unit 310 manages the configuration information 330. Specifically, the configuration information management unit 310 generates new configuration information 330 and transmits the new configuration information 330 to each server 100 when receiving a notification of a failure occurrence of the server 100.
- the OS 320 controls the entire configuration information management server 300.
- the configuration information 180, the configuration information 260, and the configuration information 330 store information indicating a data storage destination.
- the functions of the server 100, the client device 200, and the configuration information management server 300 are realized using software. However, the same function may be realized using dedicated hardware.
- the hardware configuration of the server 100, the client device 200, and the configuration information management server 300 will be described as being the same.
- FIG. 2 is a block diagram illustrating the hardware configuration of the server 100, the client device 200, and the configuration information management server 300 according to the first embodiment of the present invention.
- the server 100 will be described as an example.
- the server 100 includes a processor 101, a main storage device 102, and a network interface 103.
- the processor 101 executes a program stored in the main storage device 102.
- the processor 101 executes the program, the functions of the server 100 can be realized.
- the processing is described with the program as the subject, it is assumed that the processor 101 is executing the program.
- the main storage device 102 stores a program executed by the processor 101 and information necessary for executing the program.
- the main storage device 102 may be a memory, for example.
- the network interface 103 is an interface for connecting to other devices via the network 400.
- the server 100, the client device 200, and the configuration information management server 300 may include other configurations such as an auxiliary storage device (not shown) such as an HDD or an SSD, and an input / output device (not shown) such as a keyboard and a display.
- an auxiliary storage device such as an HDD or an SSD
- an input / output device such as a keyboard and a display.
- the server 100, the client device 200, and the configuration information management server 300 have the same configuration, but may have different configurations.
- a configuration in which the server 100 includes an auxiliary storage device and the client device 200 includes an input / output device is conceivable.
- FIG. 3 is an explanatory diagram showing a format of data stored in the data store 170 according to the first embodiment of this invention.
- the data store 170 stores data management information 1700.
- the data management information 1700 includes a plurality of data in which a key and a value are paired.
- data in which a key and a value are paired is also referred to as key-value type data.
- the data management information 1700 includes a Key 1701 and a Value 1702.
- Key 1701 stores an identifier (key) for identifying data.
- Value 1702 stores actual data (value).
- the user who operates the client device 200 can specify the key 1701 and store data in the KVS, and can also specify the key 1701 and acquire desired data from the KVS.
- Each server 100 manages key-value type data for each predetermined key 1701 range (key range). That is, key value type data is distributed and arranged in each server 100 for each key range.
- the server 100 executes processing as a master server for data in the designated key range. As a result, a large amount of data can be processed in parallel and at high speed.
- FIG. 4 is an explanatory diagram illustrating an example of the configuration information 330 according to the first embodiment of this invention. It is assumed that the same information is stored in the configuration information 180, the configuration information 260, and the configuration information 330 before a failure occurs in the computer system.
- the configuration information management server 300 updates the configuration information 330 as described later, and then the configuration information 180 and the configuration information 260 are updated in this order.
- the configuration information 330 stores information for managing a data storage destination for each key range. Specifically, the configuration information 330 includes a key range 3301, a type 3302, and a storage location 3303.
- the key range 3301 stores information indicating a key range that is a range of data to be distributed and arranged in the server. Note that in the case of distributed arrangement using the consistent hashing method, the key range 3301 is a hash value range.
- the type 3302 stores information indicating whether data included in the key range is managed as a master server or a slave server.
- “master” is stored when managing key-value data included in the key range as a master server
- “key” data when storing key-value data stored in the key range as a slave server.
- “Slave” is stored.
- the storage location 3303 stores identification information of the server 100 that stores data included in the key range. As information for identifying the server 100, an identifier, an IP address, a MAC address, or the like of the server 100 can be considered. In the present embodiment, it is assumed that the storage destination 3303 stores the identifier of the server 100.
- FIG. 5A and 5B are explanatory diagrams illustrating an example of the connection table 215 stored in the client device 200 according to the first embodiment of this invention.
- FIG. 5A shows a connection table 215 stored in the client device 200A.
- FIG. 5B shows a connection table 215 stored in the client device 200B.
- the connection table 215 stores information indicating a connection state and a network connection state. Specifically, the connection table 215 includes a connection destination 2151, an access state 2152, and a connection state 2153.
- the connection destination 2151 stores the identification information of the server 100 that is the connection partner of the connection.
- information for identifying the server 100 an identifier, an IP address, a MAC address, or the like of the server 100 can be considered. In this embodiment, it is assumed that the connection destination 2151 stores the identifier of the server 100.
- the access state 2152 stores information indicating a state of network connection with the server 100, that is, information indicating whether or not the server 100 can be accessed.
- “normal” is stored when the server 100 can be accessed
- “abnormal” is stored when the server 100 cannot be accessed.
- connection status 2153 stores information indicating the connection status of the connection. For example, “connection” is stored when the connection is connected, and “disconnection” is stored when the connection is disconnected.
- FIG. 6A and 6B are explanatory diagrams illustrating an example of the connection table 115 stored in the server 100 according to the first embodiment of this invention.
- FIG. 6A shows the connection table 115 stored in the server 100A.
- FIG. 6B shows the connection table 115 stored in the server 100B.
- connection table 115 stores information indicating a connection state. Specifically, the connection table 115 includes a connection destination 1151 and a connection state 1152.
- the connection destination 1151 stores identification information of the client device 200 that is a connection partner of the connection.
- As the identification information of the client device 200 an identifier, an IP address, a MAC address, or the like of the client device 200 can be considered. In this embodiment, it is assumed that the identifier of the client device 200 is stored in the connection destination 1151.
- connection status 1152 stores information indicating the connection status of the connection. For example, “connection” is stored when the connection is connected, and “disconnection” is stored when the connection is disconnected.
- FIG. 7 is a flowchart illustrating access request issuance processing executed by the client device 200 according to the first embodiment of the present invention.
- the access request issuing process is executed by the access request unit 220.
- the access request unit 220 issues a data operation API (step S100). Based on the issued data operation API, data to be processed is determined. Hereinafter, data to be processed is also referred to as target data.
- the access request unit 220 refers to the configuration information 260 and identifies the server 100 in which the target data is stored (step S102).
- the configuration information 260 is the latest.
- the server 100 that has received the access request transfers the access request to the server 100 that stores the target data based on the configuration information 180.
- the access request unit 220 transmits an access request including identification information (key) of the target data to the identified server 100 (step S104).
- the access request unit 220 determines whether or not a response to the access request has been received from the server 100 within a certain period (step S106). If it is determined that a response from the server 100 has been received within a certain period, the access request unit 220 ends the process.
- the access request unit 220 updates the connection table 215 (step S108). Specifically, the access request unit 220 updates the access state 2152 of the entry corresponding to the server 100 that does not respond from “normal” to “abnormal”. That is, the client device 200 detects that an abnormality has occurred in the network connection with the server 100.
- the server 100 detected as the failed server 100 is also referred to as a failed server.
- the access request unit 220 calls the failure notification unit 240 to instruct execution of the failure notification process, and ends the process (step S110).
- step S106 when a plurality of access requests are transmitted at once, the processing from step S106 to step S110 is executed for each access request.
- step S108 the connection table 215 of the client device 200A is updated as shown in FIG. That is, the access state 2152 of the entry corresponding to the server 100A is changed from “normal” to “abnormal”. Since the connection table 215 of the client device 200B is not updated, it remains as shown in FIG. 5B.
- FIG. 9 is a flowchart for explaining failure notification processing executed by the client device 200 according to the first embodiment of the present invention.
- the failure notification unit 240 called from the access request unit 220 identifies the failure server 100 with reference to the connection table 215, and generates failure server information (step S200).
- the failure server information includes at least the identifier of the failure server 100.
- other information such as the reason for the failure may be included in the failure server information.
- the failure notification unit 240 detects the server 100 corresponding to the entry in which “abnormal” is stored in the access state 2152 as the failure server 100.
- the server 100A is detected as a failure server.
- the failure notification unit 240 refers to the connection table 215 and identifies the server 100 that is the transmission destination of the generated failure server information (step S202). Specifically, the following processing is executed.
- the failure notification unit 240 refers to the connection table 215 and identifies the server 100 with which connection is established and accessible.
- the server 100 that is established and accessible is also referred to as a connection server 100.
- the failure notification unit 240 searches for an entry in which the connection state 2153 is “connected” and the access state 2152 is “normal”.
- the server 100B is specified as the connection server 100.
- a plurality of connection servers 100 may be specified.
- the failure notification unit 240 transmits the failure server information to the connection server 100 and ends the process (step S204).
- the failure server information of the connection server 100 is received by the failure server information.
- the failure server information may be transmitted to the plurality of connection servers 100 using multicast communication or the like, or to one connection server 100 using unicast communication or the like. Fault server information may be transmitted.
- a selection method of the connection server 100 that transmits the failure server information for example, there is a method of selecting the connection server 100 corresponding to the upper entry of the connection table 215, or a method of selecting the connection server 100 with a low communication load. Conceivable.
- the fault server information is transmitted from the client device 200A to the server 100B.
- FIG. 10 is a flowchart illustrating the relay process executed by the server 100 according to the first embodiment of this invention.
- the relay process is executed by the failure notification relay unit 150.
- the failure notification relay unit 150 When the failure notification relay unit 150 receives the failure server information from the client device 200 (step S300), the failure notification relay unit 150 transmits the received failure server information to the configuration information management server 300 (step S302), and ends the process.
- FIG. 11 is a flowchart illustrating configuration information update processing executed by the configuration information management server 300 according to the first embodiment of the present invention.
- the configuration information update process is executed by the configuration information management unit 310.
- the configuration information management unit 310 starts processing upon receiving the fault server information (step S400).
- the configuration information management unit 310 refers to the configuration information 330 and deletes the entry corresponding to the failed server 100 (step S402). In the present embodiment, the entry corresponding to the server 100A is deleted from the configuration information 330.
- the configuration information management unit 310 updates the configuration information 330 so that the server 100 that holds the slave data of the data that the fault server 100 managed as the master becomes the master server (step S404).
- the configuration information management unit 310 transmits the updated configuration information 330 to each server 100 and ends the process (step S406). At this time, it is transmitted to the server 100 included in the updated configuration information 330.
- the configuration information 330 shown in FIG. 12 is updated to the configuration information 330 shown in FIG. 12 by executing the configuration information update process shown in FIG. As shown in FIG. 12, the server 100 ⁇ / b> B manages the key range data that has been managed as the master by the deleted server A as the new master server 100. Further, the updated configuration information 330 is transmitted to the server 100B.
- FIG. 13 is a flowchart illustrating configuration information update processing executed by the server 100 according to the first embodiment of the present invention.
- the configuration information update process is executed by the configuration information management unit 130.
- the configuration information management unit 130 receives the updated configuration information 330 from the configuration information management server 300 (step S500).
- the configuration information management unit 130 updates the configuration information 180 based on the received configuration information 330 and ends the process (step S502).
- update method a method of overwriting the configuration information 330 on the configuration information 180, a method of merging the configuration information 180 and the configuration information 330, or the like can be considered.
- the present invention is not limited to the updating method.
- connection tables 215 of the client device 200A and the client device 200B are updated as shown in FIGS. 14A and 14B.
- the configuration information management server 300 or the server 100 may execute the recovery process of the server 100 when the occurrence of a failure of the server 100 is detected.
- the recovery process of the server 100 is a well-known technique, description is abbreviate
- the client device 200 can detect the server 100 in which a failure has occurred based on the presence or absence of a response to the access request from the server 100.
- a failure of the server 100 in a shorter time than the monitoring time of the heartbeat signal.
- the computer system includes the configuration information management server 300.
- the same function may be added to each server 100. That is, a configuration in which each server 100 realizes the same processing as that of the configuration information management server 300 may be employed. In this case, the failure notification relay unit 150 is not necessary.
- server 100 the client device 200, and the configuration information management server 300 may be configured on a single hardware, and a computer system having a plurality of hardware may be constructed.
- the server 100, the client device 200, and the configuration information management server 300 may be realized as a virtual computer using a virtualization technique.
- the server 100, the client device 200, and the configuration information management server 300 can be configured on one computer.
- the second embodiment is different from the first embodiment in that the failure server 100 is specified by detecting the disconnection of the connection.
- the second embodiment will be described focusing on differences from the first embodiment.
- the server 100, the client device 200, and the configuration information management server 300 in the second embodiment are the same, description thereof is omitted.
- the second embodiment is different in that the faulty server 100 is detected using the connection state of the connection. Specific processing will be described below.
- FIG. 15 is a flowchart for explaining a connection state confirmation process executed by the client device 200 according to the second embodiment of the present invention.
- connection status confirmation process is executed by the connection management unit 210.
- the connection status confirmation process is executed as a process independent of the access request issue process.
- the connection management unit 210 confirms the connection state and determines whether or not the connection is disconnected from the server 100 (step S600).
- a method of confirming the connection state a method of periodically performing polling can be considered.
- this invention is not limited to the confirmation method of a connection state.
- the change in the connection state can be detected in a time shorter than the heartbeat monitoring time, the failure of the server 100 can be detected earlier than the failure detection method of the server 100 using the heartbeat.
- connection management unit 210 When it is determined that the connection is not disconnected, the connection management unit 210 continues the same monitoring until the connection disconnection is detected.
- connection management unit 210 updates the connection table 215 (step S602). Specifically, the connection management unit 210 updates the connection state 2153 of the entry corresponding to the server 100 whose connection has been disconnected from “connected” to “disconnected”.
- connection management unit 210 calls the failure notification unit 240 to instruct execution of the failure notification process, and ends the process (step S604). This process is the same process as step S110.
- step S602 the connection table 215 of the client device 200A is updated as shown in FIG. That is, the connection state 2153 of the entry corresponding to the server 100A is changed from “connected” to “disconnected”.
- connection table 215 of the client device 200B is not updated, so the state remains as shown in FIG. 5B.
- the connection table 215 of the client device 200B is also updated in the same manner as in FIG. The
- a failure of the server 100 can be detected at a timing other than when an access request is issued. As a result, the time for detecting the occurrence of a failure in the server 100 can be shortened.
- the third embodiment is different from the first embodiment in that the failure server 100 is specified using a heartbeat signal.
- the third embodiment will be described focusing on differences from the first embodiment. Note that the third embodiment is preferably used in combination with the method for specifying the faulty server 100 of the first and second embodiments.
- the server 100, the client device 200, and the configuration information management server 300 in the third embodiment are the same as those in the first embodiment, description thereof is omitted.
- the third embodiment is different in that the failure server 100 is detected using a heartbeat.
- the heartbeat signal monitoring process is executed by the heartbeat control unit 140. Specific processing will be described below.
- the heartbeat control unit 140 periodically transmits a heartbeat signal to the other server 100.
- the heartbeat control unit 140 determines whether a response signal is received from the server 100 that has transmitted the heartbeat signal. When it is determined that the response signals have been received from all the servers 100 that have transmitted the heartbeat signal, the heartbeat control unit 140 ends the process.
- the heartbeat control unit 140 When it is determined that the response signal is not received from at least one server 100, the heartbeat control unit 140 identifies the server 100 to which the response signal is not transmitted as the failed server, and sets the failed server information. Generate.
- the heartbeat control unit 140 calls the failure notification relay unit 150 to instruct execution of the failure notification processing, and ends the processing.
- the instruction includes fault server information.
- the failure of the server 100 can be detected based on processing executed at a timing other than when an access request is issued or when connection disconnection is detected. Therefore, the availability of the computer system can be increased.
- the fourth embodiment is different from the first embodiment in that the server 100 transmits the updated configuration information 180 to the client device 200.
- the difference from the first embodiment will be mainly described.
- the server 100, the client device 200, and the configuration information management server 300 in the fourth embodiment are the same as those in the first embodiment, description thereof is omitted.
- the configuration information update process executed by the server 100 is different. Further, the fourth embodiment is different from the first embodiment in that a configuration information update process executed by the client apparatus 200 is newly included. Since other processes are the same as those in the first embodiment, description thereof is omitted.
- FIG. 17 is a flowchart illustrating configuration information update processing executed by the server 100 according to the fourth embodiment of the present invention.
- the configuration information update process is executed by the configuration information management unit 130.
- step S500 and step S502 Since the processing in step S500 and step S502 is the same as that in the first embodiment, description thereof is omitted.
- the configuration information management unit 130 After updating the configuration information 180, the configuration information management unit 130 refers to the connection table 115, transmits the received configuration information 330 to the client device 200 connected by the connection, and ends the process (step S700). .
- FIG. 18 is a flowchart illustrating configuration information update processing executed by the client device 200 according to the fourth embodiment of the present invention.
- the configuration information update process is executed by the configuration information management unit 230.
- the configuration information management unit 230 receives the configuration information 330 from the server 100 (step S800).
- the configuration information management unit 230 updates the configuration information 260 based on the received configuration information 330 (step S802). Note that the processing in step S802 is the same as that in step S502.
- the configuration information management unit 230 refers to the updated configuration information 260, updates the connection table 215, and ends the process (step S804). Specifically, the configuration information management unit 230 compares the configuration information 260 with the connection table 215, identifies the server 100 that is not included in the configuration information 260, and enters an entry corresponding to the server 100 from the connection table 215. delete.
- the client device 200 can suppress transmission of an access request to the failure server 100 based on the updated configuration information 260. Further, since the client device 200 can directly transmit an access request to the master server 100, the processing result can be acquired at high speed.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Debugging And Monitoring (AREA)
Abstract
ハートビートよりも高速に障害を検出する計算機システムを実現する。 ネットワーク上に確立されたコネクションを介して複数の計算機が接続される計算機システムであって、複数の計算機は、各計算機が有する記憶領域から構成されたデータベースを用いて業務を実行する計算機を含み、計算機システムは、複数の計算機間のコネクションの接続の状態を監視し、コネクションの接続の異常を検出することによってデータベースを構成する複数の計算機の障害発生を検出する接続管理部と、データベースを構成する複数の計算機の各々に分散して配置されたデータの管理範囲を管理し、データベースを構成する複数の計算機の障害発生時に、管理範囲を更新する管理範囲管理部とを有する。
Description
本発明は、複数の計算機から構成される分散データベースに関する。特に、分散データベースを構成する計算機の障害を検出するための計算機システム及び方法に関する。
近年、Webを用いたアプリケーションを実行する計算システムにおいてデータ量が爆発的に増大しており、KVS(Key Value Store)等のNoSQL(Not only SQL)データベースを有する計算機システムが普及している。現在、このようなシステムは様々なエンタープライズシステムに導入されており、今後のさらなる活用が見込まれている。
KVSでは、データに高速にアクセス可能な揮発性の記憶媒体、例えば、メモリにデータが格納される構成や、データ格納の永続性に優れる不揮発性の記録媒体、例えば、SSD(Solid State Disk)やHDD等にデータを格納する構成や、これらを併用する構成等の種々の構成が採られている。併用する構成では、高速アクセス性重視や永続性重視等の種々の運用方針によって、複数台の計算機のメモリを仮想的に統合して構成されるメモリストア及び1台以上の計算機の不揮発性記憶媒体から構成されるディスクストアのバランスを種々変更可能となっている。
メモリストア及びディスクストアには、データ(バリュー)と、データの識別子(キー)とをペアとしたデータが格納される。
また、KVSでは、複数のサーバからクラスタを構成して、そのクラスタに含まれるサーバにデータを分散して配置することによって並列処理を実現している。具体的には、キーの範囲(キーレンジ)毎に、各サーバにデータが格納される。各サーバは、担当するキーレンジに含まれるデータのマスタとして処理を実行する。すなわち、所定のキーを含む読み出し要求に対して、そのキーが含まれるキーレンジのデータを担当するサーバが、キーに対応するデータを読み出すこととなる。
したがって、KVSでは、スケールアウトによって並列処理の性能を向上させることができる。
なお、クラスタはサーバをリング状に接続した構成となっており、各サーバには一意な識別番号が割り当てられる。また、各サーバに対するデータの配置方法は、Consistent Hashing法、Range法及びList法等の種々の方法が用いられる。
代表してConsistent Hashing法について説明する。Consistent Hashing法は、まず、キーに対するハッシュ値を算出し、算出したハッシュ値をサーバの台数で除算した余りを算出する。その余りがサーバの識別番号に一致するサーバにデータが配置されるようになっている。
さて、KVSでは、データの信頼性を確保する要請から、クラスタを構成するサーバには他のサーバが管理するデータの複製データが格納される構成を採るものが知られている。すなわち、各々のサーバは、所定のキーレンジに含まれるデータを管理するマスタであると同時に、他のサーバが管理するデータの複製データを保持するスレーブでもある。これによって、あるサーバに障害が発生した場合であっても、その障害サーバがマスタとして管理するデータを、スレーブである他のサーバが、自己が保持する複製データの格上げを行うことでマスタとなり、処理を継続することができる。
なお、以下、マスタであるサーバをマスタサーバと記載し、スレーブであるサーバをスレーブサーバとも記載する。
前述したようにKVSを構成するサーバには、管理サーバのような特別なサーバが存在しないため単一点障害が存在しない。すなわち、任意のサーバに障害が発生した場合であっても他のサーバが処理を継続できるため、計算機システムが停止することがない。したがって、KVSは、耐障害性も確保される。
なお、スレーブサーバの台数、すなわち、複製データの格納先となるサーバの台数は、計算機システムによって任意に設定することができる。
前述したようなデータベースを構成するサーバの障害を検出する方法として、ハートビートが知られている(例えば、特許文献1参照)。ハートビートでは、監視装置がハートビート信号を送信してから一定期間応答がなくタイムアウトした場合に、ノードに障害が発生したと判定する。
障害を検出するためにハートビートを用いた場合、ハートビート信号のタイムアウト時間が経過して初めてサーバの障害が検出される。このため、ハートビート信号のタイムアウト時間分だけ、障害が発生したサーバの処理が停止することとなる。
そのため、サーバの処理の停止時間を短くするためにタイムアウト時間を短くすることが考えられる。しかし、タイムアウト時間を短くすると、ハートビート信号のネットワーク上での遅延や消滅などによってタイムアウトが発生し、障害が発生していないにも関わらず誤った障害検出を行う場合がある。したがって、タイムアウト時間は十分に長くする必要があり、ハートビートを用いた障害検出方法ではサービスの中断時間を短縮することが困難である。
本願において開示される発明の代表的な一例を示せば以下の通りである。すなわち、ネットワーク上に確立されたコネクションを介して複数の計算機が接続される計算機システムであって、前記複数の計算機の各々は、プロセッサと、前記プロセッサに接続されるメモリと、前記プロセッサと接続され、前記ネットワークを介して他の装置と通信するためのネットワークインタフェースとを有し、前記複数の計算機は、前記各計算機が有する記憶領域から構成されたデータベースを用いて業務を実行する計算機を含み、前記データベースを構成する前記複数の計算機の各々には、データの管理範囲毎にデータが分散して配置され、前記計算機システムは、前記複数の計算機間のコネクションの接続の状態を監視し、前記コネクションの接続の異常を検出することによって前記データベースを構成する複数の計算機の障害発生を検出する接続管理部と、前記データベースを構成する複数の計算機の各々に分散して配置された前記データの前記管理範囲を管理し、前記データベースを構成する何れかの計算機の障害発生時に、前記管理範囲を更新する管理範囲管理部と、有することを特徴とする。
本発明によれば、コネクションの状態に基づいて、データベースを構成する計算機の障害発生を検出することができる。ハートビートより高速に障害を復旧できる。
[第1の実施形態]
図1は、本発明の第1の実施形態における計算機システムの構成を示すブロック図である。
計算機システムは、サーバ100A、100B、クライアント装置200A、200B、構成情報管理サーバ300及びネットワーク400から構成される。サーバ100A、100B、クライアント装置200A、200B及び構成情報管理サーバ300は、ネットワーク400を介して互いに接続される。以下、サーバ100A、100Bを区別しない場合、サーバ100と記載し、クライアント装置200A、200Bを区別しない場合、クライアント装置200と記載する。
また、本実施形態では、サーバ100及びクライアント装置200は、それぞれ2台ずつであるが、本発明はこれに限定されない。すなわち、計算機システムが、1台又は3台以上のサーバ100及びクライアント装置200を備えていてもよい。
ネットワーク400は、LAN、WAN及びSAN等の有線及び無線の種々構成が考えられる。本発明は、サーバ100、クライアント装置200及び構成情報管理サーバ300が通信できるものであればどのようなネットワークであってもよい。なお、ネットワーク400には、複数のネットワーク装置(図示省略)が含まれる。ネットワーク装置は、例えば、スイッチ及びゲートウェイなどが含まれる。
また、一つのクライアント装置200と全サーバ100との間にはコネクションが確立される。これによって、各クライアント装置200は計算機システムに含まれる全サーバ100と接続され、全サーバ100と通信を行うことができる。
なお、本実施形態では、全てのサーバ100とコネクションを確立するものとして説明するが、本発明は、一部のサーバ100とコネクションを確立する構成でもよい。
本実施形態では、複数のサーバ100からクラスタを構成し、それらサーバ100が備える記憶領域上にNoSQLデータベースが構築される。本実施形態ではNoSQLデータベースとして、KVSを用いるものとする。また、データは、キーの範囲(キーレンジ)毎に各サーバ100に配置されているものとする。
サーバ100は、KVSを構成する計算機である。サーバ100は、クライアント装置200からの要求にしたがって各種処理を実行する。本実施形態では、各サーバ100の構成は同一であるものとする。
サーバ100には、所定のキーレンジ毎にデータが配置されており、キーレンジに含まれるデータを管理するマスタサーバとして稼動する。また、サーバ100は、他のサーバ100が管理するキーレンジに含まれるデータの複製データを保持しており、スレーブサーバとして稼動する。以下では、マスタサーバとして管理するデータをマスタデータと記載し、スレーブサーバとして管理するデータをスレーブデータとも記載する。
また、本実施形態のクラスタは、計算機システム全体の管理を行う管理サーバとなる唯一のサーバが存在せず、全てのサーバ100が同等のサーバとして扱われる。これによって、1つのサーバに障害が発生しても、他のスレーブサーバが新たなマスタサーバとして処理を継続することができるため、計算機システムを停止することなく処理を継続することができる。
サーバ100は、コネクション管理部110、データ管理部120、構成情報管理部130、ハートビート制御部140、障害通知中継部150及びOS(オペレーティングシステム)160を実現するためのプログラムを格納する。また、サーバ100は、構成情報180を格納する。
さらに、サーバ100上には、KVSを構成するデータベースであるデータストア170が格納される。データストア170には、キーと、バリューとを一組としたデータが格納される。本実施形態では、サーバ100がマスタとして管理するマスタデータ171と、他のサーバ100のマスタデータの複製であるスレーブデータ172とが格納される。
コネクション管理部110は、当該サーバ100とクライアント装置200との間に確立されたコネクションの状態を管理する。コネクション管理部110は、コネクションの状態を管理するためのコネクションテーブル115を保持する。コネクションテーブル115の詳細については、図6A及び図6Bを用いて後述する。
データ管理部120は、サーバ100が管理するデータに対する各種処理を制御する。データ管理部120は、クライアント装置200からの要求を受け付け、その要求に基づいて、データの読み出しや書き込み等の処理を制御する。構成情報管理部130は、データの格納先を管理する構成情報180を管理する。
ハートビート制御部140は、サーバ100間で送受信されるハートビート信号を制御し、また、監視する。障害通知中継部150は、サーバ100の障害発生を構成情報管理サーバ300に通知する。OS160は、サーバ100全体を管理する。
構成情報180は、データの格納先を示す情報を格納する。すなわち、各サーバ100のキーレンジを示す情報が格納される。
次に、クライアント装置200について説明する。
クライアント装置200は、サーバ100に対して各種処理の要求を送信する。クライアント装置200は、コネクション管理部210、アクセス要求部220、構成情報管理部230及び障害通知部240を実現するためのプログラムを格納する。また、クライアント装置200は、構成情報260を格納する。
コネクション管理部210は、クライアント装置200と各サーバ100との間に確立されたコネクションの状態を管理する。コネクション管理部210は、コネクションの状態を管理するためのコネクションテーブル215を保持する。コネクションテーブル215の詳細については、図5A及び図5Bを用いて後述する。
アクセス要求部220は、サーバ100に対してアクセス要求を送信する。アクセス要求は、データの読み出し処理及び書き込み処理等の実行を要求するためのものである。なお、書き込み処理には、データの書き込みとデータの上書きとが含まれるものとする。
構成情報管理部230は、データの格納先を管理する構成情報260を管理する。障害通知部240は、サーバ100の障害を通知する。OS250は、クライアント装置200全体を管理する。
構成情報管理サーバ300は、計算機システムにおけるデータの格納先を管理するための構成情報を管理する。構成情報管理サーバ300は、構成情報管理部310及びOS320を実現するためのソフトウェアを格納する。また、構成情報管理サーバ300は、構成情報330を格納する。
構成情報管理部310は、構成情報330を管理する。具体的には、構成情報管理部310は、サーバ100の障害発生の通知を受信した場合に、新たな構成情報330を生成し、新たな構成情報330を各サーバ100に送信する。OS320は、構成情報管理サーバ300全体を制御する。
構成情報180、構成情報260及び構成情報330は、データの格納先を示す情報を格納する。
なお、本実施形態では、サーバ100、クライアント装置200及び構成情報管理サーバ300が備える機能をソフトウェアを用いて実現しているが、専用のハードウェアを用いて同一の機能を実現してもよい。
また、本実施形態では、サーバ100、クライアント装置200及び構成情報管理サーバ300のハードウェア構成は同一のものとして説明する。
図2は、本発明の第1の実施形態におけるサーバ100、クライアント装置200及び構成情報管理サーバ300のハードウェア構成を説明するブロック図である。図2では、サーバ100を例に説明する。
サーバ100は、プロセッサ101、主記憶装置102及びネットワークインタフェース103を備える。
プロセッサ101は、主記憶装置102に格納されるプログラムを実行する。プロセッサ101がプログラムを実行することによって、サーバ100が備える機能を実現することができる。以下、プログラムを主語に処理を説明する場合には、プロセッサ101によって、プログラムが実行されていることを示すものとする。
主記憶装置102は、プロセッサ101が実行するプログラム及び当該プログラムの実行に必要な情報を格納する。主記憶装置102は、例えば、メモリ等が考えられる。ネットワークインタフェース103は、ネットワーク400を介して他の装置と接続するためのインタフェースである。
なお、サーバ100、クライアント装置200及び構成情報管理サーバ300は、HDD又はSSD等の補助記憶装置(図示省略)、キーボード及びディスプレイ等の入出力装置(図示省略)など他の構成を含んでもよい。
また、本実施形態では、サーバ100、クライアント装置200及び構成情報管理サーバ300は同一の構成であるものとしたが、異なる構成であってもよい。例えば、サーバ100が補助記憶装置を備え、クライアント装置200が入出力装置を備える構成などが考えられる。
図3は、本発明の第1の実施形態におけるデータストア170に格納されるデータの形式を示す説明図である。
データストア170は、データ管理情報1700を格納する。データ管理情報1700には、キーとバリューとがペアとなったデータが複数含まれる。以下、キーとバリューとがペアとなったデータをキーバリュー型データとも記載する。
データ管理情報1700は、Key1701及びValue1702を含む。Key1701は、データを識別するための識別子(キー)を格納する。Value1702は、実際のデータ(バリュー)を格納する。
クライアント装置200を操作するユーザは、Key1701を指定してKVSにデータを格納し、また、Key1701を指定してKVSから所望のデータを取得することができる。
各サーバ100は、所定のKey1701の範囲(キーレンジ)毎にキーバリュー型データを管理する。すなわち、キーレンジ毎にキーバリュー型データが各サーバ100に分散して配置される。サーバ100は、指定されたキーレンジのデータのマスタサーバとして処理を実行することとなる。これによって、大量のデータを並列的かつ高速に処理できる。
図4は、本発明の第1の実施形態における構成情報330の一例を示す説明図である。なお、計算機システムに障害が発生する前では、構成情報180、構成情報260及び構成情報330は全て同一の情報が格納されるものとする。
本実施形態では、計算機システムに障害が発生した場合、後述するように構成情報管理サーバ300が構成情報330を更新し、その後、構成情報180、構成情報260の順に更新される。
構成情報330は、キーレンジ毎のデータの格納先を管理するための情報を格納する。具体的には、構成情報330は、キーレンジ3301、種類3302及び格納先3303を含む。
キーレンジ3301は、サーバに分散配置するデータの範囲であるキーレンジを示す情報を格納する。なお、Consistent Hashing法を用いて分散配置する場合には、キーレンジ3301はハッシュ値の範囲となる。
種類3302は、キーレンジに含まれるデータをマスタサーバ又はスレーブサーバとして管理するかを示す情報を格納する。本実施形態では、マスタサーバとしてキーレンジに含まれるキーバリュー型データを管理する場合には「マスタ」が格納され、スレーブサーバとしてキーレンジに格納されるキーバリュー型データを管理する場合には「スレーブ」が格納される。
格納先3303は、キーレンジに含まれるデータを格納するサーバ100の識別情報を格納する。サーバ100を識別する情報としては、サーバ100の識別子、IPアドレス及びMACアドレス等が考えられる。本実施形態では、格納先3303にはサーバ100の識別子が格納されるものとする。
図5A及び図5Bは、本発明の第1の実施形態におけるクライアント装置200が格納するコネクションテーブル215の一例を示す説明図である。図5Aは、クライアント装置200Aが格納するコネクションテーブル215を示す。図5Bは、クライアント装置200Bが格納するコネクションテーブル215を示す。
コネクションテーブル215は、コネクションの状態及びネットワーク接続の状態を示す情報を格納する。具体的には、コネクションテーブル215は、接続先2151、アクセス状態2152及び接続状態2153を含む。
接続先2151は、コネクションの接続相手であるサーバ100の識別情報を格納する。サーバ100を識別する情報としては、サーバ100の識別子、IPアドレス及びMACアドレス等が考えられる。本実施形態では、接続先2151にはサーバ100の識別子が格納されるものとする。
アクセス状態2152は、サーバ100とのネットワーク接続の状態を示す情報、すなわち、サーバ100にアクセスできるか否かを示す情報を格納する。本実施形態では、サーバ100にアクセスできる場合には「正常」が格納され、サーバ100にアクセスできない場合には「異常」が格納される。
接続状態2153は、コネクションの接続状態を示す情報を格納する。例えば、コネクションが接続される場合には「接続」が格納され、コネクションが切断された場合には「切断」が格納される。
図6A及び図6Bは、本発明の第1の実施形態におけるサーバ100が格納するコネクションテーブル115の一例を示す説明図である。図6Aは、サーバ100Aが格納するコネクションテーブル115を示す。図6Bは、サーバ100Bが格納するコネクションテーブル115を示す。
コネクションテーブル115は、コネクションの状態を示す情報を格納する。具体的には、コネクションテーブル115は、接続先1151及び接続状態1152を含む。
接続先1151は、コネクションの接続相手であるクライアント装置200の識別情報を格納する。クライアント装置200の識別情報としては、クライアント装置200の識別子、IPアドレス及びMACアドレス等が考えられる。本実施形態では、接続先1151にはクライアント装置200の識別子が格納されるものとする。
接続状態1152は、コネクションの接続状態を示す情報を格納する。例えば、コネクションが接続される場合には「接続」が格納され、コネクションが切断された場合には「切断」が格納される。
次に、サーバ100及びクライアント装置200が実行する処理について説明する。
図7は、本発明の第1の実施形態におけるクライアント装置200が実行するアクセス要求の発行処理を説明するフローチャートである。アクセス要求の発行処理は、アクセス要求部220によって実行される。
アクセス要求部220は、データ操作APIを発行する(ステップS100)。発行されたデータ操作APIに基づいて、処理対象となるデータが決定される。以下、処理対象となるデータを対象データとも記載する。
アクセス要求部220は、構成情報260を参照して、対象データが格納されるサーバ100を特定する(ステップS102)。ここでは、構成情報260は、最新のものとする。
なお、構成情報260が最新のものでない場合、アクセス要求を受け付けたサーバ100が、構成情報180に基づいて対象データを格納するサーバ100に当該アクセス要求を転送することとなる。
アクセス要求部220は、対象データの識別情報(キー)を含むアクセス要求を特定されたサーバ100に送信する(ステップS104)。
アクセス要求部220は、一定期間内に、サーバ100からアクセス要求に対する応答を受信したか否かを判定する(ステップS106)。一定期間内に、サーバ100からの応答を受信したと判定された場合、アクセス要求部220は処理を終了する。
一定期間内に、サーバ100からの応答を受信していないと判定された場合、アクセス要求部220は、コネクションテーブル215を更新する(ステップS108)。具体的には、アクセス要求部220は、応答がないサーバ100に対応するエントリのアクセス状態2152を「正常」から「異常」に更新する。すなわち、クライアント装置200は、サーバ100との間のネットワーク接続に異常が発生したものとして検出する。
以下では、障害が発生したサーバ100として検出されたサーバ100を障害サーバとも記載する。
アクセス要求部220は、障害通知部240を呼び出して障害通知処理の実行を指示し、処理を終了する(ステップS110)。
なお、複数のアクセス要求を一度に送信した場合には、各アクセス要求についてステップS106~ステップS110の処理が実行される。
以下では、クライアント装置200Aがサーバ100Aからの応答を受信していない場合を例に説明する。この場合、ステップS108において、クライアント装置200Aのコネクションテーブル215は、図8に示すように更新される。すなわち、サーバ100Aに対応するエントリのアクセス状態2152が「正常」から「異常」に変更される。なお、クライアント装置200Bのコネクションテーブル215は更新されないため、図5Bのままである。
図9は、本発明の第1の実施形態におけるクライアント装置200が実行する障害通知処理を説明するフローチャートである。
アクセス要求部220から呼び出された障害通知部240は、コネクションテーブル215を参照して障害サーバ100を特定し、障害サーバ情報を生成する(ステップS200)。ここで、障害サーバ情報には、少なくとも障害サーバ100の識別子が含まれる。ただし、障害の理由等、その他の情報が障害サーバ情報に含まれてもよい。
本実施形態では、障害通知部240は、アクセス状態2152に「異常」が格納されるエントリに対応するサーバ100を障害サーバ100として検出する。ここでは、サーバ100Aが障害サーバとして検出される。
障害通知部240は、コネクションテーブル215を参照して、生成された障害サーバ情報の送信先となるサーバ100を特定する(ステップS202)。具体的には、以下のような処理が実行される。
障害通知部240は、コネクションテーブル215を参照して、コネクションが確立され、かつ、アクセス可能なサーバ100を特定する。以下では、コネクションが確立され、かつ、アクセス可能なサーバ100を接続サーバ100とも記載する。
具体的には、障害通知部240は、接続状態2153が「接続」であり、かつ、アクセス状態2152が「正常」であるエントリを検索する。本実施形態では、サーバ100Bが接続サーバ100として特定される。なお、ステップS202では、複数台の接続サーバ100が特定されてもよい。
障害通知部240は、接続サーバ100に障害サーバ情報を送信し、処理を終了する(ステップS204)。障害サーバ情報は、接続サーバ100の障害通知中継部150が受信することとなる。
なお、接続サーバ100が複数台ある場合には、マルチキャスト通信等を用いて複数の接続サーバ100に障害サーバ情報を送信してもよいし、ユニキャスト通信等を用いて1台の接続サーバ100に障害サーバ情報を送信してもよい。障害サーバ情報を送信する接続サーバ100の選択方法としては、例えば、コネクションテーブル215の上位のエントリに対応する接続サーバ100を選択する方法、又は、通信負荷が低い接続サーバ100を選択する方法などが考えられる。
本実施形態では、クライアント装置200Aから、サーバ100Bに障害サーバ情報が送信される。
図10は、本発明の第1の実施形態におけるサーバ100が実行する中継処理を説明するフローチャートである。中継処理は、障害通知中継部150によって実行される。
障害通知中継部150は、クライアント装置200から障害サーバ情報を受信すると(ステップS300)、受信した障害サーバ情報を構成情報管理サーバ300に送信し(ステップS302)、処理を終了する。
図11は、本発明の第1の実施形態における構成情報管理サーバ300が実行する構成情報の更新処理を説明するフローチャートである。構成情報の更新処理は、構成情報管理部310によって実行される。
構成情報管理部310は、障害サーバ情報を受信すると処理を開始する(ステップS400)。
構成情報管理部310は、構成情報330を参照し、障害サーバ100に対応するエントリを削除する(ステップS402)。本実施形態では、サーバ100Aに対応するエントリが構成情報330から削除される。
構成情報管理部310は、障害サーバ100がマスタと管理していたデータのスレーブデータを保持するサーバ100がマスタサーバとなるように、構成情報330を更新する(ステップS404)。
構成情報管理部310は、更新された構成情報330を各サーバ100に送信し、処理を終了する(ステップS406)。このとき、更新された構成情報330に含まれるサーバ100に対して送信される。
本実施形態では、図11に示す構成情報の更新処理が実行されることによって図12に示すような構成情報330に更新される。図12に示すように、削除されたサーバAがマスタとして管理していたキーレンジのデータを、サーバ100Bが新たなマスタサーバ100として管理することとなる。また、更新された構成情報330は、サーバ100Bに送信される。
図13は、本発明の第1の実施形態におけるサーバ100が実行する構成情報の更新処理を説明するフローチャートである。構成情報の更新処理は、構成情報管理部130によって実行される。
構成情報管理部130は、構成情報管理サーバ300から更新された構成情報330を受信する(ステップS500)。
構成情報管理部130は、受信した構成情報330に基づいて構成情報180を更新し、処理を終了する(ステップS502)。更新方法としては、構成情報180に構成情報330を上書きする方法、又は、構成情報180と構成情報330とをマージする方法などが考えられる。ただし、本発明は更新方法に限定されない。
本実施形態では、クライアント装置200A及びクライアント装置200Bのコネクションテーブル215は、図14A及び図14Bに示すように更新される。
なお、構成情報管理サーバ300又はサーバ100は、サーバ100の障害発生を検出した場合に、サーバ100の復旧処理を実行してもよい。なお、サーバ100の復旧処理は公知の技術であるため説明を省略する。
第1の実施形態によれば、クライアント装置200がサーバ100からのアクセス要求に対する応答の有無に基づいて、障害が発生したサーバ100を検出することができる。特に、KVS等のNoSQLデータベースでは、アクセス要求が頻繁に送信されるため、ハートビート信号の監視時間よりも短時間にサーバ100の障害を検出することができる。
[変形例]
第1の実施形態では、計算機システムが構成情報管理サーバ300を備えるものとしていたが、各サーバ100に同一の機能を追加する構成でもよい。すなわち、各サーバ100が構成情報管理サーバ300と同一の処理を実現するような構成でもよい。この場合、障害通知中継部150は必要ない。
また、一つのハードウェア上にサーバ100、クライアント装置200及び構成情報管理サーバ300を構成し、複数のハードウェアを有する計算機システムを構築してもよい。
また、仮想化技術を用いて、サーバ100、クライアント装置200及び構成情報管理サーバ300を仮想計算機として実現してもよい。この場合、一つの計算機上にサーバ100、クライアント装置200及び構成情報管理サーバ300を構成することができる。
[第2の実施形態]
第2の実施形態では、コネクションの切断を検出することによって、障害サーバ100を特定する点が第1の実施形態と異なる。以下、第1の実施形態との差異を中心に第2の実施形態について説明する。
第2の実施形態における計算機システム、サーバ100、クライアント装置200及び構成情報管理サーバ300の構成は同一であるため説明を省略する。
第2の実施形態では、コネクションの接続状態を用いて障害が発生したサーバ100を検出する点が異なる。以下、具体的な処理について説明する。
図15は、本発明の第2の実施形態におけるクライアント装置200が実行するコネクション状態の確認処理を説明するフローチャートである。
コネクション状態の確認処理は、コネクション管理部210によって実行される。なお、コネクション状態の確認処理は、アクセス要求の発行処理とは独立した処理として実行される。
コネクション管理部210は、コネクション状態を確認し、サーバ100からコネクションが切断されたか否かを判定する(ステップS600)。コネクション状態を確認する方法としては、周期的にポーリングを実行する方法が考えられる。なお、本発明は、コネクション状態の確認方法に限定されない。
また、コネクション状態の変化は、ハートビートの監視時間より短い時間で検出できるため、ハートビートを用いたサーバ100の障害検出方法より早くサーバ100の障害を検出することができる。
コネクションが切断されていないと判定された場合、コネクション管理部210は、コネクションの切断が検出されるまで同様の監視を継続する。
コネクションが切断されていると判定された場合、コネクション管理部210は、コネクションテーブル215を更新する(ステップS602)。具体的には、コネクション管理部210は、コネクションが切断されたサーバ100に対応するエントリの接続状態2153を「接続」から「切断」に更新する。
コネクション管理部210は、障害通知部240を呼び出して障害通知処理の実行を指示し、処理を終了する(ステップS604)。当該処理は、ステップS110と同一の処理である。
ここで、サーバ100Aとクライアント装置200Aとの間のコネクションが切断された場合を例に説明する。この場合、ステップS602において、クライアント装置200Aのコネクションテーブル215は、図16に示すように更新される。すなわち、サーバ100Aに対応するエントリの接続状態2153が、「接続」から「切断」に変更される。
なお、サーバ100Aとクライアント装置200との間のコネクションが切断された場合には、クライアント装置200Bのコネクションテーブル215は更新されないため、図5Bのままの状態である。一方、サーバ100Aが停止等することによって、サーバ100Aに接続される全てのクライアント装置200との間のコネクションが切断された場合には、クライアント装置200Bのコネクションテーブル215も図16と同様に更新される。
その他の処理は、第1の実施形態と同一であるため説明を省略する。
第2の実施形態によれば、アクセス要求の発行時以外のタイミングでも、サーバ100の障害を検出できる。これによって、サーバ100の障害発生を検出する時間を短縮することができる。
[第3の実施形態]
第3の実施形態では、ハートビート信号を用いて障害サーバ100を特定する点が第1の実施形態と異なる。以下、第1の実施形態との差異を中心に第3の実施形態について説明する。なお、第3の実施形態は、第1の実施形態及び第2の実施形態の障害サーバ100の特定方法との併用が望ましい。
第3の実施形態における計算機システム、サーバ100、クライアント装置200及び構成情報管理サーバ300の構成は第1の実施形態と同一であるため説明を省略する。
第3の実施形態では、ハートビート用いて障害サーバ100を検出する点が異なる。ハートビート信号の監視処理は、ハートビート制御部140によって実行される。以下、具体的な処理について説明する。
ハートビート制御部140は、周期的に、他のサーバ100へハートビート信号を送信する。
次に、ハートビート制御部140は、ハートビート信号を送信したサーバ100から応答の信号を受信したか否かを判定する。ハートビート信号を送信した全てのサーバ100から応答の信号を受信したと判定された場合、ハートビート制御部140は、処理を終了する。
少なくとも1つ以上のサーバ100から応答の信号を受信していないと判定された場合、ハートビート制御部140は、応答の信号が送信されていないサーバ100を障害サーバとして特定し、障害サーバ情報を生成する。
次に、ハートビート制御部140は、障害通知中継部150を呼び出して障害通知処理の実行を指示し、処理を終了する。このとき、指示には障害サーバ情報が含まれる。
その他の処理は第1の実施形態と同一であるため説明を省略する。
第3の実施形態によれば、アクセス要求の発行時、又は、コネクションの切断検出時以外のタイミングで実行される処理に基づいて、サーバ100の障害を検出することができる。したがって、計算機システムの可用性を高めることができる。
[第4の実施形態]
第4の実施形態では、サーバ100が更新された構成情報180をクライアント装置200に送信する点が第1の実施形態と異なる。以下、第1の実施形態との差異を中心に説明する。
第4の実施形態における計算機システム、サーバ100、クライアント装置200及び構成情報管理サーバ300の構成は第1の実施形態と同一であるため説明を省略する。
第4の実施形態では、サーバ100が実行する構成情報の更新処理が異なる。また、第4の実施形態では、新たに、クライアント装置200が実行する構成情報の更新処理が含まれる点が第1の実施形態と異なる。その他の処理は第1の実施形態と同一であるため説明を省略する。
図17は、本発明の第4の実施形態におけるサーバ100が実行する構成情報の更新処理を説明するフローチャートである。構成情報の更新処理は、構成情報管理部130によって実行される。
ステップS500及びステップS502の処理は、第1の実施形態と同一であるため説明を省略する。
構成情報管理部130は、構成情報180を更新した後、コネクションテーブル115を参照して、コネクションによって接続されるクライアント装置200に、受信した構成情報330を送信し、処理を終了する(ステップS700)。
図18は、本発明の第4の実施形態におけるクライアント装置200が実行する構成情報の更新処理を説明するフローチャートである。構成情報の更新処理は、構成情報管理部230によって実行される。
構成情報管理部230は、サーバ100から構成情報330を受信する(ステップS800)。
構成情報管理部230は、受信した構成情報330に基づいて構成情報260を更新する(ステップS802)。なお、ステップS802の処理はステップS502と同一の処理が実行されるものとする。
構成情報管理部230は、更新後の構成情報260を参照して、コネクションテーブル215を更新し、処理を終了する(ステップS804)。具体的には、構成情報管理部230は、構成情報260とコネクションテーブル215とを比較して、構成情報260に含まれないサーバ100を特定し、当該サーバ100に対応するエントリをコネクションテーブル215から削除する。
第4の実施形態によれば、クライアント装置200が更新後の構成情報260に基づいて、障害サーバ100へのアクセス要求の送信を抑制できる。また、クライアント装置200は、マスタサーバ100に直接アクセス要求を送信することができるため、高速に処理結果を取得することができる。
以上、本発明を添付の図面を参照して詳細に説明したが、本発明はこのような具体的構成に限定されるものではなく、添付した請求の範囲の趣旨内における様々な変更及び同等の構成を含むものである。
Claims (16)
- ネットワーク上に確立されたコネクションを介して複数の計算機が接続される計算機システムであって、
前記複数の計算機の各々は、プロセッサと、前記プロセッサに接続されるメモリと、前記プロセッサと接続され、前記ネットワークを介して他の装置と通信するためのネットワークインタフェースとを有し、
前記複数の計算機は、前記各計算機が有する記憶領域から構成されたデータベースを用いて業務を実行する計算機を含み、
前記データベースを構成する前記複数の計算機の各々には、データの管理範囲毎にデータが分散して配置され、
前記計算機システムは、
前記複数の計算機間のコネクションの接続の状態を監視し、前記コネクションの接続の異常を検出することによって前記データベースを構成する複数の計算機の障害発生を検出する接続管理部と、
前記データベースを構成する複数の計算機の各々に分散して配置された前記データの前記管理範囲を管理し、前記データベースを構成する何れかの計算機の障害発生時に、前記管理範囲を更新する管理範囲管理部と、を有することを特徴とする計算機システム。 - 請求項1に記載の計算機システムであって、
前記複数の計算機は、前記データベースを構成する複数のサーバ計算機と、前記データベースに対してアクセス要求を送信する複数のクライアント計算機とを含み、
前記複数のクライアント計算機の各々は、全ての前記複数のサーバ計算機と通信可能なように接続され、
前記サーバ計算機は、前記管理範囲管理部を有し、
前記クライアント計算機は、前記接続管理部を有することを特徴とする計算機システム。 - 請求項2に記載の計算機システムであって、
前記複数のサーバ計算機の各々は、さらに、前記管理範囲に関する情報である管理範囲情報を格納し、
前記複数のサーバ計算機は、第1サーバ計算機及び第2サーバ計算機を含み、
前記クライアント計算機は、前記第1サーバ計算機との間の前記コネクションの状態に基づいて、前記第1サーバ計算機の障害を検出し、
前記クライアント計算機は、前記第1サーバ計算機に障害が発生した旨を前記第2サーバ計算機に通知し、
前記第2サーバ計算機は、前記管理範囲情報を更新することを特徴とする計算機システム。 - 請求項3に記載の計算機システムであって、
前記管理範囲は、前記複数のサーバ計算機の各々が管理するデータの範囲である第1管理範囲と、前記他のサーバ計算機が管理するデータの複製データの範囲である第2管理範囲とを含み、
前記複数のサーバ計算機の各々は、前記第1管理範囲に含まれる前記データと、前記第2管理範囲に含まれる前記複製データとを格納し、
前記複数のサーバ計算機のうち前記障害が発生した旨を受信した前記サーバ計算機は、前記管理範囲情報を更新する場合に、障害の発生が検出された前記サーバ計算機の第1管理範囲に含まれる前記データの前記複製データを保持する前記他のサーバ計算機を特定し、
前記他のサーバ計算機が保持する前記複製データを前記第1管理範囲に含めるように前記管理範囲情報を更新することを特徴とする計算機システム。 - 請求項2から4のいずれか一つに記載の計算機システムであって、
前記クライアント計算機は、前記アクセス要求を送信した前記複数のサーバ計算機のうちの一つの前記サーバ計算機から応答がない通信障害を、当該サーバ計算機の障害として検出することを特徴とする計算機システム。 - 請求項2から5のいずれか一つに記載の計算機システムであって、
前記クライアント計算機は、前記コネクションの切断を、前記コネクションを介して接続されたサーバ計算機の障害として検出することを特徴とする計算機システム。 - 請求項2から6のいずれか一つに記載の計算機システムであって、
前記複数のクライアント計算機の各々は、前記管理範囲情報を保持し、前記管理範囲情報に基づいて前記アクセス要求を前記サーバ計算機に送信し、
前記複数のサーバ計算機のうち前記障害が発生した旨を受信した前記サーバ計算機は、前記管理範囲情報を更新した後に、前記コネクションを介して接続される前記複数のクライアント計算機の各々に、更新後の前記管理範囲情報を送信することを特徴とする計算機システム。 - 請求項2から7のいずれか一つに記載の計算機システムであって、
前記複数のサーバ計算機の各々は、ハートビートによって障害を検出するハートビート制御部を有し、
前記他のサーバ計算機からのハートビートの応答の有無に基づいて、前記他の計算機の障害を検出することを特徴とする計算機システム。 - ネットワーク上に確立されたコネクションを介して複数の計算機が接続される計算機システムにおける障害検出方法であって、
前記複数の計算機の各々は、プロセッサと、前記プロセッサに接続されるメモリと、前記プロセッサと接続され、前記ネットワークを介して他の装置と通信するためのネットワークインタフェースとを有し、
前記複数の計算機は、前記各計算機が有する記憶領域から構成されたデータベースを用いて業務を実行する計算機を含み、
前記データベースを構成する前記複数の計算機の各々には、データの管理範囲毎にデータが分散して配置され、
前記方法は、
前記複数の計算機のうちの少なくとも一つの前記計算機が、前記計算機間のコネクションの接続の状態を監視し、前記コネクションの接続の異常を検出することによって前記計算機の障害発生を検出する第1のステップと、
前記複数の計算機のうちの少なくとも一つの前記計算機が、前記データベースを構成する何れかの計算機の障害の発生を検出した場合に、前記管理範囲を更新する第2のステップと、を含むことを特徴とする障害検出方法。 - 請求項9に記載の障害検出方法であって、
前記複数の計算機は、前記データベースを構成する複数のサーバ計算機と、前記データベースに対してアクセス要求を送信する複数のクライアント計算機とを含み、
前記複数のクライアント計算機の各々が、全ての前記複数のサーバ計算機と通信可能なように接続され、
前記第1のステップでは、前記複数のクライアント計算機の各々が、何れかの前記サーバ計算機の障害発生を検出し、
前記第2のステップでは、前記複数のサーバ計算機の各々が、前記管理範囲を更新する、ことを特徴とする障害検出方法。 - 請求項10に記載の障害検出方法であって、
前記複数のサーバ計算機の各々は、さらに、前記管理範囲に関する情報である管理範囲情報を格納し、
前記複数のサーバ計算機は、第1サーバ計算機及び第2サーバ計算機を含み、
前記第1のステップは、
前記クライアント計算機が、前記第1サーバ計算機との間の前記コネクションの状態に基づいて、前記第1サーバ計算機の障害を検出するステップと、
前記クライアント計算機が、前記第1サーバ計算機に障害が発生した旨を前記第2サーバ計算機に通知するステップと、を含み、
前記第2のステップでは、前記第2サーバ計算機が前記管理範囲情報を更新することを特徴とする障害検出方法。 - 請求項11に記載の障害検出方法であって、
前記管理範囲は、前記複数のサーバ計算機の各々が管理するデータの範囲である第1管理範囲と、前記他のサーバ計算機が管理するデータの複製データの範囲である第2管理範囲とを含み、
前記複数のサーバ計算機の各々は、前記第1管理範囲に含まれる前記データと、前記第2管理範囲に含まれる前記複製データとを格納し、
前記第2のステップは、
前記複数のサーバ計算機のうち前記障害が発生した旨を受信した前記サーバ計算機が、障害の発生が検出された前記サーバ計算機の第1管理範囲に含まれる前記データの前記複製データを保持する前記他のサーバ計算機を特定するステップと、
前記障害が発生した旨を受信したサーバ計算機が、前記他のサーバ計算機が保持する前記複製データを前記第1管理範囲に含めるように前記管理範囲情報を更新するステップと、を含むことを特徴とする障害検出方法。 - 請求項10から12のいずれか一つに記載の障害検出方法であって、
前記第1のステップでは、前記アクセス要求を送信した前記複数のサーバ計算機のうち一つの前記サーバ計算機から応答がない通信障害を、当該サーバ計算機の障害として検出することを特徴とする障害検出方法。 - 請求項10から13のいずれか一つに記載の障害検出方法であって、
前記第1のステップでは、前記コネクションの切断を、当該コネクションを介して接続されたサーバ計算機の障害として検出することを特徴とする障害検出方法。 - 請求項10から14のいずれか一つに記載の障害検出方法であって、
前記複数のクライアント計算機の各々は、前記管理範囲情報を保持し、前記管理範囲情報に基づいて前記アクセス要求を前記サーバ計算機に送信し、
前記方法は、さらに、
前記複数のサーバ計算機のうち前記障害が発生した旨を受信した前記サーバ計算機が、前記管理範囲情報を更新した後に、前記コネクションを介して接続される前記複数のクライアント計算機の各々に、更新後の前記管理範囲情報を送信するステップを含むことを特徴とする障害検出方法。 - 請求項10から15のいずれか一つに記載の障害検出方法であって、
前記方法は、さらに、
前記複数のサーバ計算機の各々が、前記他のサーバ計算機からのハートビートの応答の有無に基づいて、前記他の計算機の障害を検出するステップを含むことを特徴とする障害検出方法。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| PCT/JP2011/076401 WO2013073022A1 (ja) | 2011-11-16 | 2011-11-16 | 計算機システム及び障害検出方法 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| PCT/JP2011/076401 WO2013073022A1 (ja) | 2011-11-16 | 2011-11-16 | 計算機システム及び障害検出方法 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2013073022A1 true WO2013073022A1 (ja) | 2013-05-23 |
Family
ID=48429134
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/JP2011/076401 Ceased WO2013073022A1 (ja) | 2011-11-16 | 2011-11-16 | 計算機システム及び障害検出方法 |
Country Status (1)
| Country | Link |
|---|---|
| WO (1) | WO2013073022A1 (ja) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN106909486A (zh) * | 2016-08-03 | 2017-06-30 | 阿里巴巴集团控股有限公司 | 处理业务异常的方法、装置及系统 |
Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2003186722A (ja) * | 2001-12-20 | 2003-07-04 | Hitachi Software Eng Co Ltd | クラスタシステムにおけるデータベースサーバフェイルオーバー方法 |
| JP2004094681A (ja) * | 2002-08-30 | 2004-03-25 | Ntt Comware Corp | 分散データベース制御装置および制御方法並びに制御プログラム |
-
2011
- 2011-11-16 WO PCT/JP2011/076401 patent/WO2013073022A1/ja not_active Ceased
Patent Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2003186722A (ja) * | 2001-12-20 | 2003-07-04 | Hitachi Software Eng Co Ltd | クラスタシステムにおけるデータベースサーバフェイルオーバー方法 |
| JP2004094681A (ja) * | 2002-08-30 | 2004-03-25 | Ntt Comware Corp | 分散データベース制御装置および制御方法並びに制御プログラム |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN106909486A (zh) * | 2016-08-03 | 2017-06-30 | 阿里巴巴集团控股有限公司 | 处理业务异常的方法、装置及系统 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN112099918B (zh) | 容器化环境中的集群的实时迁移 | |
| US10489254B2 (en) | Storage cluster failure detection | |
| JP5352115B2 (ja) | ストレージシステム及びその監視条件変更方法 | |
| US8095639B2 (en) | Monitoring-target-apparatus management system, management server, and monitoring-target-apparatus management method | |
| JP5548829B2 (ja) | 計算機システム、データ管理方法及びデータ管理プログラム | |
| EP3368985B1 (en) | Method,device and medium for performing switchover operations between computing nodes | |
| JPWO2014170952A1 (ja) | 計算機システム、計算機システム管理方法及びプログラム | |
| JP2007072571A (ja) | 計算機システム及び管理計算機ならびにアクセスパス管理方法 | |
| US8380951B1 (en) | Dynamically updating backup configuration information for a storage cluster | |
| EP3648405B1 (en) | System and method to create a highly available quorum for clustered solutions | |
| WO2016166844A1 (ja) | 分散処理システム、タスク処理方法、記憶媒体 | |
| US11016863B2 (en) | Self-contained disaster detection for replicated multi-controller systems | |
| US20120047327A1 (en) | Disk array device and control method for the same | |
| JP2014026321A (ja) | ストレージ装置、情報処理装置、情報処理システム、アクセス制御方法、およびアクセス制御プログラム | |
| JP6569476B2 (ja) | ストレージ装置、ストレージシステムおよびストレージ制御プログラム | |
| CN115878269A (zh) | 集群迁移方法、相关装置及存储介质 | |
| CN107239235B (zh) | 一种多控多活raid同步方法及系统 | |
| CN106250048B (zh) | 管理存储阵列的方法及装置 | |
| CN107888405B (zh) | 管理设备和信息处理系统 | |
| JP4818843B2 (ja) | リモートコピーを行うストレージシステム | |
| US10896103B2 (en) | Information processing system | |
| EP3884648B1 (en) | Geo-replicated iot hub | |
| KR102695840B1 (ko) | 서버 이중화 시스템 및 그 동작 방법 | |
| KR101618992B1 (ko) | 가상 데스크탑 서비스 제공 시스템 및 그 제어방법과, 그 제어방법을 실행하기 위한 프로그램을 기록한 기록 매체와, 하드웨어와 결합되어 그 제어방법을 실행시키기 위하여 매체에 저장된 애플리케이션 | |
| JP5947974B2 (ja) | 情報処理装置及び情報処理装置の交換支援システム並びに交換支援方法 |
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: 11875904 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: 11875904 Country of ref document: EP Kind code of ref document: A1 |
|
| NENP | Non-entry into the national phase |
Ref country code: JP |