WO2012042607A1 - Distributed computing system - Google Patents

Distributed computing system Download PDF

Info

Publication number
WO2012042607A1
WO2012042607A1 PCT/JP2010/066906 JP2010066906W WO2012042607A1 WO 2012042607 A1 WO2012042607 A1 WO 2012042607A1 JP 2010066906 W JP2010066906 W JP 2010066906W WO 2012042607 A1 WO2012042607 A1 WO 2012042607A1
Authority
WO
WIPO (PCT)
Prior art keywords
master
stored
client
response
computing system
Prior art date
Application number
PCT/JP2010/066906
Other languages
French (fr)
Japanese (ja)
Inventor
渡邊典孝
Original Assignee
株式会社トライテック
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 株式会社トライテック filed Critical 株式会社トライテック
Priority to PCT/JP2010/066906 priority Critical patent/WO2012042607A1/en
Priority to JP2010538664A priority patent/JPWO2012042607A1/en
Publication of WO2012042607A1 publication Critical patent/WO2012042607A1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • 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/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1443Transmit or communication errors

Definitions

  • the present invention relates to a distributed computing system including a cell and a client including a plurality of replicas that are synchronized with each other, and more particularly to a session management technique between the cell and the client.
  • the following replication technology is known for a distributed computing system including a cell including a plurality of replicas and a client.
  • the virtual IP address of the load balancer serves as a connection window with the client (see Patent Documents 1 and 2), and requests from the client are transmitted to the replica via the load balancer.
  • the response from the replica is sent to the client via the load balancer.
  • the production system (primary system) and standby system (standby system) replicas are provided (see Patent Documents 3 and 4), and the production system replica that provided services to the client fails.
  • the standby replica in the hot standby state takes over the processing of the production replica and continues to provide the service.
  • RAID devices provide a virtualized interface for disks, and store data multiplexed and redundant by mirroring or pooling.
  • the replica group can be seen as one virtual system from the client by the virtualization technology, and the distributed cooperative method between replicas is made into a black box.
  • the client loses the access method to the replica inside the black box. Even if the service is provided, the service provision by the cell stops.
  • the present invention has been made in view of the above circumstances, and an object of the present invention is to provide a distributed computing system that can prevent service stoppage due to the occurrence of a failure at a connection window with a cell client. .
  • the invention according to claim 1 includes a cell including a plurality of replicas synchronized with each other and a client, and manages a session between the cell and the client in the client.
  • First connection means for storing connection information for the client to connect to each replica and a client ID for identifying the client as session information for the connection to any one of the plurality of replicas
  • Processing request means for performing a predetermined processing request and notification of the client ID based on the information, and receiving a processing request from the processing request means to each of the replicas, and indicating that there has been a processing request and the client ID
  • Process request notifying means for notifying other replicas, and receiving a process request from the process request means,
  • a processing execution unit that receives a notification from the processing request notification unit of the replica that has received the processing request and establishes the session with the client based on the client ID and performs the predetermined processing And a distributed computing system.
  • the invention according to claim 2 is the distributed computing system according to claim 1, wherein the predetermined process is an update process.
  • the invention according to claim 3 is the distributed computing system according to claim 1, wherein the predetermined processing request is a session opening request for causing each replica to open the session.
  • the first storage means selects one of the plurality of replicas as a master. , Storing a master ID for specifying which replica is the master, and the processing requesting unit performs the predetermined processing on the replica specified by the master ID stored in the first storage unit. And a notification of the client ID.
  • the invention according to claim 5 is the distributed computing system according to claim 4, wherein the first storage means is selected when one of the plurality of replicas is selected as a reference to be used for reference processing.
  • a reference ID for identifying whether the replica of the first reference is a reference is stored, and the processing requesting unit requests a reference processing for the replica specified by the reference ID stored in the first storage unit. It is characterized by that.
  • a response generation unit that generates a response to the request for the predetermined process, and the master ID in the first storage Second storage means for storing the response generated independently of the means and storing the response generated by the response generation means; and a response transmission means capable of transmitting the response stored in the second storage means to the client And when the response transmission means determines that its replica is the master based on the master ID stored in the second storage means, the response stored in the second storage means It transmits to the said client, It is characterized by the above-mentioned.
  • a response generation means for generating a response to the request for the predetermined processing in each replica, and the master ID in the first storage Second storage means for storing the response generated independently of the means and storing the response generated by the response generation means; and a response transmission means capable of transmitting the response stored in the second storage means to the client And when the response transmission means determines that its replica is the master based on the master ID stored in the second storage means, the response stored in the second storage means It transmits to the said client, It is characterized by the above-mentioned.
  • the invention according to claim 8 is the distributed computing system according to claim 6, wherein the response transmission means determines that its replica is not a master based on the master ID stored in the second storage means. Sometimes, information on the master ID is transmitted to the client instead of the response stored in the second storage means.
  • the invention according to claim 9 is the distributed computing system according to claim 7, wherein the response transmission unit determines that its replica is not a master based on a master ID stored in the second storage unit. Sometimes, information on the master ID is transmitted to the client instead of the response stored in the second storage means.
  • the distributed computing system when there is a master change among the plurality of replicas in each of the replicas, information on the master ID of the new master is sent to the client.
  • a master change notification means for notifying is provided.
  • the distributed computing system when there is a master change among the plurality of replicas in each of the replicas, information on a master ID of a new master is transmitted to the client.
  • a master change notification means for notifying is provided.
  • the invention according to claim 12 is the distributed computing system according to claim 6, wherein when each master has a master change among the plurality of replicas, information on a master ID of a new master is sent to the client.
  • a master change notification means for notifying is provided.
  • the distributed computing system when there is a master change among the plurality of replicas in each of the replicas, information on a master ID of a new master is transmitted to the client.
  • a master change notification means for notifying is provided.
  • the invention according to claim 14 is the distributed computing system according to claim 8, wherein when each master has a master change among the plurality of replicas, information on a master ID of a new master is sent to the client.
  • a master change notification means for notifying is provided.
  • the distributed computing system when there is a master change among the plurality of replicas in each of the replicas, information on a master ID of a new master is transmitted to the client.
  • a master change notification means for notifying is provided.
  • the invention according to claim 16 is the distributed computing system according to claim 8, wherein the first storage means stores a master table that stores a master ID before the change when the master ID is changed. If the master ID is the same as the master ID stored in the master table when receiving information on the master ID from the response transmission means to the client, the master ID stored in the first storage means If the master ID is not the same as the master ID stored in the master table, the master ID changing unit replaces the master ID stored in the first storage unit with the master ID. Is provided.
  • the invention according to claim 17 is the distributed computing system according to claim 9, wherein the first storage means stores a master table that stores a master ID before the change when the master ID is changed. If the master ID is the same as the master ID stored in the master table when receiving information on the master ID from the response transmission means to the client, the master ID stored in the first storage means If the master ID is not the same as the master ID stored in the master table, the master ID changing unit replaces the master ID stored in the first storage unit with the master ID. Is provided.
  • the invention according to claim 18 is the distributed computing system according to claim 10, wherein the first storage means stores a master table that stores a master ID before the change when the master ID is changed. If the master ID is the same as the master ID stored in the master table when the client receives information on the master ID from the master change notification means, the master stored in the first storage means Change the master ID without replacing the master ID stored in the first storage means with the master ID if the master ID is not the same as the master ID stored in the master table. Means are provided.
  • the invention according to claim 19 is the distributed computing system according to claim 11, wherein the first storage means stores a master table that stores a master ID before the change when the master ID is changed. If the master ID is the same as the master ID stored in the master table when the client receives information on the master ID from the master change notification means, the master stored in the first storage means Change the master ID without replacing the master ID stored in the first storage means with the master ID if the master ID is not the same as the master ID stored in the master table. Means are provided.
  • the invention according to claim 20 is the distributed computing system according to claim 12, wherein the first storage means stores a master table that stores a master ID before the change when the master ID is changed. If the master ID is the same as the master ID stored in the master table when the client receives information on the master ID from the master change notification means, the master stored in the first storage means Change the master ID without replacing the master ID stored in the first storage means with the master ID if the master ID is not the same as the master ID stored in the master table. Means are provided.
  • the invention according to claim 21 is the distributed computing system according to claim 13, wherein the first storage means stores a master table that stores a master ID before the change when the master ID is changed. If the master ID is the same as the master ID stored in the master table when the client receives information on the master ID from the master change notification means, the master stored in the first storage means Change the master ID without replacing the master ID stored in the first storage means with the master ID if the master ID is not the same as the master ID stored in the master table. Means are provided.
  • the invention according to claim 22 is the distributed computing system according to claim 14, wherein the first storage means stores a master table for storing a master ID before change when the master ID is changed. If the master ID is the same as the master ID stored in the master table when receiving information on the master ID from the response transmission means or the master change notification means to the client, the first storage means If the master ID is not the same as the master ID stored in the master table, the master ID stored in the first storage means is used as the master ID. A master ID changing means for replacement is provided.
  • the invention according to claim 23 is the distributed computing system according to claim 15, wherein the first storage means stores a master table that stores a master ID before the change when the master ID is changed. If the master ID is the same as the master ID stored in the master table when receiving information on the master ID from the response transmission means or the master change notification means to the client, the first storage means If the master ID is not the same as the master ID stored in the master table, the master ID stored in the first storage means is used as the master ID. A master ID changing means for replacement is provided.
  • the invention according to claim 24 is the distributed computing system according to claim 16, wherein when the master ID changing unit receives information on the master ID from the response transmitting unit, the master ID is a replica of the transmission source Or the master ID stored in the first storage means is replaced when the master ID is the same as the master ID stored in the first storage means. It is characterized by not.
  • the invention according to claim 25 is the distributed computing system according to claim 17, wherein when the master ID changing unit receives information on the master ID from the response transmitting unit, the master ID is a replica of the transmission source. Or the master ID stored in the first storage means is replaced when the master ID is the same as the master ID stored in the first storage means. It is characterized by not.
  • the invention according to claim 26 is the distributed computing system according to claim 18, wherein when the master ID changing means receives information on the master ID from the response sending means, the master ID is a replica of the sending source. Or the master ID stored in the first storage means is replaced when the master ID is the same as the master ID stored in the first storage means. It is characterized by not.
  • the master ID changing unit when the master ID changing unit receives information on the master ID from the response transmitting unit, the master ID is a replica of the transmission source Or the master ID stored in the first storage means is replaced when the master ID is the same as the master ID stored in the first storage means. It is characterized by not.
  • the invention according to claim 28 is the distributed computing system according to claim 20, wherein when the master ID changing means receives information on the master ID from the response transmitting means, the master ID is a replica of the transmission source. Or the master ID stored in the first storage means is replaced when the master ID is the same as the master ID stored in the first storage means. It is characterized by not.
  • the invention according to claim 29 is the distributed computing system according to claim 21, wherein when the master ID changing unit receives information on the master ID from the response transmitting unit, the master ID is a replica of the transmission source. Or the master ID stored in the first storage means is replaced when the master ID is the same as the master ID stored in the first storage means. It is characterized by not.
  • the invention according to claim 30 is the distributed computing system according to claim 22, wherein the master ID changing means receives the master ID information from the response sending means or the master change notifying means. If the ID is the same as the ID of the replica of the transmission source, or if the master ID is the same as the master ID stored in the first storage means, the ID is stored in the first storage means. The master ID is not replaced.
  • the invention according to claim 31 is the distributed computing system according to claim 23, wherein when the master ID changing means receives information on the master ID from the response sending means or the master change notifying means, the master ID changing means If the ID is the same as the ID of the replica of the transmission source, or if the master ID is the same as the master ID stored in the first storage means, the ID is stored in the first storage means. The master ID is not replaced.
  • a processing request notification means for receiving a processing request from a client at each replica constituting the cell and notifying other replicas of a processing request and a client ID for identifying the client, and the client
  • the processing request is received from the client, or the processing request notification means of the replica that has received the processing request is notified that the processing request has been received, and a predetermined process is performed by establishing a session with the client based on the client ID Since the processing execution means is provided, each replica establishes the same session with the client based on the client ID and performs processing, so that there are a plurality of connection windows with the cell client, and the connection is established. It is possible to prevent the service provision from being stopped due to the occurrence of a failure at the window.
  • 2 is a flowchart showing processing in a client in the distributed computing system of FIG. 2 is a flowchart showing threads when a request packet is received at a server in the distributed computing system of FIG. 1.
  • 2 is a flowchart showing threads when an update processing execution notification in a server is received in the distributed computing system of FIG. 1.
  • 2 is a flowchart showing threads when transmitting a response packet in a server in the distributed computing system of FIG. 1.
  • FIG. 8 is a flowchart showing a file writing process as an example of the updating process of FIG. 7.
  • FIG. It is a flowchart which shows an event acquisition start process as an example of the update process of FIG. It is a flowchart which shows the process at the time of event generation after event management start. It is a flowchart which shows an event acquisition request process as an example of the update process of FIG. It is a flowchart which shows an event acquisition completion process as an example of the update process of FIG. It is explanatory drawing which shows the example of a master selection arrangement
  • FIG. 1 shows a distributed computing system according to this embodiment.
  • the distributed computing system 1 includes a cell 2 and a client 3, and the cell 2 includes a plurality of replicas that are synchronized with each other.
  • a replica three servers 4 that form an agreement by Paxos and synchronize (in the case of distinguishing each server 4 and in the drawings, each server is represented by reference numerals 4a, 4b, and 4c, respectively) are exemplified.
  • replicas are not limited to this.
  • the servers 4a, 4b, and 4c are connected to each other via a dedicated line or an Internet line, and are connected to the client 3 via an Internet line.
  • a request for task processing (application processing) or the like is received from the application of the client 3, the processing is performed as described later, and when a response is generated, the master described below transmits the response to the client 3.
  • the request from such an application includes an update request for updating the data stored in the server 4 and changing its state, and a reference request for referring to the data stored in the server 4 and not changing its state. Yes, the server 4 performs an update process or a reference process in response to each request.
  • One of the servers 4a, 4b, and 4c serves as a master mainly responsible for communication with the client 3 at the time of an update request, and one of the servers 4a, 4b, and 4c serves as a reference from the client 3 at the time of a reference request (hereinafter referred to as "reference"). It is said.) Since the servers 4a, 4b, and 4c form an agreement by Paxos, the Paxos leader may be the master. The Paxos leader may be determined by any known method, or by a method in which the oldest server (the server with the longest startup time and the longest continuous operation time in the cell 2) is used as the leader. Further, since the servers 4a, 4b, and 4c generally have different loads, in this embodiment, a load value is calculated and a value having a small value is used as a reference.
  • the client 3 and the server 4 are general-purpose computers, respectively, and reference numerals 5 and 6 are assigned to control units such as CPUs, and reference numerals 7 and 8 are assigned to storage devices such as memories (each control part 6 and each server 4).
  • each control unit is represented by reference numerals 6a, 6b, and 6c, and each storage device is represented by reference numerals 8a, 8b, and 8c, respectively.
  • an area (session structure) for storing various session information related to the session between the cell 2 and the client 3 is secured, and this is referred to as a client session 9.
  • an area (session structure) for storing various session information is created and secured in the storage device 8 of the server 4 and is referred to as a server session 10 (when each server session 10 is distinguished or in the drawings).
  • the client session 9 stores connection information, client ID, transaction sequence number, master ID, reference ID, master selection array as a master table, update transaction sequence number, and the like.
  • connection information is connection information with the server 4, specifically, each IP address of the servers 4 a, 4 b, 4 c and each connection state between the client 3 and the servers 4 a, 4 b, 4 c (whether or not there is a connection) ).
  • Client ID is a unique ID that identifies a session, and includes a client 3 IP address, a process ID assigned to each process by the client 3, and a tag ID assigned to each tag.
  • Transaction serial number is a serial number in a session attached to a transaction issued by the client 3.
  • Master ID is the ID of the server 4 that the client 3 recognizes as the master.
  • Reference ID is the ID of the server 4 that the client 3 recognizes as a reference.
  • the “master selection array” is used to avoid circulation when the master is changed, and details will be described later.
  • Update transaction sequence number is a number that is replaced with a transaction sequence number when the request from the client 3 is an update request and this is properly processed in the server 4.
  • a request packet is transmitted from the client 3 to the server 4.
  • the request packet includes a client ID, a transaction sequence number, an update transaction sequence number, as shown in FIG. It includes a command indicating request contents and data (request data) necessary for processing the command.
  • the server session 10 stores a client ID, a session state, a request start transaction sequence number, a request end transaction sequence number, a response transaction sequence number, a hold response flag, a hold response list, an event wait flag, a hold event list, and the like.
  • 8 stores a master ID and a reference ID separately from the server session 10.
  • Master ID is the ID of the server 4 that the server 4 recognizes as the master, and is independent of the master ID stored in the client session 9.
  • Reference ID is an ID of the server 4 that the server 4 recognizes as a reference.
  • the servers 4a, 4b, and 4c calculate their own load values by a predetermined method, and exchange the information with each other to recognize the server 4 having the minimum load value as a reference, and store the ID as a reference ID. Store in the devices 8a, 8b, 8c.
  • This reference ID is transmitted from the server 4 to the client 3 by a response packet or a master notification packet described later.
  • the reference ID in the client session 9 is replaced with the reference ID transmitted from the server 4 when it becomes “unknown” indicating that the reference is unknown.
  • the reference ID is set to “unknown” as an initial value, and is also set to “unknown” when the operation of the corresponding server 4 cannot be confirmed.
  • “Client ID” is the client ID in the client session 9 conveyed by the request packet.
  • the server session 10 is managed using a hash or the like so that it can be identified by the client ID.
  • Session state indicates the state of the server session 10, and is opened when a session establishment request is sent from the client 3 to the server 4, and closed when a session closure request is made.
  • the “request start transaction sequence number” is a number that is replaced with the transaction sequence number in the request packet when the server 4 starts the update process or the reference process.
  • the “request end transaction sequence number” is a number that is replaced with the transaction sequence number or the request start transaction sequence number in the request packet when the server 4 finishes the update process or the reference process.
  • the “response transaction sequence number” is a number that is replaced with the transaction sequence number in the request packet or the request start transaction sequence number when the server 4 generates the response packet described below.
  • the response packet includes an ID (replica ID) of the server 4 that transmits the packet, Reference ID, packet type (response type) indicating that the packet is a response packet, client ID for identifying the client 3 and session to which the packet is transmitted, response transaction sequence number, and data indicating response content (response data) including.
  • the server 4 may transmit a master notification packet that notifies the master instead of a response packet.
  • This master notification packet is a server that transmits the packet as shown in FIG. 4 ID (replica ID), reference ID, packet type (master type) indicating that the packet is a master notification packet, and master ID.
  • the “pending response flag” is a flag indicating whether or not the server 4 may transmit a response packet to the client 3 or whether transmission should be held as a hold response. If this flag is “true”, the server 4 regards it as a hold instruction, holds the generated response packet as a pending response, and if this flag is “false”, regards it as a release instruction, and transmits the generated response packet.
  • the “pending response list” is one or a plurality of response packets stored as a pending response.
  • the “event waiting flag” is a flag indicating whether or not the generated event may be transmitted to the client 3 when the server 4 manages the event, or whether transmission should be suspended as a suspended event.
  • an event can be managed by the server session 10, and the server 4 that is instructed to manage the event by the client 3 sets the event waiting flag to “true” if an event acquisition request is received from the client 3.
  • the generated event is transmitted to the client 3.
  • the event waiting flag is set to “false”, and the generated event is not immediately transmitted to the client 3 but is held as a hold event.
  • Any event can be used. For example, when adding or deleting a file to a directory path (changing a directory under the addition or deletion of a file) is used as an event, the directory path is used as an event resource. . Events and event resources are defined by the application.
  • the “pending event list” is one or a plurality of events stored as a holding event.
  • [Distributed computing method] 5 to 15 show a distributed computing method by the distributed computing system 1, that is, a procedure in which an application of the client 3 transmits a reference request or an update request to the cell 2, and the reference process or the update process is performed in the cell 2. (See FIG. 2).
  • step 101 when there is a request from an application (step 101 (denoted as “S.101” in the drawing, the same applies hereinafter)), the control unit 5 of the client 3 increments the transaction serial number (step 102). It is determined whether or not it is an update request (step 103). If it is an update request, the master ID of the client session 9 is referred to (step 104). If it is not an update request, the reference ID is referred to as a reference request (step 105), and the server 4 specified by the referenced ID is sent. The request packet is transmitted to the control unit 6 (step 106).
  • the client 3 performs synchronous transaction communication with the server 4 by sending a request packet and waiting for a response packet. Therefore, the order of the packets is guaranteed by the client 3.
  • the control unit 5 of the client 3 that has transmitted the request packet waits for a response packet or a master notification packet to arrive from the control unit 6 of the server 4, and if there is no response after a certain time, refers to the master ID or reference ID again.
  • the request packet is transmitted (steps 107 to 109).
  • the control unit 6 of the server 4 that has received the request packet acquires the server session 10 from a hash or the like based on the client ID included in the request packet (corresponding to the client ID). If there is no server session 10 to be created, it is newly created: step 202).
  • control unit 6 determines whether or not it is an update request based on a command included in the request packet (step 203).
  • the control unit 6 checks whether or not its own server 4 is a master (step 204), and if it is a master, the contents of the request packet are sent to all the servers 4 (including the master itself). Notification is made (step 205), and an agreement is consulted by Paxos on whether or not the update processing can be performed (step 206). Further, the control unit 6 determines that the master recognized by the client 3 and the server 4 is different if it is not the master in step 204 (for example, if there is a master change but it has not been transmitted to the client 3). In such a case, it is determined that the control unit 6 is not a master.), A master notification packet is transmitted to the control unit 5 of the client 3 (step 207). Upon receiving the master notification packet, the control unit 5 replaces the client ID of the client session 9 with the master ID in the master notification packet, and transmits the request packet again (see steps 109 and 110 in FIG. 5).
  • step 206 if the consent of the majority of servers 4 is obtained and an agreement is formed by Paxos, the master control unit 6 that has received the request packet controls the control units 6 of all the servers 4 (including the master itself). In response to this, an update processing execution notification is transmitted (step 208). As a result, all servers 4 respond to the update request. If no agreement is formed by Paxos in Step 206, the control unit 6 proceeds to Step 201 and enters a standby state for the next request packet.
  • the server 4 that has received the request packet responds to the reference request.
  • the control unit 6 of the server 4 that has received the update processing execution notification acquires the server session 10 from the hash or the like based on the client ID in the request packet (the client ID). If there is no server session 10 corresponding to, a new one is created: Step 302).
  • control unit 6 confirms whether or not the session state of the server session 10 acquired in step 302 is open (step 303), and if not open, transmits an error response to the control unit 5 of the client 3 ( Step 304), the process proceeds to Step 301 to enter a standby state for notification of execution of the next update process.
  • the control unit 6 determines whether the transaction sequence number in the request packet is the same as the response transaction sequence number stored in the server session 10 (described as “response sequence number” in the drawing). It is determined whether or not (step 305). In the case of one request and one response, if the transaction sequence number is the same as the response transaction sequence number, the response packet stored as a pending response including the response transaction sequence number is generated corresponding to the request packet including the transaction sequence number.
  • the control unit 6 confirms that the pending response flag is “false” (step 306) and that its own server 4 is also the master at that time. (Step 307) The response packet held as a hold response is transmitted to the control unit 5 of the client 3 without generating a response packet again (step 308). If the pending response flag is “true” in step 306 or if its own server 4 is not the master in step 307, the control unit 6 proceeds to step 301 and enters a standby state for notification of execution of the next update process. enter.
  • the control unit 6 If the transaction sequence number and the response transaction sequence number are not the same in step 305, the control unit 6 describes the transaction sequence number in the request packet and the request start transaction sequence number stored in the server session 10 (described as “request start sequence number” in the drawing). )) Is the same (step 309). If the transaction sequence number and the request start transaction sequence number are the same, the server 4 is considered to be processing the same request as this time, so the control unit 6 ignores the current request to avoid duplicate processing. .
  • step 309 if the transaction sequence number and the request start transaction sequence number are not the same, the control unit 6 replaces the request start transaction sequence number with the transaction sequence number (step 310). Then, an update process is performed based on the command and request data in the request packet (step 311). When this update process is completed, the request end transaction sequence number (described as “request end sequence number” in the drawing) is used as the transaction sequence number. Replace (step 312).
  • update processing There are many examples of update processing.
  • a request for opening a server session transmitted from the client 3 to the server 4 or a request for closing an opened server session is an update request.
  • the process is an update process.
  • the file writing process is also an update process.
  • a server session establishment process as shown in FIG. 9 is performed as an update process in step 311 (at this time, the control unit 6 performs step 303). (Omitted, the process proceeds from step 302 to step 305).
  • control unit 6 opens the session state of the server session 10 acquired in step 302 (step 501), initializes values of each transaction serial number and the like (step 502), and when these processes are completed, Is sent to the control unit 5 of the client 3 (step 503), and step 401 of FIG. 8 is called to perform transmission processing of the response packet (step 504).
  • control unit 6 determines whether or not it is necessary to transmit a response packet for the current update process (step 401). If not necessary, the control unit 6 proceeds to step 312 (the lock or the like as described later). If so, the control unit 6 may not generate a response packet. In such a case, although one request is one response, the response is delayed until the lock is released.
  • the control unit 6 checks the hold response flag (step 402). If the flag is “true”, the response packet generated in step 503 is added to the hold response list to hold the response packet. The response list is updated (step 403). On the other hand, if the flag is “false”, the pending response list is updated by replacing the pending response list with the response packet generated in step 503 (step 404).
  • control unit 6 replaces the response transaction sequence number with the transaction sequence number (step 405), and confirms whether or not its own server 4 is a master (step 406). If it is a master, the control part 6 transmits the response packet of a pending
  • the command included in the request packet is a server session closing command
  • a server session closing process as shown in FIG.
  • the control unit 6 cancels the open state of the server session 10 opened in step 501 (closes the session state) (step 511), and when this processing is completed, a response packet for notifying the client 3 of that fact is sent. 8 is generated (step 512), and step 401 is called to perform the response packet transmission processing of FIG. 8 (step 513).
  • the request data in the request packet includes the file path name, offset, data to be written, and the length of the data to be written.
  • a file writing process as shown in FIG. 11 is performed.
  • the control unit 6 opens the file (step 521), writes data from the offset (step 522), and closes the file (step 523). Then, a response packet including the written length is generated (step 524), and step 401 is called to perform response packet transmission processing in FIG. 8 (step 525).
  • the control unit 6 determines whether or not the request end transaction sequence number is equal to or greater than the update transaction sequence number in the request packet (step 209), and the request end transaction sequence number is updated. If the transaction sequence number is greater than or equal to the transaction number, the server 4 confirms that the session state has been opened and proceeds to the reference process (step 210), assuming that the update is not delayed and can be used for reference. If the session state is not open, the control unit 6 transmits an error response to the control unit 5 of the client 3 (step 211).
  • the control unit 6 replaces the request start transaction sequence number with the transaction sequence number in the request packet (step 212), and performs reference processing based on the command and request data in the request packet. (Step 213) When this reference process is completed, the request end transaction sequence number is replaced with the transaction sequence number (step 214). Also in the reference process of step 213, the control unit 6 transmits a response packet including the reference contents to the control unit 5 of the client 3, but the method is the same as the response packet transmission process of FIG. And go to step 214).
  • step 209 if the request end transaction sequence number is less than the update transaction sequence number, the control unit 6 interrupts the process and enters a standby state. Then, if the update delay is resolved and the request end transaction sequence number is equal to or greater than the update transaction sequence number in the request packet, the wake-up and interrupted processing is continued.
  • Step 109 the control unit 5 of the client 3 receives the response packet from the server 4, the control unit 5 exits from the standby state of Step 109 (see FIG. 5). If the reference ID is unknown, the reference ID stored in the client session 9 is included in the response packet. (Steps 111 and 112). Subsequently, the control unit 5 determines whether or not the response transaction sequence number in the response packet is the same as an expected value (step 113). This expected value is the same as the transaction sequence number. If the response transaction sequence number is the same as the expected value, it means that an appropriate response to the request has been received. When receiving a response to the update request, the control unit 5 replaces the update transaction sequence number with the transaction sequence number (step 114), and proceeds to step 101 for the next request or is controlled by the application. Return.
  • control unit 5 discards the received response packet (step 115) and returns to step 107. Wait for an appropriate response.
  • the control unit 6 of the server 4 When a plurality of response packets are derived from a single request, for example, in the case of multiple SQL statements in the database, the control unit 6 of the server 4 accumulates the response packets using a hold response flag, and holds a plurality (predetermined number) of hold packets. At this point, the master control unit 6 may transmit the response as a single response. That is, since the control unit 6 can know that a plurality (predetermined number) of response packets are created by analyzing the command of the request packet, the pending response flag is kept until the plurality (predetermined number) of response packets are created. Is set to “true”, the generated response packet is held so as not to be transmitted immediately, and sequentially stored in the pending response.
  • the master control unit 6 adds a plurality of (predetermined number) of response packets with a header to the batch. Send.
  • the server 4 can manage events by the server session 10.
  • an event acquisition start request is transmitted. After the event acquisition start request is transmitted, the client 3 transmits an event acquisition request to request the server 4 to acquire the event. In addition, when the client 3 requests the server 4 to end the event management, an event acquisition end request is transmitted. Since these requests related to event management are update requests, specifically, the following processing may be performed in step 311.
  • the control unit 6 of the server 4 associates the event resource with the server session 10 and stores it in the storage device 8 (step 601).
  • This association is performed by setting a joint between the event resource and the server session 10.
  • the joint includes an event link that links the joint and the event resource, a session link that links the joint and the server session 10, And a post-processing function when the joint is discarded.
  • the event resource to be associated is specified by the request packet of the event acquisition start request, and the server session 10 to be associated is specified at step 302 (or step 202).
  • control unit 6 When the association is completed, the control unit 6 generates a response packet to that effect (step 602) and transmits it to the control unit 5 of the client 3 (step 603).
  • the method is the same as the response packet transmission process of FIG. It is.
  • the processing of the server 4 differs depending on whether an event acquisition request is received from the client 3 or not.
  • the control unit 6 of the server 4 checks the event waiting flag (as described above, and will be described in detail later). As described above, if an event acquisition request is received from the client 3, the event wait flag is “true”, and if no event acquisition request is received from the client 3, the event wait flag is “false”: Step 612). If the event waiting flag is “true”, a response packet is generated to transmit the generated event to the client 3 (step 613), and is transmitted to the control unit 5 of the client 3 in the same manner as in FIG. In step 614), the event waiting flag is set to "false” (step 615).
  • the control unit 6 adds the generated event to the hold event and registers it (step 616), and enters a standby state such as an event acquisition request or the next event occurrence. .
  • the control unit 6 checks whether there is a pending event in the pending event list (step 622).
  • the wait flag is set to “true” (step 623) so that an event generated until the next event acquisition request is held in the hold event list.
  • control unit 6 cuts all the pending events registered in the pending event list in a lump and generates a response packet including these (step 624), and sends the response packet to the control unit 5 of the client 3 Transmission is performed in the same manner as in FIG. 8 (step 625).
  • control unit 6 of the server 4 upon receiving the event acquisition end request, releases the association between the event resource and the server session 10 (step 631), and generates a response packet to that effect (step 631). 632), and transmits to the control unit 5 of the client 3 by the same method as in FIG. 8 (step 633).
  • the servers 4a, 4b, and 4c are not necessarily always in operation (in order to form an agreement by Paxos, it is only necessary that two of the three are in operation), and the master itself may fail. A master change may occur due to a communication failure between the master and another server.
  • the server 4 recognizes the master change, if the server 4 is connected to the client 3, a master notification packet as shown in FIG. 4 can be transmitted to notify the client 3 of the master change.
  • a master selection array for avoiding circulation as shown in FIG. 16 is prepared.
  • the master selection array every time the master ID of the client session 9 is changed, the array element of the server 4 corresponding to the old master ID is marked with “1” (the array element not marked is “0”). .) Therefore, if the client 3 newly receives the master notification packet and the array element of the server 4 corresponding to the master ID in the master notification packet is marked, the master notification packet has notified the old master. Since there is a fear, the control unit 5 of the client 3 considers that the above-mentioned circulation has occurred, and waits for the next master notification packet without replacing the master ID of the client session 9 with the master ID notified by the master notification packet.
  • the server 4 that has transmitted the master notification packet recognizes itself as the master, and no circulation occurs. Then, the control unit 5 of the client 3 sets the replica ID as the master ID of the client session 9 and clears all marks in the master selection array.
  • the master 3 and the server 4 have the same master recognition. do nothing.
  • the control unit 5 marks “1” in the array element of the server 4 corresponding to the master ID in the master notification packet. It is judged whether it is attached. If it is marked, it is determined that the above-described circulation has occurred and that the master is being selected (Jeopard), and the master ID of the client session 9 is unknown, and the next master notification packet is awaited. If not marked, the array element of the server 4 corresponding to the master ID previously stored in the client session 9 is marked, and the master ID of the client session 9 is replaced with the master ID in the master notification packet. .
  • the control unit 5 When the controller 5 detects the disconnection of any of the servers 4a, 4b, and 4c based on the connection information so that the old master whose connection has been disconnected is not recognized as the master, the control unit 5 If the master ID of the client session 9 matches, the array element of the server 4 corresponding to the master ID of the client session 9 is marked.
  • control unit 5 clears all the marks of the master selection array and sequentially sends request packets to the servers 4a, 4b, 4c. And wait for the master notification packet to be sent.
  • each server 4 configuring the cell 2 receives a processing request from the client 3, and notifies that the processing request has been made and the client ID that identifies the client 3 to the other server 4.
  • a processing request notification means for notifying the server 4 and a processing request from the client 3 or a notification to the effect that a processing request has been received from another server 4 that has received the processing request. Since the control unit 6 is provided that functions as a process execution means for establishing a session between them and performing a predetermined process, each server 4 establishes the same session with the client 3 based on the client ID for processing. By doing this, there are multiple connection windows with the cell client, which is caused by a failure at the connection window. It is possible to prevent the stopping of the service provider.
  • the servers that make up the cell may synchronize without relying on Paxos, and the Paxos leader may not be the master.
  • the configuration of the request packet, response packet, master notification packet, and client ID may be different from those described above.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Hardware Redundancy (AREA)

Abstract

[Problem] To provide a distributed computer system which can prevent service provision being suspended due to the incidence of faults in the connection window with a cell client. [Solution] In this distributed computing system (1), a control unit (6) in a server (4) constituting a cell (2) receives a processing request from a control unit (5) of a client (3), and notifies another server (4) that there has been a processing request and of a client ID indentifying said client (3), and also receives a processing request from the control unit (5) of the client (3), or, receives a notification that there has been a processing request from the control unit (6) of the other server (4) which received a processing request, and then initiates a session with the client (3) on the basis of the client ID, and carries out the processing for the same.

Description

分散コンピューティングシステムDistributed computing system
 本発明は、互いに同期が取られる複数のレプリカを含むセルとクライアントとを備える分散コンピューティングシステムに関し、特に、セルとクライアントとの間のセッション管理技術に関する。 The present invention relates to a distributed computing system including a cell and a client including a plurality of replicas that are synchronized with each other, and more particularly to a session management technique between the cell and the client.
 複数のレプリカを含むセルとクライアントとを備える分散コンピューティングシステムについて、例えば以下のようなレプリケーション技術が知られている。 For example, the following replication technology is known for a distributed computing system including a cell including a plurality of replicas and a client.
 ロードバランサー(負荷分散装置)が用いられたクラスタシステムでは、ロードバランサーの仮想化されたIPアドレスがクライアントとの接続窓口となり(特許文献1及び2参照)、クライアントからの要求はロードバランサーを介してレプリカに伝達され、レプリカからの応答がロードバランサーを経てクライアントに送信される。 In a cluster system using a load balancer (load balancer), the virtual IP address of the load balancer serves as a connection window with the client (see Patent Documents 1 and 2), and requests from the client are transmitted to the replica via the load balancer. The response from the replica is sent to the client via the load balancer.
 また、高可用性のクラスタシステムでは、本番系(主系)と待機系(予備系)のレプリカが設けられ(特許文献3及び4参照)、クライアントにサービスを提供していた本番系のレプリカが障害によりダウンすると、例えばホット・スタンバイの状態にある待機系のレプリカが本番系のレプリカの処理を引き継いでサービス提供を継続する。 In a highly available cluster system, the production system (primary system) and standby system (standby system) replicas are provided (see Patent Documents 3 and 4), and the production system replica that provided services to the client fails. For example, the standby replica in the hot standby state takes over the processing of the production replica and continues to provide the service.
 仮想マシンでは、ハードウェアレベルの仮想化、つまり、物理的に一つのハードウェアの中に複数の仮想ハードウェアを構築し、それら一つ一つをレプリカとして機能させることにより(特許文献5参照)、上記高可用性のクラスタシステムと同様な可用性を実現している。 In the virtual machine, hardware level virtualization, that is, by constructing a plurality of virtual hardware in one piece of hardware and making each one function as a replica (see Patent Document 5). The same availability as the above highly available cluster system is realized.
 RAID装置では、ディスクを仮想化したインターフェースを提供し、ミラー化やプール化によりデータを多重化・冗長化して保存する。 RAID devices provide a virtualized interface for disks, and store data multiplexed and redundant by mirroring or pooling.
特開2010-86145号公報JP 2010-86145 A 特開平9-218842号公報JP-A-9-218842 特開2009-265690号公報JP 2009-265690 A 特開平10-105424号公報JP-A-10-105424 特開2010-33280号公報JP 2010-33280 A
 上記各レプリケーション技術では、仮想化技術により、レプリカ群がクライアントから一つの仮想システムとしてみえるだけで、レプリカ間の分散協調方式はブラックボックス化されている。すなわち、クライアントとレプリカ群との接続窓口が一つであり、この接続窓口となる箇所に障害が生じると、クライアントはブラックボックス内部のレプリカへのアクセス方法を失うので、たとえレプリケーションにより高可用性が図られていても、セルによるサービス提供が停止する。 In each of the above replication technologies, the replica group can be seen as one virtual system from the client by the virtualization technology, and the distributed cooperative method between replicas is made into a black box. In other words, there is one connection window between the client and the group of replicas, and if a failure occurs at this connection window, the client loses the access method to the replica inside the black box. Even if the service is provided, the service provision by the cell stops.
 本発明は、上記の事情に鑑みてなされたもので、セルのクライアントとの接続窓口における障害発生に起因するサービス提供の停止を防止することができる分散コンピューティングシステムを提供することを課題としている。 The present invention has been made in view of the above circumstances, and an object of the present invention is to provide a distributed computing system that can prevent service stoppage due to the occurrence of a failure at a connection window with a cell client. .
 上記課題を解決するために、請求項1に係る発明は、互いに同期が取られる複数のレプリカを含むセルとクライアントとを備え、前記クライアントに、前記セルと前記クライアントとの間のセッションを管理するためのセッション情報として、前記クライアントが各レプリカと接続するための接続情報及び前記クライアントを特定するためのクライアントIDを記憶する第一の記憶手段と、前記複数のレプリカのいずれかに対し、前記接続情報に基づき所定の処理の要求及び前記クライアントIDの通知を行う処理要求手段とが設けられ、前記各レプリカに、前記処理要求手段からの処理要求を受け、処理要求があった旨及び前記クライアントIDを他のレプリカに通知する処理要求通知手段と、前記処理要求手段から処理要求を受け、又は、処理要求を受けたレプリカの処理要求通知手段から処理要求があった旨の通知を受け、前記クライアントIDに基づき前記クライアントとの間で前記セッションを開設して前記所定の処理を行う処理実行手段とが設けられている分散コンピューティングシステムを特徴とする。 In order to solve the above-mentioned problem, the invention according to claim 1 includes a cell including a plurality of replicas synchronized with each other and a client, and manages a session between the cell and the client in the client. First connection means for storing connection information for the client to connect to each replica and a client ID for identifying the client as session information for the connection to any one of the plurality of replicas Processing request means for performing a predetermined processing request and notification of the client ID based on the information, and receiving a processing request from the processing request means to each of the replicas, and indicating that there has been a processing request and the client ID Process request notifying means for notifying other replicas, and receiving a process request from the process request means, A processing execution unit that receives a notification from the processing request notification unit of the replica that has received the processing request and establishes the session with the client based on the client ID and performs the predetermined processing And a distributed computing system.
 請求項2に係る発明は、請求項1に記載の分散コンピューティングシステムにおいて、前記所定の処理が、更新処理であることを特徴とする。 The invention according to claim 2 is the distributed computing system according to claim 1, wherein the predetermined process is an update process.
 請求項3に係る発明は、請求項1に記載の分散コンピューティングシステムにおいて、前記所定の処理の要求が、前記各レプリカに前記セッションを開設させるためのセッション開設要求であることを特徴とする。 The invention according to claim 3 is the distributed computing system according to claim 1, wherein the predetermined processing request is a session opening request for causing each replica to open the session.
 請求項4に係る発明は、請求項1乃至請求項3のいずれか1項に記載の分散コンピューティングシステムにおいて、前記第一の記憶手段が、前記複数のレプリカの一つがマスターとして選ばれる場合に、いずれのレプリカがマスターであるかを特定するためのマスターIDを記憶し、前記処理要求手段が、前記第一の記憶手段に記憶されたマスターIDにより特定されるレプリカに対し、前記所定の処理の要求及び前記クライアントIDの通知を行うことを特徴とする。 According to a fourth aspect of the present invention, in the distributed computing system according to any one of the first to third aspects, when the first storage means selects one of the plurality of replicas as a master. , Storing a master ID for specifying which replica is the master, and the processing requesting unit performs the predetermined processing on the replica specified by the master ID stored in the first storage unit. And a notification of the client ID.
 請求項5に係る発明は、請求項4に記載の分散コンピューティングシステムにおいて、前記第一の記憶手段が、前記複数のレプリカの一つが参照処理時の参照に供するリファレンスとして選ばれる場合に、いずれのレプリカがリファレンスであるかを特定するためのリファレンスIDを記憶し、前記処理要求手段が、前記第一の記憶手段に記憶されたリファレンスIDにより特定されるレプリカに対し、参照処理の要求を行うことを特徴とする。 The invention according to claim 5 is the distributed computing system according to claim 4, wherein the first storage means is selected when one of the plurality of replicas is selected as a reference to be used for reference processing. A reference ID for identifying whether the replica of the first reference is a reference is stored, and the processing requesting unit requests a reference processing for the replica specified by the reference ID stored in the first storage unit. It is characterized by that.
 請求項6に係る発明は、請求項4に記載の分散コンピューティングシステムにおいて、前記各レプリカに、前記所定の処理の要求に対する応答を生成する応答生成手段と、前記マスターIDを前記第一の記憶手段とは独立して記憶するとともに前記応答生成手段により生成された応答を記憶する第二の記憶手段と、前記第二の記憶手段に記憶された応答を前記クライアントに送信可能な応答送信手段とが設けられ、前記応答送信手段が、前記第二の記憶手段に記憶されたマスターIDに基づいて自身のレプリカがマスターであると判断したときに、前記第二の記憶手段に記憶された応答を前記クライアントに送信することを特徴とする。 According to a sixth aspect of the present invention, in the distributed computing system according to the fourth aspect of the present invention, in each of the replicas, a response generation unit that generates a response to the request for the predetermined process, and the master ID in the first storage Second storage means for storing the response generated independently of the means and storing the response generated by the response generation means; and a response transmission means capable of transmitting the response stored in the second storage means to the client And when the response transmission means determines that its replica is the master based on the master ID stored in the second storage means, the response stored in the second storage means It transmits to the said client, It is characterized by the above-mentioned.
 請求項7に係る発明は、請求項5に記載の分散コンピューティングシステムにおいて、前記各レプリカに、前記所定の処理の要求に対する応答を生成する応答生成手段と、前記マスターIDを前記第一の記憶手段とは独立して記憶するとともに前記応答生成手段により生成された応答を記憶する第二の記憶手段と、前記第二の記憶手段に記憶された応答を前記クライアントに送信可能な応答送信手段とが設けられ、前記応答送信手段が、前記第二の記憶手段に記憶されたマスターIDに基づいて自身のレプリカがマスターであると判断したときに、前記第二の記憶手段に記憶された応答を前記クライアントに送信することを特徴とする。 According to a seventh aspect of the present invention, in the distributed computing system according to the fifth aspect, a response generation means for generating a response to the request for the predetermined processing in each replica, and the master ID in the first storage Second storage means for storing the response generated independently of the means and storing the response generated by the response generation means; and a response transmission means capable of transmitting the response stored in the second storage means to the client And when the response transmission means determines that its replica is the master based on the master ID stored in the second storage means, the response stored in the second storage means It transmits to the said client, It is characterized by the above-mentioned.
 請求項8に係る発明は、請求項6に記載の分散コンピューティングシステムにおいて、前記応答送信手段が、前記第二の記憶手段に記憶されたマスターIDに基づいて自身のレプリカがマスターでないと判断したときに、そのマスターIDに関する情報を前記第二の記憶手段に記憶された応答の代わりに前記クライアントに送信することを特徴とする。 The invention according to claim 8 is the distributed computing system according to claim 6, wherein the response transmission means determines that its replica is not a master based on the master ID stored in the second storage means. Sometimes, information on the master ID is transmitted to the client instead of the response stored in the second storage means.
 請求項9に係る発明は、請求項7に記載の分散コンピューティングシステムにおいて、前記応答送信手段が、前記第二の記憶手段に記憶されたマスターIDに基づいて自身のレプリカがマスターでないと判断したときに、そのマスターIDに関する情報を前記第二の記憶手段に記憶された応答の代わりに前記クライアントに送信することを特徴とする。 The invention according to claim 9 is the distributed computing system according to claim 7, wherein the response transmission unit determines that its replica is not a master based on a master ID stored in the second storage unit. Sometimes, information on the master ID is transmitted to the client instead of the response stored in the second storage means.
 請求項10に係る発明は、請求項4に記載の分散コンピューティングシステムにおいて、前記各レプリカに、前記複数のレプリカ間でマスターの変更があったときに、新しいマスターのマスターIDに関する情報を前記クライアントに通知するマスター変更通知手段が設けられていることを特徴とする。 According to a tenth aspect of the present invention, in the distributed computing system according to the fourth aspect, when there is a master change among the plurality of replicas in each of the replicas, information on the master ID of the new master is sent to the client. A master change notification means for notifying is provided.
 請求項11に係る発明は、請求項5に記載の分散コンピューティングシステムにおいて、前記各レプリカに、前記複数のレプリカ間でマスターの変更があったときに、新しいマスターのマスターIDに関する情報を前記クライアントに通知するマスター変更通知手段が設けられていることを特徴とする。 According to an eleventh aspect of the present invention, in the distributed computing system according to the fifth aspect, when there is a master change among the plurality of replicas in each of the replicas, information on a master ID of a new master is transmitted to the client. A master change notification means for notifying is provided.
 請求項12に係る発明は、請求項6に記載の分散コンピューティングシステムにおいて、前記各レプリカに、前記複数のレプリカ間でマスターの変更があったときに、新しいマスターのマスターIDに関する情報を前記クライアントに通知するマスター変更通知手段が設けられていることを特徴とする。 The invention according to claim 12 is the distributed computing system according to claim 6, wherein when each master has a master change among the plurality of replicas, information on a master ID of a new master is sent to the client. A master change notification means for notifying is provided.
 請求項13に係る発明は、請求項7に記載の分散コンピューティングシステムにおいて、前記各レプリカに、前記複数のレプリカ間でマスターの変更があったときに、新しいマスターのマスターIDに関する情報を前記クライアントに通知するマスター変更通知手段が設けられていることを特徴とする。 According to a thirteenth aspect of the present invention, in the distributed computing system according to the seventh aspect, when there is a master change among the plurality of replicas in each of the replicas, information on a master ID of a new master is transmitted to the client. A master change notification means for notifying is provided.
 請求項14に係る発明は、請求項8に記載の分散コンピューティングシステムにおいて、前記各レプリカに、前記複数のレプリカ間でマスターの変更があったときに、新しいマスターのマスターIDに関する情報を前記クライアントに通知するマスター変更通知手段が設けられていることを特徴とする。 The invention according to claim 14 is the distributed computing system according to claim 8, wherein when each master has a master change among the plurality of replicas, information on a master ID of a new master is sent to the client. A master change notification means for notifying is provided.
 請求項15に係る発明は、請求項9に記載の分散コンピューティングシステムにおいて、前記各レプリカに、前記複数のレプリカ間でマスターの変更があったときに、新しいマスターのマスターIDに関する情報を前記クライアントに通知するマスター変更通知手段が設けられていることを特徴とする。 According to a fifteenth aspect of the present invention, in the distributed computing system according to the ninth aspect, when there is a master change among the plurality of replicas in each of the replicas, information on a master ID of a new master is transmitted to the client. A master change notification means for notifying is provided.
 請求項16に係る発明は、請求項8に記載の分散コンピューティングシステムにおいて、前記第一の記憶手段が、前記マスターIDが変更されたときに変更前のマスターIDを記憶するマスターテーブルを記憶し、前記クライアントに、前記応答送信手段からマスターIDに関する情報を受信したときに、そのマスターIDが前記マスターテーブルに記憶されたマスターIDと同一であれば前記第一の記憶手段に記憶されたマスターIDをそのマスターIDに置換せず、そのマスターIDが前記マスターテーブルに記憶されたマスターIDと同一でなければ前記第一の記憶手段に記憶されたマスターIDをそのマスターIDに置換するマスターID変更手段が設けられていることを特徴とする。 The invention according to claim 16 is the distributed computing system according to claim 8, wherein the first storage means stores a master table that stores a master ID before the change when the master ID is changed. If the master ID is the same as the master ID stored in the master table when receiving information on the master ID from the response transmission means to the client, the master ID stored in the first storage means If the master ID is not the same as the master ID stored in the master table, the master ID changing unit replaces the master ID stored in the first storage unit with the master ID. Is provided.
 請求項17に係る発明は、請求項9に記載の分散コンピューティングシステムにおいて、前記第一の記憶手段が、前記マスターIDが変更されたときに変更前のマスターIDを記憶するマスターテーブルを記憶し、前記クライアントに、前記応答送信手段からマスターIDに関する情報を受信したときに、そのマスターIDが前記マスターテーブルに記憶されたマスターIDと同一であれば前記第一の記憶手段に記憶されたマスターIDをそのマスターIDに置換せず、そのマスターIDが前記マスターテーブルに記憶されたマスターIDと同一でなければ前記第一の記憶手段に記憶されたマスターIDをそのマスターIDに置換するマスターID変更手段が設けられていることを特徴とする。 The invention according to claim 17 is the distributed computing system according to claim 9, wherein the first storage means stores a master table that stores a master ID before the change when the master ID is changed. If the master ID is the same as the master ID stored in the master table when receiving information on the master ID from the response transmission means to the client, the master ID stored in the first storage means If the master ID is not the same as the master ID stored in the master table, the master ID changing unit replaces the master ID stored in the first storage unit with the master ID. Is provided.
 請求項18に係る発明は、請求項10に記載の分散コンピューティングシステムにおいて、前記第一の記憶手段が、前記マスターIDが変更されたときに変更前のマスターIDを記憶するマスターテーブルを記憶し、前記クライアントに、前記マスター変更通知手段からマスターIDに関する情報を受信したときに、そのマスターIDが前記マスターテーブルに記憶されたマスターIDと同一であれば前記第一の記憶手段に記憶されたマスターIDをそのマスターIDに置換せず、そのマスターIDが前記マスターテーブルに記憶されたマスターIDと同一でなければ前記第一の記憶手段に記憶されたマスターIDをそのマスターIDに置換するマスターID変更手段が設けられていることを特徴とする。 The invention according to claim 18 is the distributed computing system according to claim 10, wherein the first storage means stores a master table that stores a master ID before the change when the master ID is changed. If the master ID is the same as the master ID stored in the master table when the client receives information on the master ID from the master change notification means, the master stored in the first storage means Change the master ID without replacing the master ID stored in the first storage means with the master ID if the master ID is not the same as the master ID stored in the master table. Means are provided.
 請求項19に係る発明は、請求項11に記載の分散コンピューティングシステムにおいて、前記第一の記憶手段が、前記マスターIDが変更されたときに変更前のマスターIDを記憶するマスターテーブルを記憶し、前記クライアントに、前記マスター変更通知手段からマスターIDに関する情報を受信したときに、そのマスターIDが前記マスターテーブルに記憶されたマスターIDと同一であれば前記第一の記憶手段に記憶されたマスターIDをそのマスターIDに置換せず、そのマスターIDが前記マスターテーブルに記憶されたマスターIDと同一でなければ前記第一の記憶手段に記憶されたマスターIDをそのマスターIDに置換するマスターID変更手段が設けられていることを特徴とする。 The invention according to claim 19 is the distributed computing system according to claim 11, wherein the first storage means stores a master table that stores a master ID before the change when the master ID is changed. If the master ID is the same as the master ID stored in the master table when the client receives information on the master ID from the master change notification means, the master stored in the first storage means Change the master ID without replacing the master ID stored in the first storage means with the master ID if the master ID is not the same as the master ID stored in the master table. Means are provided.
 請求項20に係る発明は、請求項12に記載の分散コンピューティングシステムにおいて、前記第一の記憶手段が、前記マスターIDが変更されたときに変更前のマスターIDを記憶するマスターテーブルを記憶し、前記クライアントに、前記マスター変更通知手段からマスターIDに関する情報を受信したときに、そのマスターIDが前記マスターテーブルに記憶されたマスターIDと同一であれば前記第一の記憶手段に記憶されたマスターIDをそのマスターIDに置換せず、そのマスターIDが前記マスターテーブルに記憶されたマスターIDと同一でなければ前記第一の記憶手段に記憶されたマスターIDをそのマスターIDに置換するマスターID変更手段が設けられていることを特徴とする。 The invention according to claim 20 is the distributed computing system according to claim 12, wherein the first storage means stores a master table that stores a master ID before the change when the master ID is changed. If the master ID is the same as the master ID stored in the master table when the client receives information on the master ID from the master change notification means, the master stored in the first storage means Change the master ID without replacing the master ID stored in the first storage means with the master ID if the master ID is not the same as the master ID stored in the master table. Means are provided.
 請求項21に係る発明は、請求項13に記載の分散コンピューティングシステムにおいて、前記第一の記憶手段が、前記マスターIDが変更されたときに変更前のマスターIDを記憶するマスターテーブルを記憶し、前記クライアントに、前記マスター変更通知手段からマスターIDに関する情報を受信したときに、そのマスターIDが前記マスターテーブルに記憶されたマスターIDと同一であれば前記第一の記憶手段に記憶されたマスターIDをそのマスターIDに置換せず、そのマスターIDが前記マスターテーブルに記憶されたマスターIDと同一でなければ前記第一の記憶手段に記憶されたマスターIDをそのマスターIDに置換するマスターID変更手段が設けられていることを特徴とする。 The invention according to claim 21 is the distributed computing system according to claim 13, wherein the first storage means stores a master table that stores a master ID before the change when the master ID is changed. If the master ID is the same as the master ID stored in the master table when the client receives information on the master ID from the master change notification means, the master stored in the first storage means Change the master ID without replacing the master ID stored in the first storage means with the master ID if the master ID is not the same as the master ID stored in the master table. Means are provided.
 請求項22に係る発明は、請求項14に記載の分散コンピューティングシステムにおいて、前記第一の記憶手段が、前記マスターIDが変更されたときに変更前のマスターIDを記憶するマスターテーブルを記憶し、前記クライアントに、前記応答送信手段又は前記マスター変更通知手段からマスターIDに関する情報を受信したときに、そのマスターIDが前記マスターテーブルに記憶されたマスターIDと同一であれば前記第一の記憶手段に記憶されたマスターIDをそのマスターIDに置換せず、そのマスターIDが前記マスターテーブルに記憶されたマスターIDと同一でなければ前記第一の記憶手段に記憶されたマスターIDをそのマスターIDに置換するマスターID変更手段が設けられていることを特徴とする。 The invention according to claim 22 is the distributed computing system according to claim 14, wherein the first storage means stores a master table for storing a master ID before change when the master ID is changed. If the master ID is the same as the master ID stored in the master table when receiving information on the master ID from the response transmission means or the master change notification means to the client, the first storage means If the master ID is not the same as the master ID stored in the master table, the master ID stored in the first storage means is used as the master ID. A master ID changing means for replacement is provided.
 請求項23に係る発明は、請求項15に記載の分散コンピューティングシステムにおいて、前記第一の記憶手段が、前記マスターIDが変更されたときに変更前のマスターIDを記憶するマスターテーブルを記憶し、前記クライアントに、前記応答送信手段又は前記マスター変更通知手段からマスターIDに関する情報を受信したときに、そのマスターIDが前記マスターテーブルに記憶されたマスターIDと同一であれば前記第一の記憶手段に記憶されたマスターIDをそのマスターIDに置換せず、そのマスターIDが前記マスターテーブルに記憶されたマスターIDと同一でなければ前記第一の記憶手段に記憶されたマスターIDをそのマスターIDに置換するマスターID変更手段が設けられていることを特徴とする。 The invention according to claim 23 is the distributed computing system according to claim 15, wherein the first storage means stores a master table that stores a master ID before the change when the master ID is changed. If the master ID is the same as the master ID stored in the master table when receiving information on the master ID from the response transmission means or the master change notification means to the client, the first storage means If the master ID is not the same as the master ID stored in the master table, the master ID stored in the first storage means is used as the master ID. A master ID changing means for replacement is provided.
 請求項24に係る発明は、請求項16に記載の分散コンピューティングシステムにおいて、前記マスターID変更手段が、前記応答送信手段からマスターIDに関する情報を受信したときに、そのマスターIDが送信元のレプリカのIDと同一である場合、又は、そのマスターIDが前記第一の記憶手段に記憶されたマスターIDと同一である場合には、前記第一の記憶手段に記憶されたマスターIDの置換を行わないことを特徴とする。 The invention according to claim 24 is the distributed computing system according to claim 16, wherein when the master ID changing unit receives information on the master ID from the response transmitting unit, the master ID is a replica of the transmission source Or the master ID stored in the first storage means is replaced when the master ID is the same as the master ID stored in the first storage means. It is characterized by not.
 請求項25に係る発明は、請求項17に記載の分散コンピューティングシステムにおいて、前記マスターID変更手段が、前記応答送信手段からマスターIDに関する情報を受信したときに、そのマスターIDが送信元のレプリカのIDと同一である場合、又は、そのマスターIDが前記第一の記憶手段に記憶されたマスターIDと同一である場合には、前記第一の記憶手段に記憶されたマスターIDの置換を行わないことを特徴とする。 The invention according to claim 25 is the distributed computing system according to claim 17, wherein when the master ID changing unit receives information on the master ID from the response transmitting unit, the master ID is a replica of the transmission source. Or the master ID stored in the first storage means is replaced when the master ID is the same as the master ID stored in the first storage means. It is characterized by not.
 請求項26に係る発明は、請求項18に記載の分散コンピューティングシステムにおいて、前記マスターID変更手段が、前記応答送信手段からマスターIDに関する情報を受信したときに、そのマスターIDが送信元のレプリカのIDと同一である場合、又は、そのマスターIDが前記第一の記憶手段に記憶されたマスターIDと同一である場合には、前記第一の記憶手段に記憶されたマスターIDの置換を行わないことを特徴とする。 The invention according to claim 26 is the distributed computing system according to claim 18, wherein when the master ID changing means receives information on the master ID from the response sending means, the master ID is a replica of the sending source. Or the master ID stored in the first storage means is replaced when the master ID is the same as the master ID stored in the first storage means. It is characterized by not.
 請求項27に係る発明は、請求項19に記載の分散コンピューティングシステムにおいて、前記マスターID変更手段が、前記応答送信手段からマスターIDに関する情報を受信したときに、そのマスターIDが送信元のレプリカのIDと同一である場合、又は、そのマスターIDが前記第一の記憶手段に記憶されたマスターIDと同一である場合には、前記第一の記憶手段に記憶されたマスターIDの置換を行わないことを特徴とする。 According to a twenty-seventh aspect of the present invention, in the distributed computing system according to the nineteenth aspect, when the master ID changing unit receives information on the master ID from the response transmitting unit, the master ID is a replica of the transmission source Or the master ID stored in the first storage means is replaced when the master ID is the same as the master ID stored in the first storage means. It is characterized by not.
 請求項28に係る発明は、請求項20に記載の分散コンピューティングシステムにおいて、前記マスターID変更手段が、前記応答送信手段からマスターIDに関する情報を受信したときに、そのマスターIDが送信元のレプリカのIDと同一である場合、又は、そのマスターIDが前記第一の記憶手段に記憶されたマスターIDと同一である場合には、前記第一の記憶手段に記憶されたマスターIDの置換を行わないことを特徴とする。 The invention according to claim 28 is the distributed computing system according to claim 20, wherein when the master ID changing means receives information on the master ID from the response transmitting means, the master ID is a replica of the transmission source. Or the master ID stored in the first storage means is replaced when the master ID is the same as the master ID stored in the first storage means. It is characterized by not.
 請求項29に係る発明は、請求項21に記載の分散コンピューティングシステムにおいて、前記マスターID変更手段が、前記応答送信手段からマスターIDに関する情報を受信したときに、そのマスターIDが送信元のレプリカのIDと同一である場合、又は、そのマスターIDが前記第一の記憶手段に記憶されたマスターIDと同一である場合には、前記第一の記憶手段に記憶されたマスターIDの置換を行わないことを特徴とする。 The invention according to claim 29 is the distributed computing system according to claim 21, wherein when the master ID changing unit receives information on the master ID from the response transmitting unit, the master ID is a replica of the transmission source. Or the master ID stored in the first storage means is replaced when the master ID is the same as the master ID stored in the first storage means. It is characterized by not.
 請求項30に係る発明は、請求項22に記載の分散コンピューティングシステムにおいて、前記マスターID変更手段が、前記応答送信手段又は前記マスター変更通知手段からマスターIDに関する情報を受信したときに、そのマスターIDが送信元のレプリカのIDと同一である場合、又は、そのマスターIDが前記第一の記憶手段に記憶されたマスターIDと同一である場合には、前記第一の記憶手段に記憶されたマスターIDの置換を行わないことを特徴とする。 The invention according to claim 30 is the distributed computing system according to claim 22, wherein the master ID changing means receives the master ID information from the response sending means or the master change notifying means. If the ID is the same as the ID of the replica of the transmission source, or if the master ID is the same as the master ID stored in the first storage means, the ID is stored in the first storage means. The master ID is not replaced.
 請求項31に係る発明は、請求項23に記載の分散コンピューティングシステムにおいて、前記マスターID変更手段が、前記応答送信手段又は前記マスター変更通知手段からマスターIDに関する情報を受信したときに、そのマスターIDが送信元のレプリカのIDと同一である場合、又は、そのマスターIDが前記第一の記憶手段に記憶されたマスターIDと同一である場合には、前記第一の記憶手段に記憶されたマスターIDの置換を行わないことを特徴とする。 The invention according to claim 31 is the distributed computing system according to claim 23, wherein when the master ID changing means receives information on the master ID from the response sending means or the master change notifying means, the master ID changing means If the ID is the same as the ID of the replica of the transmission source, or if the master ID is the same as the master ID stored in the first storage means, the ID is stored in the first storage means. The master ID is not replaced.
 本発明によれば、セルを構成する各レプリカに、クライアントからの処理要求を受け、処理要求があった旨及びそのクライアントを特定するクライアントIDを他のレプリカに通知する処理要求通知手段と、クライアントから処理要求を受け、又は、処理要求を受けたレプリカの処理要求通知手段から処理要求があった旨の通知を受け、クライアントIDに基づきクライアントとの間でセッションを開設して所定の処理を行う処理実行手段とが設けられているので、各レプリカがクライアントとの間にクライアントIDに基づき同一のセッションを開設して処理を行うことにより、セルのクライアントとの接続窓口が複数になって、接続窓口における障害発生に起因するサービス提供の停止を防止することができる。 According to the present invention, a processing request notification means for receiving a processing request from a client at each replica constituting the cell and notifying other replicas of a processing request and a client ID for identifying the client, and the client The processing request is received from the client, or the processing request notification means of the replica that has received the processing request is notified that the processing request has been received, and a predetermined process is performed by establishing a session with the client based on the client ID Since the processing execution means is provided, each replica establishes the same session with the client based on the client ID and performs processing, so that there are a plurality of connection windows with the cell client, and the connection is established. It is possible to prevent the service provision from being stopped due to the occurrence of a failure at the window.
 本発明によれば、セルのクライアントとの接続窓口における障害発生に起因するサービス提供の停止を防止することができるという効果を奏する。 According to the present invention, it is possible to prevent the service provision from being stopped due to the occurrence of a failure at the connection window with the cell client.
発明を実施するための形態に係る分散コンピューティングシステムを示す説明図である。It is explanatory drawing which shows the distributed computing system which concerns on the form for inventing. 要求パケットの例を示す説明図である。It is explanatory drawing which shows the example of a request packet. 応答パケットの例を示す説明図である。It is explanatory drawing which shows the example of a response packet. マスター通知パケットの例を示す説明図である。It is explanatory drawing which shows the example of a master notification packet. 図1の分散コンピューティングシステムにおいて、クライアントにおける処理を示す流れ図である。2 is a flowchart showing processing in a client in the distributed computing system of FIG. 図1の分散コンピューティングシステムにおいて、サーバーにおける要求パケットを受信したときのスレッドを示す流れ図である。2 is a flowchart showing threads when a request packet is received at a server in the distributed computing system of FIG. 1. 図1の分散コンピューティングシステムにおいて、サーバーにおける更新処理の実行通知を受信したときのスレッドを示す流れ図である。2 is a flowchart showing threads when an update processing execution notification in a server is received in the distributed computing system of FIG. 1. 図1の分散コンピューティングシステムにおいて、サーバーにおける応答パケットを送信するときのスレッドを示す流れ図である。2 is a flowchart showing threads when transmitting a response packet in a server in the distributed computing system of FIG. 1. 図7の更新処理の例としてセッション開設処理を示す流れ図である。It is a flowchart which shows a session establishment process as an example of the update process of FIG. 図7の更新処理の例としてセッション閉鎖処理を示す流れ図である。It is a flowchart which shows a session closing process as an example of the update process of FIG. 図7の更新処理の例としてファイル書出処理を示す流れ図である。FIG. 8 is a flowchart showing a file writing process as an example of the updating process of FIG. 7. FIG. 図7の更新処理の例としてイベント取得開始処理を示す流れ図である。It is a flowchart which shows an event acquisition start process as an example of the update process of FIG. イベント管理開始後イベント発生時の処理を示す流れ図である。It is a flowchart which shows the process at the time of event generation after event management start. 図7の更新処理の例としてイベント取得要求処理を示す流れ図である。It is a flowchart which shows an event acquisition request process as an example of the update process of FIG. 図7の更新処理の例としてイベント取得終了処理を示す流れ図である。It is a flowchart which shows an event acquisition completion process as an example of the update process of FIG. マスター選択配列の例を示す説明図である。It is explanatory drawing which shows the example of a master selection arrangement | sequence.
 本発明を実施するための形態について、図面を用いて説明する。
〔分散コンピューティングシステムの構成〕
 図1は、本形態に係る分散コンピューティングシステムを示す。この分散コンピューティングシステム1は、セル2とクライアント3とを備え、セル2は互いに同期が取られる複数のレプリカにより構成されている。ここでは、レプリカとして、Paxosにより合意を形成して同期を取る3つのサーバー4(各サーバー4を区別する場合や図面においては、各サーバーをそれぞれ符号4a,4b,4cで表す。)を例示するが、レプリカはこれに限られるものではない。
Embodiments for carrying out the present invention will be described with reference to the drawings.
[Configuration of distributed computing system]
FIG. 1 shows a distributed computing system according to this embodiment. The distributed computing system 1 includes a cell 2 and a client 3, and the cell 2 includes a plurality of replicas that are synchronized with each other. Here, as a replica, three servers 4 that form an agreement by Paxos and synchronize (in the case of distinguishing each server 4 and in the drawings, each server is represented by reference numerals 4a, 4b, and 4c, respectively) are exemplified. However, replicas are not limited to this.
 サーバー4a,4b,4cは、専用回線又はインターネット回線を介して互いに接続されるとともに、インターネット回線を介してクライアント3に接続されている。そして、クライアント3のアプリケーションからタスク処理(アプリケーション処理)等の要求を受けると、後述のように当該処理を行い、応答を生成した場合にはこれを次述のマスターがクライアント3に送信する。このようなアプリケーションからの要求には、サーバー4に記憶されたデータを更新してその状態を変更する更新要求と、サーバー4に記憶されたデータを参照してその状態を変更しない参照要求とがあり、サーバー4は各要求に応じて更新処理又は参照処理を行う。 The servers 4a, 4b, and 4c are connected to each other via a dedicated line or an Internet line, and are connected to the client 3 via an Internet line. When a request for task processing (application processing) or the like is received from the application of the client 3, the processing is performed as described later, and when a response is generated, the master described below transmits the response to the client 3. The request from such an application includes an update request for updating the data stored in the server 4 and changing its state, and a reference request for referring to the data stored in the server 4 and not changing its state. Yes, the server 4 performs an update process or a reference process in response to each request.
 また、サーバー4a,4b,4cは、そのいずれかが更新要求時にクライアント3との通信等を主として担うマスターになり、そのいずれかが参照要求時にクライアント3からの参照に供するサーバー(以下「リファレンス」という。)になる。サーバー4a,4b,4cはPaxosにより合意を形成するので、Paxosのリーダーをマスターとすればよい。Paxosのリーダーの決定は、公知のいずれの方法によっても、あるいは、最長老のサーバー(セル2において起動時刻が最先で連続稼働時間が最長のサーバー)をリーダーとする方法によってもかまわない。また、サーバー4a,4b,4cは一般に負荷が異なるので、本形態では負荷値を算出してその値が小さいものをリファレンスとする。 One of the servers 4a, 4b, and 4c serves as a master mainly responsible for communication with the client 3 at the time of an update request, and one of the servers 4a, 4b, and 4c serves as a reference from the client 3 at the time of a reference request (hereinafter referred to as "reference"). It is said.) Since the servers 4a, 4b, and 4c form an agreement by Paxos, the Paxos leader may be the master. The Paxos leader may be determined by any known method, or by a method in which the oldest server (the server with the longest startup time and the longest continuous operation time in the cell 2) is used as the leader. Further, since the servers 4a, 4b, and 4c generally have different loads, in this embodiment, a load value is calculated and a value having a small value is used as a reference.
 クライアント3及びサーバー4は、ここでは、それぞれ汎用のコンピューターであり、それらのCPU等の制御部に符号5及び6を、メモリ等の記憶装置に符号7及び8を付す(各制御部6や各記憶装置8を区別する場合や図面においては、各制御部をそれぞれ符号6a,6b,6cで表し、各記憶装置をそれぞれ符号8a,8b,8cで表す。)。 Here, the client 3 and the server 4 are general-purpose computers, respectively, and reference numerals 5 and 6 are assigned to control units such as CPUs, and reference numerals 7 and 8 are assigned to storage devices such as memories (each control part 6 and each server 4). In the case of distinguishing the storage devices 8 and in the drawings, each control unit is represented by reference numerals 6a, 6b, and 6c, and each storage device is represented by reference numerals 8a, 8b, and 8c, respectively.
 クライアント3の記憶装置7には、セル2とクライアント3との間のセッションに関する各種のセッション情報を記憶する領域(セッション構造体)が確保され、これをクライアントセッション9と称する。同様に、サーバー4の記憶装置8には、各種のセッション情報を記憶する領域(セッション構造体)が作成・確保され、これらをサーバーセッション10と称する(各サーバーセッション10を区別する場合や図面においては、各サーバーセッションをそれぞれ符号10a,10b,10cで表す。)。 In the storage device 7 of the client 3, an area (session structure) for storing various session information related to the session between the cell 2 and the client 3 is secured, and this is referred to as a client session 9. Similarly, an area (session structure) for storing various session information is created and secured in the storage device 8 of the server 4 and is referred to as a server session 10 (when each server session 10 is distinguished or in the drawings). Represents each server session by reference numerals 10a, 10b, and 10c, respectively).
 クライアントセッション9には、接続情報、クライアントID、トランザクション通番、マスターID、リファレンスID、マスターテーブルとしてのマスター選択配列及び更新トランザクション通番等が格納される。 The client session 9 stores connection information, client ID, transaction sequence number, master ID, reference ID, master selection array as a master table, update transaction sequence number, and the like.
 「接続情報」とは、サーバー4との接続情報であって、具体的にはサーバー4a,4b,4cの各IPアドレス及びクライアント3とサーバー4a,4b,4cとの各接続状態(接続の有無)に関する情報である。 The “connection information” is connection information with the server 4, specifically, each IP address of the servers 4 a, 4 b, 4 c and each connection state between the client 3 and the servers 4 a, 4 b, 4 c (whether or not there is a connection) ).
 「クライアントID」とは、クライアント3のIPアドレス、クライアント3によるプロセスごとに付されるプロセスID及びタグごとに付されるタグIDからなり、セッションを特定するユニークなIDである。 “Client ID” is a unique ID that identifies a session, and includes a client 3 IP address, a process ID assigned to each process by the client 3, and a tag ID assigned to each tag.
 「トランザクション通番」とは、クライアント3が発行するトランザクションに付されるセッション内での通し番号である。 “Transaction serial number” is a serial number in a session attached to a transaction issued by the client 3.
 「マスターID」とは、クライアント3がマスターとして認識しているサーバー4のIDである。 “Master ID” is the ID of the server 4 that the client 3 recognizes as the master.
 「リファレンスID」とは、クライアント3がリファレンスとして認識しているサーバー4のIDである。 “Reference ID” is the ID of the server 4 that the client 3 recognizes as a reference.
 「マスター選択配列」とは、マスター交替時の循環の回避に用いられ、詳細については後述する。 The “master selection array” is used to avoid circulation when the master is changed, and details will be described later.
 「更新トランザクション通番」とは、クライアント3からの要求が更新要求であって、これがサーバー4において適切に処理されたときに、トランザクション通番で置換される番号である。 “Update transaction sequence number” is a number that is replaced with a transaction sequence number when the request from the client 3 is an update request and this is properly processed in the server 4.
 クライアント3がサーバー4に所定の処理を要求する場合、クライアント3からサーバー4に要求パケットが送信されるが、この要求パケットは、図2に示すように、クライアントID、トランザクション通番、更新トランザクション通番、要求内容を示すコマンド及びコマンドの処理に必要なデータ(要求データ)を含む。 When the client 3 requests a predetermined process from the server 4, a request packet is transmitted from the client 3 to the server 4. The request packet includes a client ID, a transaction sequence number, an update transaction sequence number, as shown in FIG. It includes a command indicating request contents and data (request data) necessary for processing the command.
 一方、サーバーセッション10には、クライアントID、セッション状態、要求開始トランザクション通番、要求終了トランザクション通番、応答トランザクション通番、保留応答フラグ、保留応答リスト、イベント待ちフラグ及び保留イベントリスト等が格納され、記憶装置8には、サーバーセッション10とは別に、マスターID及びリファレンスIDが記憶されている。 On the other hand, the server session 10 stores a client ID, a session state, a request start transaction sequence number, a request end transaction sequence number, a response transaction sequence number, a hold response flag, a hold response list, an event wait flag, a hold event list, and the like. 8 stores a master ID and a reference ID separately from the server session 10.
 「マスターID」は、サーバー4がマスターとして認識しているサーバー4のIDであり、クライアントセッション9に記憶されているマスターIDとは独立している。 “Master ID” is the ID of the server 4 that the server 4 recognizes as the master, and is independent of the master ID stored in the client session 9.
 「リファレンスID」は、サーバー4がリファレンスとして認識しているサーバー4のIDである。サーバー4a,4b,4cは、自身の負荷値を所定の方法で算出し、その情報を互いに交換することにより、最小の負荷値を有するサーバー4をリファレンスと認識し、そのIDをリファレンスIDとして記憶装置8a,8b,8cに記憶する。このリファレンスIDは、後述の応答パケット又はマスター通知パケットにより、サーバー4からクライアント3に伝えられる。クライアントセッション9におけるリファレンスIDは、リファレンスが不明であることを示す「不明」となったときに、このサーバー4から伝えられるリファレンスIDで置換される。リファレンスIDは、初期値で「不明」と設定されるほか、それに対応するサーバー4の稼働を確認することができない場合等に「不明」と設定される。 “Reference ID” is an ID of the server 4 that the server 4 recognizes as a reference. The servers 4a, 4b, and 4c calculate their own load values by a predetermined method, and exchange the information with each other to recognize the server 4 having the minimum load value as a reference, and store the ID as a reference ID. Store in the devices 8a, 8b, 8c. This reference ID is transmitted from the server 4 to the client 3 by a response packet or a master notification packet described later. The reference ID in the client session 9 is replaced with the reference ID transmitted from the server 4 when it becomes “unknown” indicating that the reference is unknown. The reference ID is set to “unknown” as an initial value, and is also set to “unknown” when the operation of the corresponding server 4 cannot be confirmed.
 「クライアントID」は、クライアントセッション9におけるクライアントIDが要求パケットにより伝えられたものである。サーバー4においては、クライアントIDにより同定することができるように、サーバーセッション10はハッシュ等を用いて管理される。 “Client ID” is the client ID in the client session 9 conveyed by the request packet. In the server 4, the server session 10 is managed using a hash or the like so that it can be identified by the client ID.
 「セッション状態」は、サーバーセッション10の状態を示し、クライアント3からサーバー4にセッション開設要求があればオープンとなり、セッション閉鎖要求があればクローズとなる。 “Session state” indicates the state of the server session 10, and is opened when a session establishment request is sent from the client 3 to the server 4, and closed when a session closure request is made.
 「要求開始トランザクション通番」とは、サーバー4が更新処理又は参照処理を開始する段階で要求パケット中のトランザクション通番で置換される番号である。 The “request start transaction sequence number” is a number that is replaced with the transaction sequence number in the request packet when the server 4 starts the update process or the reference process.
 「要求終了トランザクション通番」とは、サーバー4が更新処理又は参照処理を終了した段階で要求パケット中のトランザクション通番又は要求開始トランザクション通番で置換される番号である。 The “request end transaction sequence number” is a number that is replaced with the transaction sequence number or the request start transaction sequence number in the request packet when the server 4 finishes the update process or the reference process.
 「応答トランザクション通番」とは、サーバー4が次述の応答パケットを生成した段階で要求パケット中のトランザクション通番又は要求開始トランザクション通番で置換される番号である。 The “response transaction sequence number” is a number that is replaced with the transaction sequence number in the request packet or the request start transaction sequence number when the server 4 generates the response packet described below.
 サーバー4がクライアント3に応答する場合、サーバー4からクライアント3に応答パケットが送信されるが、この応答パケットは、図3に示すように、そのパケットを送信するサーバー4のID(レプリカID)、リファレンスID、そのパケットが応答パケットであることを示すパケット種別(応答タイプ)、そのパケットの送信先のクライアント3及びセッションを特定するクライアントID、応答トランザクション通番並びに応答の内容を示すデータ(応答データ)を含む。サーバー4は、自身がマスターでない場合には、応答パケットではなくマスターを通知するマスター通知パケットを送信することがあるが、このマスター通知パケットは、図4に示すように、そのパケットを送信するサーバー4のID(レプリカID)、リファレンスID、そのパケットがマスター通知パケットであることを示すパケット種別(マスタータイプ)及びマスターIDを含む。 When the server 4 responds to the client 3, a response packet is transmitted from the server 4 to the client 3. As shown in FIG. 3, the response packet includes an ID (replica ID) of the server 4 that transmits the packet, Reference ID, packet type (response type) indicating that the packet is a response packet, client ID for identifying the client 3 and session to which the packet is transmitted, response transaction sequence number, and data indicating response content (response data) including. If the server 4 is not the master, the server 4 may transmit a master notification packet that notifies the master instead of a response packet. This master notification packet is a server that transmits the packet as shown in FIG. 4 ID (replica ID), reference ID, packet type (master type) indicating that the packet is a master notification packet, and master ID.
 「保留応答フラグ」とは、サーバー4が応答パケットを生成したときに、それをクライアント3に送信してよいか、あるいは、保留応答として送信を保留すべきかを示すフラグである。サーバー4は、このフラグが「真」ならばホールド指示と捉え、生成した応答パケットを保留応答として留め、このフラグが「偽」ならばリリース指示と捉え、生成した応答パケットを送信する。 The “pending response flag” is a flag indicating whether or not the server 4 may transmit a response packet to the client 3 or whether transmission should be held as a hold response. If this flag is “true”, the server 4 regards it as a hold instruction, holds the generated response packet as a pending response, and if this flag is “false”, regards it as a release instruction, and transmits the generated response packet.
 「保留応答リスト」とは、保留応答として保存された一又は複数の応答パケットである。 The “pending response list” is one or a plurality of response packets stored as a pending response.
 「イベント待ちフラグ」とは、サーバー4がイベントを管理するときに、発生したイベントをクライアント3に送信してよいか、あるいは、保留イベントとして送信を保留すべきかを示すフラグである。分散コンピューティングシステム1では、サーバーセッション10によりイベントを管理することができ、クライアント3からイベント管理を指示されたサーバー4は、クライアント3からイベント取得の要求があれば、イベント待ちフラグを「真」として、発生したイベントをクライアント3に送信する。また、クライアント3からイベント取得の要求がない状態では、イベント待ちフラグを「偽」として、発生したイベントをクライアント3に直ちに送信せず、保留イベントとして保留する。なお、イベントはどのようなものであってもよく、例えばディレクトリパスに対するファイルの追加や削除(ファイルの追加や削除によるディレクトリ配下の変更)をイベントとする場合には、ディレクトリパスをイベント資源とする。イベント及びイベント資源は、アプリケーションにより定義される。 The “event waiting flag” is a flag indicating whether or not the generated event may be transmitted to the client 3 when the server 4 manages the event, or whether transmission should be suspended as a suspended event. In the distributed computing system 1, an event can be managed by the server session 10, and the server 4 that is instructed to manage the event by the client 3 sets the event waiting flag to “true” if an event acquisition request is received from the client 3. The generated event is transmitted to the client 3. Further, when there is no event acquisition request from the client 3, the event waiting flag is set to “false”, and the generated event is not immediately transmitted to the client 3 but is held as a hold event. Any event can be used. For example, when adding or deleting a file to a directory path (changing a directory under the addition or deletion of a file) is used as an event, the directory path is used as an event resource. . Events and event resources are defined by the application.
 「保留イベントリスト」とは、保留イベントとして保存された一又は複数のイベントである。
〔分散コンピューティング方法〕
 図5乃至15は、分散コンピューティングシステム1による分散コンピューティング方法、すなわち、クライアント3のアプリケーションがセル2に対して参照要求又は更新要求を送信し、セル2において参照処理又は更新処理が行われる手順を示す(図2参照)。
The “pending event list” is one or a plurality of events stored as a holding event.
[Distributed computing method]
5 to 15 show a distributed computing method by the distributed computing system 1, that is, a procedure in which an application of the client 3 transmits a reference request or an update request to the cell 2, and the reference process or the update process is performed in the cell 2. (See FIG. 2).
  〔要求パケットの送信〕
 クライアント3の制御部5は、図5に示すように、アプリケーションからの要求があると(ステップ101(図面において「S.101」と記載。以下同様。))、トランザクション通番をインクリメントし(ステップ102)、それが更新要求であるか否かを判断する(ステップ103)。そして、更新要求であればクライアントセッション9のマスターIDを参照し(ステップ104)、更新要求でなければ参照要求であるとしてリファレンスIDを参照し(ステップ105)、参照したIDにより特定されるサーバー4の制御部6に要求パケットを送信する(ステップ106)。ここで、クライアント3は、サーバー4との間で、要求パケットを送り応答パケットを待つ同期型のトランザクション通信を行う。したがって、パケットの順序はクライアント3により保証されている。
[Request packet transmission]
As shown in FIG. 5, when there is a request from an application (step 101 (denoted as “S.101” in the drawing, the same applies hereinafter)), the control unit 5 of the client 3 increments the transaction serial number (step 102). It is determined whether or not it is an update request (step 103). If it is an update request, the master ID of the client session 9 is referred to (step 104). If it is not an update request, the reference ID is referred to as a reference request (step 105), and the server 4 specified by the referenced ID is sent. The request packet is transmitted to the control unit 6 (step 106). Here, the client 3 performs synchronous transaction communication with the server 4 by sending a request packet and waiting for a response packet. Therefore, the order of the packets is guaranteed by the client 3.
 要求パケットを送信したクライアント3の制御部5は、サーバー4の制御部6から応答パケット又はマスター通知パケットが届くのを待ち、一定時間経っても応答がなければ、再度マスターID又はリファレンスIDを参照して要求パケットを送信する(ステップ107乃至109)。 The control unit 5 of the client 3 that has transmitted the request packet waits for a response packet or a master notification packet to arrive from the control unit 6 of the server 4, and if there is no response after a certain time, refers to the master ID or reference ID again. The request packet is transmitted (steps 107 to 109).
  〔要求パケットの受信〕
 図6に示すように、要求パケットを受信したサーバー4の制御部6は(ステップ201)、要求パケットに含まれるクライアントIDに基づいて、サーバーセッション10をハッシュ等から取得する(そのクライアントIDに対応するサーバーセッション10がなければ、それを新規に作成する:ステップ202)。
[Reception of request packet]
As shown in FIG. 6, the control unit 6 of the server 4 that has received the request packet (step 201) acquires the server session 10 from a hash or the like based on the client ID included in the request packet (corresponding to the client ID). If there is no server session 10 to be created, it is newly created: step 202).
 次いで、制御部6は、要求パケットに含まれるコマンドに基づいて、更新要求であるか否かを判断する(ステップ203)。 Next, the control unit 6 determines whether or not it is an update request based on a command included in the request packet (step 203).
 更新要求であれば、制御部6は、自身のサーバー4がマスターであるかどうかを確認し(ステップ204)、マスターであれば要求パケットの内容を全てのサーバー4(マスター自身も含む。)に通知して(ステップ205)、その更新処理を行ってよいかどうかにつきPaxosにより合意を諮る(ステップ206)。また、制御部6は、ステップ204においてマスターでなければ(例えばマスター交替があったにもかかわらずそれがクライアント3に未伝達であると、クライアント3とサーバー4で認識しているマスターが異なることになり、このような場合に制御部6はマスターでないと判断する。)、クライアント3の制御部5にマスター通知パケットを送信する(ステップ207)。マスター通知パケットを受信した制御部5は、そのマスター通知パケット中のマスターIDでクライアントセッション9のクライアントIDを置換し、要求パケットを改めて送信する(図5のステップ109,110参照)。 If it is an update request, the control unit 6 checks whether or not its own server 4 is a master (step 204), and if it is a master, the contents of the request packet are sent to all the servers 4 (including the master itself). Notification is made (step 205), and an agreement is consulted by Paxos on whether or not the update processing can be performed (step 206). Further, the control unit 6 determines that the master recognized by the client 3 and the server 4 is different if it is not the master in step 204 (for example, if there is a master change but it has not been transmitted to the client 3). In such a case, it is determined that the control unit 6 is not a master.), A master notification packet is transmitted to the control unit 5 of the client 3 (step 207). Upon receiving the master notification packet, the control unit 5 replaces the client ID of the client session 9 with the master ID in the master notification packet, and transmits the request packet again (see steps 109 and 110 in FIG. 5).
 ステップ206において、過半数のサーバー4の同意が得られてPaxosにより合意が形成されれば、要求パケットを受信したマスターの制御部6は、全てのサーバー4(マスター自身も含む。)の制御部6に対し、更新処理の実行通知を送信する(ステップ208)。これにより、全てのサーバー4で更新要求への対応がとられる。ステップ206においてPaxosにより合意が形成されなければ、制御部6はステップ201に移行して次の要求パケットの待機状態に入る。 In step 206, if the consent of the majority of servers 4 is obtained and an agreement is formed by Paxos, the master control unit 6 that has received the request packet controls the control units 6 of all the servers 4 (including the master itself). In response to this, an update processing execution notification is transmitted (step 208). As a result, all servers 4 respond to the update request. If no agreement is formed by Paxos in Step 206, the control unit 6 proceeds to Step 201 and enters a standby state for the next request packet.
 これに対し、ステップ203において更新要求でなければ、要求パケットを受信したサーバー4で参照要求への対応がとられる。 On the other hand, if the request is not an update request in step 203, the server 4 that has received the request packet responds to the reference request.
  〔更新要求への対応〕
 図7に示すように、更新処理の実行通知を受信したサーバー4の制御部6は(ステップ301)、要求パケット中のクライアントIDに基づいて、サーバーセッション10をハッシュ等から取得する(そのクライアントIDに対応するサーバーセッション10がなければ、それを新規に作成する。:ステップ302)。
[Response to update requests]
As shown in FIG. 7, the control unit 6 of the server 4 that has received the update processing execution notification (step 301) acquires the server session 10 from the hash or the like based on the client ID in the request packet (the client ID). If there is no server session 10 corresponding to, a new one is created: Step 302).
 続いて、制御部6は、ステップ302で取得したサーバーセッション10のセッション状態がオープンであるかどうかを確認し(ステップ303)、オープンでなければクライアント3の制御部5にエラー応答を送信し(ステップ304)、ステップ301に移行して次の更新処理の実行通知の待機状態に入る。 Subsequently, the control unit 6 confirms whether or not the session state of the server session 10 acquired in step 302 is open (step 303), and if not open, transmits an error response to the control unit 5 of the client 3 ( Step 304), the process proceeds to Step 301 to enter a standby state for notification of execution of the next update process.
 ステップ303においてセッション状態がオープンであれば、制御部6は要求パケット中のトランザクション通番と、サーバーセッション10に記憶された応答トランザクション通番(図面において「応答通番」と記載。)が、同一であるか否かを判断する(ステップ305)。一要求一応答の場合であれば、トランザクション通番と応答トランザクション通番が同一ならば、その応答トランザクション通番を含み保留応答として保存されている応答パケットは、そのトランザクション通番を含む要求パケットに対応して生成されたものと考えられる(つまり、サーバー4は今回と同様の要求に対して既に対応済みであり、今回の要求は重複要求と考えられる。)。したがって、ステップ305においてトランザクション通番と応答トランザクション通番が同一であれば、制御部6は保留応答フラグが「偽」で(ステップ306)、その時点においても自身のサーバー4がマスターであることを確認すると(ステップ307)、あらためて応答パケットを生成することなく、保留応答として保留されている応答パケットをクライアント3の制御部5に送信する(ステップ308)。ステップ306において保留応答フラグが「真」であるか、あるいは、ステップ307において自身のサーバー4がマスターでなければ、制御部6はステップ301に移行して次の更新処理の実行通知の待機状態に入る。 If the session state is open in step 303, the control unit 6 determines whether the transaction sequence number in the request packet is the same as the response transaction sequence number stored in the server session 10 (described as “response sequence number” in the drawing). It is determined whether or not (step 305). In the case of one request and one response, if the transaction sequence number is the same as the response transaction sequence number, the response packet stored as a pending response including the response transaction sequence number is generated corresponding to the request packet including the transaction sequence number. (In other words, the server 4 has already responded to the same request as this time, and the current request is considered to be a duplicate request.) Therefore, if the transaction sequence number and the response transaction sequence number are the same in step 305, the control unit 6 confirms that the pending response flag is “false” (step 306) and that its own server 4 is also the master at that time. (Step 307) The response packet held as a hold response is transmitted to the control unit 5 of the client 3 without generating a response packet again (step 308). If the pending response flag is “true” in step 306 or if its own server 4 is not the master in step 307, the control unit 6 proceeds to step 301 and enters a standby state for notification of execution of the next update process. enter.
 ステップ305において、トランザクション通番と応答トランザクション通番が同一でなければ、制御部6は、要求パケット中のトランザクション通番と、サーバーセッション10に記憶された要求開始トランザクション通番(図面において「要求開始通番」と記載。)が、同一であるか否かを判断する(ステップ309)。トランザクション通番と要求開始トランザクション通番が同一であれば、サーバー4は今回と同様の要求を処理している最中であると考えられるので、制御部6は重複処理を避けるべく今回の要求を無視する。 If the transaction sequence number and the response transaction sequence number are not the same in step 305, the control unit 6 describes the transaction sequence number in the request packet and the request start transaction sequence number stored in the server session 10 (described as “request start sequence number” in the drawing). )) Is the same (step 309). If the transaction sequence number and the request start transaction sequence number are the same, the server 4 is considered to be processing the same request as this time, so the control unit 6 ignores the current request to avoid duplicate processing. .
 ステップ309において、トランザクション通番と要求開始トランザクション通番が同一でなければ、制御部6は、要求開始トランザクション通番をそのトランザクション通番で置換する(ステップ310)。そして、要求パケット中のコマンドや要求データに基づいて更新処理を行い(ステップ311)、この更新処理が終了すると、要求終了トランザクション通番(図面において「要求終了通番」と記載。)を上記トランザクション通番で置換する(ステップ312)。 In step 309, if the transaction sequence number and the request start transaction sequence number are not the same, the control unit 6 replaces the request start transaction sequence number with the transaction sequence number (step 310). Then, an update process is performed based on the command and request data in the request packet (step 311). When this update process is completed, the request end transaction sequence number (described as “request end sequence number” in the drawing) is used as the transaction sequence number. Replace (step 312).
 ところで、更新処理の例は数多考えられるが、例えばクライアント3からサーバー4に送信されるサーバーセッションの開設要求や、開設したサーバーセッションの閉鎖要求は更新要求であり、サーバーセッションの開設処理や閉鎖処理は更新処理である。また、ファイルの書出処理等も更新処理である。 There are many examples of update processing. For example, a request for opening a server session transmitted from the client 3 to the server 4 or a request for closing an opened server session is an update request. The process is an update process. The file writing process is also an update process.
 すなわち、要求パケットに含まれるコマンドがサーバーセッションの開設コマンドであれば、ステップ311の更新処理として図9に示すようなサーバーセッションの開設処理が行われる(このとき、制御部6は、ステップ303を省略し、ステップ302からステップ305に移行する。)。 That is, if the command included in the request packet is a server session establishment command, a server session establishment process as shown in FIG. 9 is performed as an update process in step 311 (at this time, the control unit 6 performs step 303). (Omitted, the process proceeds from step 302 to step 305).
 制御部6は、まずステップ302で取得したサーバーセッション10のセッション状態をオープンにするとともに(ステップ501)、各トランザクション通番等の値を初期化し(ステップ502)、これらの処理が完了すると、その旨をクライアント3の制御部5に通知する応答パケットを生成し(ステップ503)、この応答パケットの送信処理を行うべく図8のステップ401を呼び出す(ステップ504)。 First, the control unit 6 opens the session state of the server session 10 acquired in step 302 (step 501), initializes values of each transaction serial number and the like (step 502), and when these processes are completed, Is sent to the control unit 5 of the client 3 (step 503), and step 401 of FIG. 8 is called to perform transmission processing of the response packet (step 504).
 同図において、制御部6は、今回の更新処理について応答パケットを送信する必要があるか否かを判断し(ステップ401)、必要がなければステップ312に移行する(後述のようにロック等があると制御部6は応答パケットを生成しないことがあり、このような場合には一要求一応答ではあるものの、応答がロックの解除等があるまで遅延する。)。 In the figure, the control unit 6 determines whether or not it is necessary to transmit a response packet for the current update process (step 401). If not necessary, the control unit 6 proceeds to step 312 (the lock or the like as described later). If so, the control unit 6 may not generate a response packet. In such a case, although one request is one response, the response is delayed until the lock is released.
 応答パケットを送信する必要があれば、制御部6は保留応答フラグを確認し(ステップ402)、フラグが「真」であればステップ503で生成した応答パケットを保留応答リストに加えることによって、保留応答リストを更新する(ステップ403)。一方、フラグが「偽」であればステップ503で生成した応答パケットで保留応答リストを置換することによって、保留応答リストを更新する(ステップ404)。 If it is necessary to send a response packet, the control unit 6 checks the hold response flag (step 402). If the flag is “true”, the response packet generated in step 503 is added to the hold response list to hold the response packet. The response list is updated (step 403). On the other hand, if the flag is “false”, the pending response list is updated by replacing the pending response list with the response packet generated in step 503 (step 404).
 次に、制御部6は、応答トランザクション通番を上記トランザクション通番で置換し(ステップ405)、自身のサーバー4がマスターであるかどうかを確認する(ステップ406)。制御部6は、マスターであれば保留応答リストの応答パケットを送信して(ステップ407)、マスターでなければ応答パケットを送信することなく、ステップ312に移行する。 Next, the control unit 6 replaces the response transaction sequence number with the transaction sequence number (step 405), and confirms whether or not its own server 4 is a master (step 406). If it is a master, the control part 6 transmits the response packet of a pending | holding response list (step 407), and if it is not a master, it will transfer to step 312 without transmitting a response packet.
 そして、このようなサーバーセッションの開設処理が全てのサーバー4で行われることにより、クライアント3と全てのサーバー4との間で同一のセッションが張られることになる。 Then, when the server session establishment process is performed in all the servers 4, the same session is established between the client 3 and all the servers 4.
 要求パケットに含まれるコマンドがサーバーセッションの閉鎖コマンドであれば、ステップ311の更新処理として図10に示すようなサーバーセッションの閉鎖処理が行われる。 If the command included in the request packet is a server session closing command, a server session closing process as shown in FIG.
 制御部6は、ステップ501でオープンにしたサーバーセッション10のオープン状態を解除(セッション状態をクローズ)し(ステップ511)、この処理が完了すると、その旨をクライアント3に通知するための応答パケットを生成し(ステップ512)、ステップ401を呼び出して図8の応答パケットの送信処理を行う(ステップ513)。 The control unit 6 cancels the open state of the server session 10 opened in step 501 (closes the session state) (step 511), and when this processing is completed, a response packet for notifying the client 3 of that fact is sent. 8 is generated (step 512), and step 401 is called to perform the response packet transmission processing of FIG. 8 (step 513).
 また、要求パケットに含まれるコマンドがファイル書出コマンドである場合、要求パケットの要求データには、書出対象のファイルのファイルパス名、オフセット、書き出すデータ及び書き出すデータの長さが含まれており、ステップ309の更新処理として図11に示すようなファイル書出処理が行われる。 If the command included in the request packet is a file write command, the request data in the request packet includes the file path name, offset, data to be written, and the length of the data to be written. As the update process in step 309, a file writing process as shown in FIG. 11 is performed.
 制御部6は、ファイルをオープンして(ステップ521)、オフセットからデータを書き出し(ステップ522)、ファイルをクローズする(ステップ523)。そして、書き出した長さを含む応答パケットを生成し(ステップ524)、ステップ401を呼び出して図8の応答パケットの送信処理を行う(ステップ525)。 The control unit 6 opens the file (step 521), writes data from the offset (step 522), and closes the file (step 523). Then, a response packet including the written length is generated (step 524), and step 401 is called to perform response packet transmission processing in FIG. 8 (step 525).
  〔参照要求への対応〕
 サーバー4がPaxosにより合意を形成して処理を進めていく場合には、Paxos合意の際に過半数から漏れたサーバー4では直近の更新処理がなされていないこともあり、クライアント3がそのようなサーバー4を参照する事態を回避する必要がある。
[Response to reference requests]
When the server 4 proceeds with the process by forming an agreement with Paxos, the server 4 leaked from the majority at the time of the Paxos agreement may not have performed the most recent update process, and the client 3 may be such a server. It is necessary to avoid the situation of referring to 4.
 そこで、参照処理に際しては、図6に示すように、制御部6は要求終了トランザクション通番が要求パケット中の更新トランザクション通番以上であるか否かを判断し(ステップ209)、要求終了トランザクション通番が更新トランザクション通番以上であれば、そのサーバー4は更新が遅れておらず参照に供し得るとして、セッション状態のオープンを確認して参照処理に進む(ステップ210)。セッション状態がオープンでなければ、制御部6は、クライアント3の制御部5にエラー応答を送信する(ステップ211)。 Therefore, in the reference process, as shown in FIG. 6, the control unit 6 determines whether or not the request end transaction sequence number is equal to or greater than the update transaction sequence number in the request packet (step 209), and the request end transaction sequence number is updated. If the transaction sequence number is greater than or equal to the transaction number, the server 4 confirms that the session state has been opened and proceeds to the reference process (step 210), assuming that the update is not delayed and can be used for reference. If the session state is not open, the control unit 6 transmits an error response to the control unit 5 of the client 3 (step 211).
 制御部6は、ステップ210においてセッション状態がオープンであると、要求開始トランザクション通番を要求パケット中のトランザクション通番で置換し(ステップ212)、要求パケット中のコマンドや要求データに基づいて参照処理を行い(ステップ213)、この参照処理が終了すると、要求終了トランザクション通番を上記トランザクション通番で置換する(ステップ214)。ステップ213の参照処理においても、制御部6は参照内容等を含む応答パケットをクライアント3の制御部5に送信するが、その方法は図8の応答パケットの送信処理と同様(ただし、ステップ312ではなくステップ214に移行する。)である。 If the session state is open in step 210, the control unit 6 replaces the request start transaction sequence number with the transaction sequence number in the request packet (step 212), and performs reference processing based on the command and request data in the request packet. (Step 213) When this reference process is completed, the request end transaction sequence number is replaced with the transaction sequence number (step 214). Also in the reference process of step 213, the control unit 6 transmits a response packet including the reference contents to the control unit 5 of the client 3, but the method is the same as the response packet transmission process of FIG. And go to step 214).
 ステップ209において、要求終了トランザクション通番が更新トランザクション通番未満であれば、制御部6は処理を中断して待機状態に入る。そして、更新の遅滞が解消して要求終了トランザクション通番が要求パケット中の更新トランザクション通番以上になれば、ウェイクアップして中断していた処理を続行する。 In step 209, if the request end transaction sequence number is less than the update transaction sequence number, the control unit 6 interrupts the process and enters a standby state. Then, if the update delay is resolved and the request end transaction sequence number is equal to or greater than the update transaction sequence number in the request packet, the wake-up and interrupted processing is continued.
  〔応答パケットの受信〕
 クライアント3の制御部5は、サーバー4から応答パケットを受信するとステップ109(図5参照)の待機状態から脱し、リファレンスIDが不明であれば、クライアントセッション9に記憶されたリファレンスIDを応答パケット中のリファレンスIDで置換する(ステップ111,112)。
続いて、制御部5は、応答パケット中の応答トランザクション通番が期待する値と同一であるか否かを判断する(ステップ113)。この期待値は、トランザクション通番と同一であり、応答トランザクション通番が期待値と同一であれば、要求に対する適切な応答を受信したことになる。制御部5は、更新要求に対する応答を受信した場合には、更新トランザクション通番を上記トランザクション通番で置換し(ステップ114)、次の要求のためにステップ101に移行するか、又は、アプリケーションによる制御に戻る。
[Reception packet reception]
When the control unit 5 of the client 3 receives the response packet from the server 4, the control unit 5 exits from the standby state of Step 109 (see FIG. 5). If the reference ID is unknown, the reference ID stored in the client session 9 is included in the response packet. (Steps 111 and 112).
Subsequently, the control unit 5 determines whether or not the response transaction sequence number in the response packet is the same as an expected value (step 113). This expected value is the same as the transaction sequence number. If the response transaction sequence number is the same as the expected value, it means that an appropriate response to the request has been received. When receiving a response to the update request, the control unit 5 replaces the update transaction sequence number with the transaction sequence number (step 114), and proceeds to step 101 for the next request or is controlled by the application. Return.
 ステップ112において応答トランザクション通番が期待値と同一でなければ、要求に対する不適切な応答を受信したことになるので、制御部5は受信した応答パケットを破棄し(ステップ115)、ステップ107に戻って適切な応答を待つ。 If the response transaction sequence number is not the same as the expected value in step 112, it means that an inappropriate response to the request has been received. Therefore, the control unit 5 discards the received response packet (step 115) and returns to step 107. Wait for an appropriate response.
 なお、例えばデータベースのSQL複数文のように、一つの要求から複数の応答パケットが派生する場合には、サーバー4の制御部6は保留応答フラグにより応答パケットを蓄積し、複数(所定数)保留されたところでマスターの制御部6が一つの応答として一括送信すればよい。すなわち、制御部6は要求パケットのコマンドを解析して複数(所定数)の応答パケットが作成されることを知り得るので、その複数(所定数)の応答パケットが作成されるまでは保留応答フラグを「真」とし、生成された応答パケットを直ちに送信しないようにホールドして保留応答に逐次蓄積する。そして、複数(所定数)の応答パケットが全て生成されたときに保留応答フラグを「偽」とし、マスターの制御部6が蓄積された複数(所定数)の応答パケットをヘッダを付して一括送信する。 When a plurality of response packets are derived from a single request, for example, in the case of multiple SQL statements in the database, the control unit 6 of the server 4 accumulates the response packets using a hold response flag, and holds a plurality (predetermined number) of hold packets. At this point, the master control unit 6 may transmit the response as a single response. That is, since the control unit 6 can know that a plurality (predetermined number) of response packets are created by analyzing the command of the request packet, the pending response flag is kept until the plurality (predetermined number) of response packets are created. Is set to “true”, the generated response packet is held so as not to be transmitted immediately, and sequentially stored in the pending response. When all of a plurality (predetermined number) of response packets are generated, the pending response flag is set to “false”, and the master control unit 6 adds a plurality of (predetermined number) of response packets with a header to the batch. Send.
  〔イベント管理〕
 前述のように、サーバー4は、サーバーセッション10によりイベントを管理することができる。
[Event management]
As described above, the server 4 can manage events by the server session 10.
 クライアント3がサーバー4にイベント管理の開始を要求するには、イベント取得開始要求を送信する。イベント取得開始要求を送信後、クライアント3がサーバー4に対してイベントの取得を要求するには、イベント取得要求を送信する。また、クライアント3がサーバー4にイベント管理の終了を要求するには、イベント取得終了要求を送信する。これらのイベント管理に関する要求は更新要求であるから、具体的にはステップ311において以下のような処理を行えばよい。 In order for the client 3 to request the server 4 to start event management, an event acquisition start request is transmitted. After the event acquisition start request is transmitted, the client 3 transmits an event acquisition request to request the server 4 to acquire the event. In addition, when the client 3 requests the server 4 to end the event management, an event acquisition end request is transmitted. Since these requests related to event management are update requests, specifically, the following processing may be performed in step 311.
 つまり、図12に示すように、サーバー4の制御部6はイベント取得開始要求を受けると、イベント資源とサーバーセッション10との関連付けを行い、これを記憶装置8に記憶する(ステップ601)。この関連付けは、イベント資源とサーバーセッション10との間にジョイントを設定することにより行い、ここでは、ジョイントには、当該ジョイントとイベント資源を結び付けるイベントリンク、当該ジョイントとサーバーセッション10を結び付けるセッションリンク、及び、ジョイントを破棄したときの後処理関数が含まれる。なお、関連付けの対象となるイベント資源は、イベント取得開始要求の要求パケットで特定され、関連付けの対象となるサーバーセッション10は、ステップ302(又はステップ202)で特定される。 That is, as shown in FIG. 12, when receiving the event acquisition start request, the control unit 6 of the server 4 associates the event resource with the server session 10 and stores it in the storage device 8 (step 601). This association is performed by setting a joint between the event resource and the server session 10. Here, the joint includes an event link that links the joint and the event resource, a session link that links the joint and the server session 10, And a post-processing function when the joint is discarded. The event resource to be associated is specified by the request packet of the event acquisition start request, and the server session 10 to be associated is specified at step 302 (or step 202).
 関連付けが完了すると、制御部6はその旨の応答パケットを生成し(ステップ602)、クライアント3の制御部5に送信するが(ステップ603)、その方法は図8の応答パケットの送信処理と同様である。 When the association is completed, the control unit 6 generates a response packet to that effect (step 602) and transmits it to the control unit 5 of the client 3 (step 603). The method is the same as the response packet transmission process of FIG. It is.
 イベント取得開始要求を受けた後、イベントが発生すると、クライアント3からイベント取得要求を受けているか否かによって、サーバー4の処理が異なる。 When an event occurs after receiving an event acquisition start request, the processing of the server 4 differs depending on whether an event acquisition request is received from the client 3 or not.
 詳しくは、図13に示すように、サーバー4の制御部6は、イベント資源におけるイベントの発生を知ると(ステップ611)、イベント待ちフラグを確認し(既述のように、また、後に詳述するように、クライアント3からイベント取得要求を受けていればイベント待ちフラグが「真」であり、クライアント3からイベント取得要求を受けていなければイベント待ちフラグが「偽」である。:ステップ612)、イベント待ちフラグが「真」であれば、発生したイベントをクライアント3に送信すべく応答パケットを生成し(ステップ613)、クライアント3の制御部5に図8と同様の方法で送信して(ステップ614)、イベント待ちフラグを「偽」とする(ステップ615)。 Specifically, as shown in FIG. 13, when the control unit 6 of the server 4 knows that an event has occurred in the event resource (step 611), it checks the event waiting flag (as described above, and will be described in detail later). As described above, if an event acquisition request is received from the client 3, the event wait flag is “true”, and if no event acquisition request is received from the client 3, the event wait flag is “false”: Step 612). If the event waiting flag is “true”, a response packet is generated to transmit the generated event to the client 3 (step 613), and is transmitted to the control unit 5 of the client 3 in the same manner as in FIG. In step 614), the event waiting flag is set to "false" (step 615).
 これに対し、イベント待ちフラグが「偽」であれば、制御部6は発生したイベントを保留イベントに追加して登録し(ステップ616)、イベント取得要求又は次のイベント発生等の待機状態に入る。 On the other hand, if the event waiting flag is “false”, the control unit 6 adds the generated event to the hold event and registers it (step 616), and enters a standby state such as an event acquisition request or the next event occurrence. .
 図14に示すように、クライアント3からイベント取得要求があると(ステップ621)、制御部6は保留イベントリストで保留イベントがあるか否かを確認し(ステップ622)、保留イベントがなければイベント待ちフラグを「真」として(ステップ623)、次のイベント取得要求時までに発生したイベントが保留イベントリストに保留されるようにする。 As shown in FIG. 14, when there is an event acquisition request from the client 3 (step 621), the control unit 6 checks whether there is a pending event in the pending event list (step 622). The wait flag is set to “true” (step 623) so that an event generated until the next event acquisition request is held in the hold event list.
 ステップ622において保留イベントがあれば、制御部6は保留イベントリストに登録された全ての保留イベントを一括して刈り取ってこれらを含む応答パケットを生成し(ステップ624)、クライアント3の制御部5に図8と同様の方法で送信する(ステップ625)。 If there is a pending event in step 622, the control unit 6 cuts all the pending events registered in the pending event list in a lump and generates a response packet including these (step 624), and sends the response packet to the control unit 5 of the client 3 Transmission is performed in the same manner as in FIG. 8 (step 625).
 図15に示すように、サーバー4の制御部6はイベント取得終了要求を受けると、イベント資源とサーバーセッション10との関連付けを解除して(ステップ631)、その旨の応答パケットを生成し(ステップ632)、クライアント3の制御部5に図8と同様の方法で送信する(ステップ633)。 As shown in FIG. 15, upon receiving the event acquisition end request, the control unit 6 of the server 4 releases the association between the event resource and the server session 10 (step 631), and generates a response packet to that effect (step 631). 632), and transmits to the control unit 5 of the client 3 by the same method as in FIG. 8 (step 633).
 〔マスター選択配列〕
 サーバー4a,4b,4cは必ずしも常時稼働しているわけではなく(Paxosにより合意を形成するためには、3台のうち2台が稼働していればよい。)、マスター自体に障害が生じたり、マスターと他のサーバーとの間で通信障害が生じたりすることにより、マスター交替が生じ得る。サーバー4がマスター交替を認識したときには、そのサーバー4がクライアント3と接続中であれば、図4に示すようなマスター通知パケットを送信してクライアント3にマスターの変更を通知することができる。
[Master selection array]
The servers 4a, 4b, and 4c are not necessarily always in operation (in order to form an agreement by Paxos, it is only necessary that two of the three are in operation), and the master itself may fail. A master change may occur due to a communication failure between the master and another server. When the server 4 recognizes the master change, if the server 4 is connected to the client 3, a master notification packet as shown in FIG. 4 can be transmitted to notify the client 3 of the master change.
 ところが、マスター交替時には、サーバー4a,4b,4cの全てが新しいマスターを認識するのに一定の時間を要するので、セル2全体としては新旧のマスターが併存しているかのような状態になる。このとき、旧マスターが新マスターをマスターとして認識し、新マスターが旧マスターを未だマスターとして認識しているとすると、クライアント3が旧マスターに要求を出すと新マスターを通知するマスター通知パケットが返ってきて、新マスターに要求を出すと旧マスターを通知するマスター通知パケットが返ってくるという循環が発生する。この循環は、時間が経てばサーバー4a,4b,4cの認識が一つのマスターに収束するので、いずれ自然に解消するが、この間、パケットが連続的に流れてしまってネットワーク負荷を引き起こす。 However, since it takes a certain time for all of the servers 4a, 4b, and 4c to recognize the new master when the master is replaced, the entire cell 2 is in a state as if the old and new masters coexist. At this time, if the old master recognizes the new master as the master and the new master still recognizes the old master as the master, when the client 3 issues a request to the old master, a master notification packet notifying the new master is returned. When a request is issued to the new master, a circulation occurs in which a master notification packet for notifying the old master is returned. This circulation is resolved naturally as the recognition of the servers 4a, 4b, and 4c converges to one master over time, but during this time, packets flow continuously and cause a network load.
 そこで、本形態では、クライアントセッション9において、例えば図16に示すような循環回避用のマスター選択配列を用意する。マスター選択配列では、クライアントセッション9のマスターIDが替わる度に、旧いマスターIDに対応するサーバー4の配列要素に「1」の印が付される(印が付されない配列要素は「0」である。)。よって、クライアント3が新たにマスター通知パケットを受信し、このマスター通知パケット中のマスターIDに対応するサーバー4の配列要素に印が付されていれば、このマスター通知パケットは旧マスターを通知してきたおそれがあるから、クライアント3の制御部5は上記循環が生じているとみなし、クライアントセッション9のマスターIDをマスター通知パケットで通知されたマスターIDに置換することなく次のマスター通知パケットを待つ。 Therefore, in this embodiment, in the client session 9, for example, a master selection array for avoiding circulation as shown in FIG. 16 is prepared. In the master selection array, every time the master ID of the client session 9 is changed, the array element of the server 4 corresponding to the old master ID is marked with “1” (the array element not marked is “0”). .) Therefore, if the client 3 newly receives the master notification packet and the array element of the server 4 corresponding to the master ID in the master notification packet is marked, the master notification packet has notified the old master. Since there is a fear, the control unit 5 of the client 3 considers that the above-mentioned circulation has occurred, and waits for the next master notification packet without replacing the master ID of the client session 9 with the master ID notified by the master notification packet.
 具体的には、マスター通知パケット中のレプリカIDとマスターIDが一致していれば、このマスター通知パケットの送信元のサーバー4は自身をマスターと認識していることになり循環は発生していないから、クライアント3の制御部5は、そのレプリカIDをクライアントセッション9のマスターIDとし、マスター選択配列の印を全部クリアする。 Specifically, if the replica ID and the master ID in the master notification packet match, the server 4 that has transmitted the master notification packet recognizes itself as the master, and no circulation occurs. Then, the control unit 5 of the client 3 sets the replica ID as the master ID of the client session 9 and clears all marks in the master selection array.
 また、マスター通知パケット中のマスターIDとクライアントセッション9のマスターIDが一致していれば、クライアント3とサーバー4でマスターの認識が一致しているから、制御部5はマスター選択配列に対して特に何もしない。 If the master ID in the master notification packet matches the master ID of the client session 9, the master 3 and the server 4 have the same master recognition. do nothing.
 一方、マスター通知パケット中のマスターIDとクライアントセッション9のマスターIDが一致していなければ、制御部5は、マスター通知パケット中のマスターIDに対応するサーバー4の配列要素に「1」の印が付されているか否かを判断する。そして、印が付されていれば、上記循環が生じていてマスター選択中(Jeopard)であると判断し、クライアントセッション9のマスターIDを不明として次のマスター通知パケットを待つ。印が付されていなければ、それまでクライアントセッション9に記憶されていたマスターIDに対応するサーバー4の配列要素に印を付け、クライアントセッション9のマスターIDをマスター通知パケット中のマスターIDで置換する。 On the other hand, if the master ID in the master notification packet and the master ID of the client session 9 do not match, the control unit 5 marks “1” in the array element of the server 4 corresponding to the master ID in the master notification packet. It is judged whether it is attached. If it is marked, it is determined that the above-described circulation has occurred and that the master is being selected (Jeopard), and the master ID of the client session 9 is unknown, and the next master notification packet is awaited. If not marked, the array element of the server 4 corresponding to the master ID previously stored in the client session 9 is marked, and the master ID of the client session 9 is replaced with the master ID in the master notification packet. .
 なお、制御部5は、接続が切断された旧マスターをマスターと認識することがないように、接続情報によりサーバー4a,4b,4cのいずれかについて接続の切断を検知したときは、そのIDとクライアントセッション9のマスターIDが一致していれば、クライアントセッション9のマスターIDに対応するサーバー4の配列要素に印を付ける。 When the controller 5 detects the disconnection of any of the servers 4a, 4b, and 4c based on the connection information so that the old master whose connection has been disconnected is not recognized as the master, the control unit 5 If the master ID of the client session 9 matches, the array element of the server 4 corresponding to the master ID of the client session 9 is marked.
 また、マスター選択中に一定時間経ってもマスター通知パケットが送られてこない場合には、制御部5はマスター選択配列の印を全てクリアした上でサーバー4a,4b,4cに順次要求パケットを送信し、マスター通知パケットが送られてくるのを待つ。 If the master notification packet is not sent even after a certain time during the master selection, the control unit 5 clears all the marks of the master selection array and sequentially sends request packets to the servers 4a, 4b, 4c. And wait for the master notification packet to be sent.
 本形態に係る分散コンピューティングシステム1によれば、セル2を構成する各サーバー4に、クライアント3からの処理要求を受け、処理要求があった旨及びそのクライアント3を特定するクライアントIDを他のサーバー4に通知する処理要求通知手段と、クライアント3から処理要求を受け、又は、処理要求を受けた他のサーバー4から処理要求があった旨の通知を受け、クライアントIDに基づきクライアント3との間でセッションを開設して所定の処理を行う処理実行手段として機能する制御部6が設けられているので、各サーバー4がクライアント3との間にクライアントIDに基づき同一のセッションを開設して処理を行うことにより、セルのクライアントとの接続窓口が複数になって、接続窓口における障害発生に起因するサービス提供の停止を防止することができる。 According to the distributed computing system 1 according to the present embodiment, each server 4 configuring the cell 2 receives a processing request from the client 3, and notifies that the processing request has been made and the client ID that identifies the client 3 to the other server 4. A processing request notification means for notifying the server 4 and a processing request from the client 3 or a notification to the effect that a processing request has been received from another server 4 that has received the processing request. Since the control unit 6 is provided that functions as a process execution means for establishing a session between them and performing a predetermined process, each server 4 establishes the same session with the client 3 based on the client ID for processing. By doing this, there are multiple connection windows with the cell client, which is caused by a failure at the connection window. It is possible to prevent the stopping of the service provider.
 以上、本発明を実施するための形態について例示したが、本発明の実施形態は上述したものに限られず、本発明の趣旨を逸脱しない範囲で適宜変更等してもよい。 As mentioned above, although the form for implementing this invention was illustrated, embodiment of this invention is not restricted to what was mentioned above, You may change suitably etc. in the range which does not deviate from the meaning of this invention.
 例えばセルを構成するサーバーはPaxosによらずに同期を取ってもよいし、Paxosのリーダーをマスターとしなくてもよい。また、要求パケット、応答パケット、マスター通知パケットやクライアントIDの構成も、上述したものと異なってもかまわない。 For example, the servers that make up the cell may synchronize without relying on Paxos, and the Paxos leader may not be the master. Also, the configuration of the request packet, response packet, master notification packet, and client ID may be different from those described above.
1           分散コンピューティングシステム
2           セル
3           クライアント
4a,4b,4c    サーバー(レプリカ)
5           制御部(処理要求手段、要求送信手段、マスターID変更手段)
6a,6b,6c    制御部(処理要求通知手段、セッション開設手段、応答生成手段、応答送信手段、マスター変更通知手段)
7           記憶装置(第一の記憶手段)
8a,8b,8c    記憶装置(第二の記憶手段)
9           クライアントセッション
10a,10b,10c サーバーセッション
DESCRIPTION OF SYMBOLS 1 Distributed computing system 2 Cell 3 Client 4a, 4b, 4c Server (replica)
5 Control unit (processing request means, request transmission means, master ID changing means)
6a, 6b, 6c Control unit (processing request notification means, session establishment means, response generation means, response transmission means, master change notification means)
7 Storage device (first storage means)
8a, 8b, 8c Storage device (second storage means)
9 Client session 10a, 10b, 10c Server session

Claims (31)

  1.  互いに同期が取られる複数のレプリカを含むセルとクライアントとを備え、
     前記クライアントに、前記セルと前記クライアントとの間のセッションを管理するためのセッション情報として、前記クライアントが各レプリカと接続するための接続情報及び前記クライアントを特定するためのクライアントIDを記憶する第一の記憶手段と、前記複数のレプリカのいずれかに対し、前記接続情報に基づき所定の処理の要求及び前記クライアントIDの通知を行う処理要求手段とが設けられ、
     前記各レプリカに、前記処理要求手段からの処理要求を受け、処理要求があった旨及び前記クライアントIDを他のレプリカに通知する処理要求通知手段と、前記処理要求手段から処理要求を受け、又は、処理要求を受けたレプリカの処理要求通知手段から処理要求があった旨の通知を受け、前記クライアントIDに基づき前記クライアントとの間で前記セッションを開設して前記所定の処理を行う処理実行手段とが設けられていることを特徴とする分散コンピューティングシステム。
    A cell including a plurality of replicas synchronized with each other and a client;
    The client stores, as session information for managing a session between the cell and the client, connection information for the client to connect to each replica and a client ID for specifying the client. Storage means, and processing request means for making a request for a predetermined process and a notification of the client ID based on the connection information for any of the plurality of replicas,
    Wherein each replica receives a processing request from the processing requesting means receives the processing request notifying means for notifying that there is a processing request and the client ID to the other replicas, the processing request from said processing request means, or receives a notification indicating that a processing request from a processing request notification means of the replica which has received the processing request, the processing executing means for performing the predetermined processing by opening the session between the client based on the client ID And a distributed computing system.
  2.  前記所定の処理が、更新処理であることを特徴とする請求項1に記載の分散コンピューティングシステム。 The distributed computing system according to claim 1, wherein the predetermined process is an update process.
  3.  前記所定の処理の要求が、前記各レプリカに前記セッションを開設させるためのセッション開設要求であることを特徴とする請求項1に記載の分散コンピューティングシステム。 2. The distributed computing system according to claim 1, wherein the predetermined processing request is a session establishment request for causing each replica to establish the session.
  4.  前記第一の記憶手段が、前記複数のレプリカの一つがマスターとして選ばれる場合に、いずれのレプリカがマスターであるかを特定するためのマスターIDを記憶し、
     前記処理要求手段が、前記第一の記憶手段に記憶されたマスターIDにより特定されるレプリカに対し、前記所定の処理の要求及び前記クライアントIDの通知を行うことを特徴とする請求項1乃至請求項3のいずれか1項に記載の分散コンピューティングシステム。
    The first storage means stores a master ID for identifying which replica is the master when one of the plurality of replicas is selected as a master;
    2. The processing requesting unit makes a request for the predetermined processing and a notification of the client ID to a replica specified by a master ID stored in the first storage unit. Item 4. The distributed computing system according to any one of items 3.
  5.  前記第一の記憶手段が、前記複数のレプリカの一つが参照処理時の参照に供するリファレンスとして選ばれる場合に、いずれのレプリカがリファレンスであるかを特定するためのリファレンスIDを記憶し、
     前記処理要求手段が、前記第一の記憶手段に記憶されたリファレンスIDにより特定されるレプリカに対し、参照処理の要求を行うことを特徴とする請求項4に記載の分散コンピューティングシステム。
    When the first storage unit is selected as a reference to be used for reference during a reference process when one of the plurality of replicas is stored, a reference ID for specifying which replica is a reference;
    5. The distributed computing system according to claim 4, wherein the processing request unit requests a reference process for a replica specified by a reference ID stored in the first storage unit.
  6.  前記各レプリカに、前記所定の処理の要求に対する応答を生成する応答生成手段と、前記マスターIDを前記第一の記憶手段とは独立して記憶するとともに前記応答生成手段により生成された応答を記憶する第二の記憶手段と、前記第二の記憶手段に記憶された応答を前記クライアントに送信可能な応答送信手段とが設けられ、
     前記応答送信手段が、前記第二の記憶手段に記憶されたマスターIDに基づいて自身のレプリカがマスターであると判断したときに、前記第二の記憶手段に記憶された応答を前記クライアントに送信することを特徴とする請求項4に記載の分散コンピューティングシステム。
    In each of the replicas, a response generation unit that generates a response to the request for the predetermined process, and the master ID are stored independently of the first storage unit, and the response generated by the response generation unit is stored Second storage means, and response transmission means capable of transmitting the response stored in the second storage means to the client,
    When the response transmission unit determines that its replica is a master based on the master ID stored in the second storage unit, the response stored in the second storage unit is transmitted to the client. The distributed computing system according to claim 4, wherein:
  7.  前記各レプリカに、前記所定の処理の要求に対する応答を生成する応答生成手段と、前記マスターIDを前記第一の記憶手段とは独立して記憶するとともに前記応答生成手段により生成された応答を記憶する第二の記憶手段と、前記第二の記憶手段に記憶された応答を前記クライアントに送信可能な応答送信手段とが設けられ、
     前記応答送信手段が、前記第二の記憶手段に記憶されたマスターIDに基づいて自身のレプリカがマスターであると判断したときに、前記第二の記憶手段に記憶された応答を前記クライアントに送信することを特徴とする請求項5に記載の分散コンピューティングシステム。
    In each of the replicas, a response generation unit that generates a response to the request for the predetermined process, and the master ID are stored independently of the first storage unit, and the response generated by the response generation unit is stored Second storage means, and response transmission means capable of transmitting the response stored in the second storage means to the client,
    When the response transmission unit determines that its replica is a master based on the master ID stored in the second storage unit, the response stored in the second storage unit is transmitted to the client. The distributed computing system according to claim 5, wherein:
  8.  前記応答送信手段が、前記第二の記憶手段に記憶されたマスターIDに基づいて自身のレプリカがマスターでないと判断したときに、そのマスターIDに関する情報を前記第二の記憶手段に記憶された応答の代わりに前記クライアントに送信することを特徴とする請求項6に記載の分散コンピューティングシステム。 When the response transmission unit determines that its replica is not a master based on the master ID stored in the second storage unit, the response stored in the second storage unit is information related to the master ID. The distributed computing system according to claim 6, wherein the data is transmitted to the client instead.
  9.  前記応答送信手段が、前記第二の記憶手段に記憶されたマスターIDに基づいて自身のレプリカがマスターでないと判断したときに、そのマスターIDに関する情報を前記第二の記憶手段に記憶された応答の代わりに前記クライアントに送信することを特徴とする請求項7に記載の分散コンピューティングシステム。 When the response transmission unit determines that its replica is not a master based on the master ID stored in the second storage unit, the response stored in the second storage unit is information related to the master ID. 8. The distributed computing system according to claim 7, wherein the distributed computing system transmits to the client instead.
  10.  前記各レプリカに、前記複数のレプリカ間でマスターの変更があったときに、新しいマスターのマスターIDに関する情報を前記クライアントに通知するマスター変更通知手段が設けられていることを特徴とする請求項4に記載の分散コンピューティングシステム。 5. The master change notification means for notifying the client of information related to a master ID of a new master when each of the replicas has a master change among the plurality of replicas. The distributed computing system described in 1.
  11.  前記各レプリカに、前記複数のレプリカ間でマスターの変更があったときに、新しいマスターのマスターIDに関する情報を前記クライアントに通知するマスター変更通知手段が設けられていることを特徴とする請求項5に記載の分散コンピューティングシステム。 6. The master change notifying means for notifying the client of information related to a master ID of a new master when the master is changed between the plurality of replicas in each of the replicas. The distributed computing system described in 1.
  12.  前記各レプリカに、前記複数のレプリカ間でマスターの変更があったときに、新しいマスターのマスターIDに関する情報を前記クライアントに通知するマスター変更通知手段が設けられていることを特徴とする請求項6に記載の分散コンピューティングシステム。 7. The master change notifying means for notifying the client of information related to a master ID of a new master when each replica has a master change between the plurality of replicas. The distributed computing system described in 1.
  13.  前記各レプリカに、前記複数のレプリカ間でマスターの変更があったときに、新しいマスターのマスターIDに関する情報を前記クライアントに通知するマスター変更通知手段が設けられていることを特徴とする請求項7に記載の分散コンピューティングシステム。 8. The master change notifying means for notifying the client of information related to a master ID of a new master when each replica has a master change among the plurality of replicas. The distributed computing system described in 1.
  14.  前記各レプリカに、前記複数のレプリカ間でマスターの変更があったときに、新しいマスターのマスターIDに関する情報を前記クライアントに通知するマスター変更通知手段が設けられていることを特徴とする請求項8に記載の分散コンピューティングシステム。 9. The master change notifying means for notifying the client of information related to a master ID of a new master when each replica has a master change among the plurality of replicas. The distributed computing system described in 1.
  15.  前記各レプリカに、前記複数のレプリカ間でマスターの変更があったときに、新しいマスターのマスターIDに関する情報を前記クライアントに通知するマスター変更通知手段が設けられていることを特徴とする請求項9に記載の分散コンピューティングシステム。 10. The master change notifying means for notifying the client of information related to a master ID of a new master when each replica has a master change between the plurality of replicas. The distributed computing system described in 1.
  16.  前記第一の記憶手段が、前記マスターIDが変更されたときに変更前のマスターIDを記憶するマスターテーブルを記憶し、
     前記クライアントに、前記応答送信手段からマスターIDに関する情報を受信したときに、そのマスターIDが前記マスターテーブルに記憶されたマスターIDと同一であれば前記第一の記憶手段に記憶されたマスターIDをそのマスターIDに置換せず、そのマスターIDが前記マスターテーブルに記憶されたマスターIDと同一でなければ前記第一の記憶手段に記憶されたマスターIDをそのマスターIDに置換するマスターID変更手段が設けられていることを特徴とする請求項8に記載の分散コンピューティングシステム。
    The first storage means stores a master table that stores a master ID before the change when the master ID is changed,
    If the master ID is the same as the master ID stored in the master table when the client receives information on the master ID from the response transmission means, the master ID stored in the first storage means is used. Master ID changing means for replacing the master ID stored in the first storage means with the master ID if the master ID is not the same as the master ID stored in the master table. The distributed computing system of claim 8, wherein the distributed computing system is provided.
  17.  前記第一の記憶手段が、前記マスターIDが変更されたときに変更前のマスターIDを記憶するマスターテーブルを記憶し、
     前記クライアントに、前記応答送信手段からマスターIDに関する情報を受信したときに、そのマスターIDが前記マスターテーブルに記憶されたマスターIDと同一であれば前記第一の記憶手段に記憶されたマスターIDをそのマスターIDに置換せず、そのマスターIDが前記マスターテーブルに記憶されたマスターIDと同一でなければ前記第一の記憶手段に記憶されたマスターIDをそのマスターIDに置換するマスターID変更手段が設けられていることを特徴とする請求項9に記載の分散コンピューティングシステム。
    The first storage means stores a master table that stores a master ID before the change when the master ID is changed,
    If the master ID is the same as the master ID stored in the master table when the client receives information on the master ID from the response transmission means, the master ID stored in the first storage means is used. Master ID changing means for replacing the master ID stored in the first storage means with the master ID if the master ID is not the same as the master ID stored in the master table. The distributed computing system according to claim 9, wherein the distributed computing system is provided.
  18.  前記第一の記憶手段が、前記マスターIDが変更されたときに変更前のマスターIDを記憶するマスターテーブルを記憶し、
     前記クライアントに、前記マスター変更通知手段からマスターIDに関する情報を受信したときに、そのマスターIDが前記マスターテーブルに記憶されたマスターIDと同一であれば前記第一の記憶手段に記憶されたマスターIDをそのマスターIDに置換せず、そのマスターIDが前記マスターテーブルに記憶されたマスターIDと同一でなければ前記第一の記憶手段に記憶されたマスターIDをそのマスターIDに置換するマスターID変更手段が設けられていることを特徴とする請求項10に記載の分散コンピューティングシステム。
    The first storage means stores a master table that stores a master ID before the change when the master ID is changed,
    If the master ID is the same as the master ID stored in the master table when the client receives information on the master ID from the master change notification means, the master ID stored in the first storage means If the master ID is not the same as the master ID stored in the master table, the master ID changing unit replaces the master ID stored in the first storage unit with the master ID. The distributed computing system according to claim 10, wherein the distributed computing system is provided.
  19.  前記第一の記憶手段が、前記マスターIDが変更されたときに変更前のマスターIDを記憶するマスターテーブルを記憶し、
     前記クライアントに、前記マスター変更通知手段からマスターIDに関する情報を受信したときに、そのマスターIDが前記マスターテーブルに記憶されたマスターIDと同一であれば前記第一の記憶手段に記憶されたマスターIDをそのマスターIDに置換せず、そのマスターIDが前記マスターテーブルに記憶されたマスターIDと同一でなければ前記第一の記憶手段に記憶されたマスターIDをそのマスターIDに置換するマスターID変更手段が設けられていることを特徴とする請求項11に記載の分散コンピューティングシステム。
    The first storage means stores a master table that stores a master ID before the change when the master ID is changed,
    If the master ID is the same as the master ID stored in the master table when the client receives information on the master ID from the master change notification means, the master ID stored in the first storage means If the master ID is not the same as the master ID stored in the master table, the master ID changing unit replaces the master ID stored in the first storage unit with the master ID. The distributed computing system according to claim 11, further comprising:
  20.  前記第一の記憶手段が、前記マスターIDが変更されたときに変更前のマスターIDを記憶するマスターテーブルを記憶し、
     前記クライアントに、前記マスター変更通知手段からマスターIDに関する情報を受信したときに、そのマスターIDが前記マスターテーブルに記憶されたマスターIDと同一であれば前記第一の記憶手段に記憶されたマスターIDをそのマスターIDに置換せず、そのマスターIDが前記マスターテーブルに記憶されたマスターIDと同一でなければ前記第一の記憶手段に記憶されたマスターIDをそのマスターIDに置換するマスターID変更手段が設けられていることを特徴とする請求項12に記載の分散コンピューティングシステム。
    The first storage means stores a master table that stores a master ID before the change when the master ID is changed,
    If the master ID is the same as the master ID stored in the master table when the client receives information on the master ID from the master change notification means, the master ID stored in the first storage means If the master ID is not the same as the master ID stored in the master table, the master ID changing unit replaces the master ID stored in the first storage unit with the master ID. The distributed computing system according to claim 12, wherein:
  21.  前記第一の記憶手段が、前記マスターIDが変更されたときに変更前のマスターIDを記憶するマスターテーブルを記憶し、
     前記クライアントに、前記マスター変更通知手段からマスターIDに関する情報を受信したときに、そのマスターIDが前記マスターテーブルに記憶されたマスターIDと同一であれば前記第一の記憶手段に記憶されたマスターIDをそのマスターIDに置換せず、そのマスターIDが前記マスターテーブルに記憶されたマスターIDと同一でなければ前記第一の記憶手段に記憶されたマスターIDをそのマスターIDに置換するマスターID変更手段が設けられていることを特徴とする請求項13に記載の分散コンピューティングシステム。
    The first storage means stores a master table that stores a master ID before the change when the master ID is changed,
    If the master ID is the same as the master ID stored in the master table when the client receives information on the master ID from the master change notification means, the master ID stored in the first storage means If the master ID is not the same as the master ID stored in the master table, the master ID changing unit replaces the master ID stored in the first storage unit with the master ID. The distributed computing system according to claim 13, wherein the distributed computing system is provided.
  22.  前記第一の記憶手段が、前記マスターIDが変更されたときに変更前のマスターIDを記憶するマスターテーブルを記憶し、
     前記クライアントに、前記応答送信手段又は前記マスター変更通知手段からマスターIDに関する情報を受信したときに、そのマスターIDが前記マスターテーブルに記憶されたマスターIDと同一であれば前記第一の記憶手段に記憶されたマスターIDをそのマスターIDに置換せず、そのマスターIDが前記マスターテーブルに記憶されたマスターIDと同一でなければ前記第一の記憶手段に記憶されたマスターIDをそのマスターIDに置換するマスターID変更手段が設けられていることを特徴とする請求項14に記載の分散コンピューティングシステム。
    The first storage means stores a master table that stores a master ID before the change when the master ID is changed,
    When the master ID is the same as the master ID stored in the master table when the client receives information about the master ID from the response transmission means or the master change notification means, the first storage means The stored master ID is not replaced with the master ID, and if the master ID is not the same as the master ID stored in the master table, the master ID stored in the first storage means is replaced with the master ID. 15. The distributed computing system according to claim 14, further comprising: a master ID changing unit that performs the operation.
  23.  前記第一の記憶手段が、前記マスターIDが変更されたときに変更前のマスターIDを記憶するマスターテーブルを記憶し、
     前記クライアントに、前記応答送信手段又は前記マスター変更通知手段からマスターIDに関する情報を受信したときに、そのマスターIDが前記マスターテーブルに記憶されたマスターIDと同一であれば前記第一の記憶手段に記憶されたマスターIDをそのマスターIDに置換せず、そのマスターIDが前記マスターテーブルに記憶されたマスターIDと同一でなければ前記第一の記憶手段に記憶されたマスターIDをそのマスターIDに置換するマスターID変更手段が設けられていることを特徴とする請求項15に記載の分散コンピューティングシステム。
    The first storage means stores a master table that stores a master ID before the change when the master ID is changed,
    When the master ID is the same as the master ID stored in the master table when the client receives information about the master ID from the response transmission means or the master change notification means, the first storage means The stored master ID is not replaced with the master ID, and if the master ID is not the same as the master ID stored in the master table, the master ID stored in the first storage means is replaced with the master ID. 16. The distributed computing system according to claim 15, further comprising: a master ID changing unit that performs the operation.
  24.  前記マスターID変更手段が、前記応答送信手段からマスターIDに関する情報を受信したときに、そのマスターIDが送信元のレプリカのIDと同一である場合、又は、そのマスターIDが前記第一の記憶手段に記憶されたマスターIDと同一である場合には、前記第一の記憶手段に記憶されたマスターIDの置換を行わないことを特徴とする請求項16に記載の分散コンピューティングシステム。 When the master ID changing unit receives information on the master ID from the response transmission unit, if the master ID is the same as the ID of the replica of the transmission source, or the master ID is the first storage unit 17. The distributed computing system according to claim 16, wherein the master ID stored in the first storage unit is not replaced when the master ID is the same as the master ID stored in.
  25.  前記マスターID変更手段が、前記応答送信手段からマスターIDに関する情報を受信したときに、そのマスターIDが送信元のレプリカのIDと同一である場合、又は、そのマスターIDが前記第一の記憶手段に記憶されたマスターIDと同一である場合には、前記第一の記憶手段に記憶されたマスターIDの置換を行わないことを特徴とする請求項17に記載の分散コンピューティングシステム。 When the master ID changing unit receives information on the master ID from the response transmitting unit, if the master ID is the same as the ID of the replica of the transmission source, or the master ID is the first storage unit 18. The distributed computing system according to claim 17, wherein when the master ID is the same as the master ID stored in the first storage unit, the master ID stored in the first storage unit is not replaced.
  26.  前記マスターID変更手段が、前記応答送信手段からマスターIDに関する情報を受信したときに、そのマスターIDが送信元のレプリカのIDと同一である場合、又は、そのマスターIDが前記第一の記憶手段に記憶されたマスターIDと同一である場合には、前記第一の記憶手段に記憶されたマスターIDの置換を行わないことを特徴とする請求項18に記載の分散コンピューティングシステム。 When the master ID changing unit receives information on the master ID from the response transmitting unit, if the master ID is the same as the ID of the replica of the transmission source, or the master ID is the first storage unit 19. The distributed computing system according to claim 18, wherein the master ID stored in the first storage means is not replaced if the master ID is the same as the master ID stored in.
  27.  前記マスターID変更手段が、前記応答送信手段からマスターIDに関する情報を受信したときに、そのマスターIDが送信元のレプリカのIDと同一である場合、又は、そのマスターIDが前記第一の記憶手段に記憶されたマスターIDと同一である場合には、前記第一の記憶手段に記憶されたマスターIDの置換を行わないことを特徴とする請求項19に記載の分散コンピューティングシステム。 When the master ID changing unit receives information on the master ID from the response transmitting unit, if the master ID is the same as the ID of the replica of the transmission source, or the master ID is the first storage unit 20. The distributed computing system according to claim 19, wherein when the master ID is the same as the master ID stored in the first storage means, the master ID stored in the first storage means is not replaced.
  28.  前記マスターID変更手段が、前記応答送信手段からマスターIDに関する情報を受信したときに、そのマスターIDが送信元のレプリカのIDと同一である場合、又は、そのマスターIDが前記第一の記憶手段に記憶されたマスターIDと同一である場合には、前記第一の記憶手段に記憶されたマスターIDの置換を行わないことを特徴とする請求項20に記載の分散コンピューティングシステム。 When the master ID changing unit receives information on the master ID from the response transmitting unit, if the master ID is the same as the ID of the replica of the transmission source, or the master ID is the first storage unit 21. The distributed computing system according to claim 20, wherein the master ID stored in the first storage means is not replaced when the master ID is the same as the master ID stored in.
  29.  前記マスターID変更手段が、前記応答送信手段からマスターIDに関する情報を受信したときに、そのマスターIDが送信元のレプリカのIDと同一である場合、又は、そのマスターIDが前記第一の記憶手段に記憶されたマスターIDと同一である場合には、前記第一の記憶手段に記憶されたマスターIDの置換を行わないことを特徴とする請求項21に記載の分散コンピューティングシステム。 When the master ID changing unit receives information on the master ID from the response transmitting unit, if the master ID is the same as the ID of the replica of the transmission source, or the master ID is the first storage unit 23. The distributed computing system according to claim 21, wherein the master ID stored in the first storage means is not replaced if the master ID is the same as the master ID stored in.
  30.  前記マスターID変更手段が、前記応答送信手段又は前記マスター変更通知手段からマスターIDに関する情報を受信したときに、そのマスターIDが送信元のレプリカのIDと同一である場合、又は、そのマスターIDが前記第一の記憶手段に記憶されたマスターIDと同一である場合には、前記第一の記憶手段に記憶されたマスターIDの置換を行わないことを特徴とする請求項22に記載の分散コンピューティングシステム。 When the master ID changing unit receives information on the master ID from the response transmitting unit or the master change notifying unit, if the master ID is the same as the ID of the replica of the transmission source, or the master ID is 23. The distributed computer according to claim 22, wherein when the master ID is the same as the master ID stored in the first storage unit, the master ID stored in the first storage unit is not replaced. System.
  31.  前記マスターID変更手段が、前記応答送信手段又は前記マスター変更通知手段からマスターIDに関する情報を受信したときに、そのマスターIDが送信元のレプリカのIDと同一である場合、又は、そのマスターIDが前記第一の記憶手段に記憶されたマスターIDと同一である場合には、前記第一の記憶手段に記憶されたマスターIDの置換を行わないことを特徴とする請求項23に記載の分散コンピューティングシステム。 When the master ID changing unit receives information on the master ID from the response transmitting unit or the master change notifying unit, if the master ID is the same as the ID of the replica of the transmission source, or the master ID is 24. The distributed computer according to claim 23, wherein when the master ID is the same as the master ID stored in the first storage unit, the master ID stored in the first storage unit is not replaced. System.
PCT/JP2010/066906 2010-09-29 2010-09-29 Distributed computing system WO2012042607A1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
PCT/JP2010/066906 WO2012042607A1 (en) 2010-09-29 2010-09-29 Distributed computing system
JP2010538664A JPWO2012042607A1 (en) 2010-09-29 2010-09-29 Distributed computing system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2010/066906 WO2012042607A1 (en) 2010-09-29 2010-09-29 Distributed computing system

Publications (1)

Publication Number Publication Date
WO2012042607A1 true WO2012042607A1 (en) 2012-04-05

Family

ID=45892111

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2010/066906 WO2012042607A1 (en) 2010-09-29 2010-09-29 Distributed computing system

Country Status (2)

Country Link
JP (1) JPWO2012042607A1 (en)
WO (1) WO2012042607A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015057696A (en) * 2013-09-16 2015-03-26 アクシス アーベー Managing application data in distributed control systems

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008004569A1 (en) * 2006-07-06 2008-01-10 Nec Corporation Cluster system, server cluster, cluster member, method for making cluster member redundant, and load distributing method
JP2009217765A (en) * 2008-03-13 2009-09-24 Hitachi Ltd Synchronous transmitting method to multiple destination, its implementation system and processing program

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3847364B2 (en) * 1996-02-14 2006-11-22 富士通株式会社 Load share system
JPH10105424A (en) * 1996-09-26 1998-04-24 Okinawa Nippon Denki Software Kk Method for assigning ip address of duplex server
JP4703682B2 (en) * 2008-04-21 2011-06-15 株式会社東芝 Cluster system and program
JP5446157B2 (en) * 2008-07-28 2014-03-19 富士通株式会社 Information processing apparatus, information processing method, and information processing program
JP2010086145A (en) * 2008-09-30 2010-04-15 Hitachi East Japan Solutions Ltd Distributed processing system

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008004569A1 (en) * 2006-07-06 2008-01-10 Nec Corporation Cluster system, server cluster, cluster member, method for making cluster member redundant, and load distributing method
JP2009217765A (en) * 2008-03-13 2009-09-24 Hitachi Ltd Synchronous transmitting method to multiple destination, its implementation system and processing program

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015057696A (en) * 2013-09-16 2015-03-26 アクシス アーベー Managing application data in distributed control systems

Also Published As

Publication number Publication date
JPWO2012042607A1 (en) 2014-02-03

Similar Documents

Publication Publication Date Title
US9641627B2 (en) Techniques for remapping sessions for a multi-threaded application
CN110224871B (en) High-availability method and device for Redis cluster
US20200042410A1 (en) Role designation in a high availability node
TW497071B (en) Method and apparatus for managing clustered computer systems
US11520808B2 (en) System and method for synchronizing data between communication devices in a networked environment without a central server
US9021459B1 (en) High availability in-service software upgrade using virtual machine instances in dual control units of a network device
US7225356B2 (en) System for managing operational failure occurrences in processing devices
US9934242B2 (en) Replication of data between mirrored data sites
CN108234307A (en) Network method, network equipment and non-transitory computer-readable storage media
EP4083786A1 (en) Cloud operating system management method and apparatus, server, management system, and medium
CN108234302A (en) Keep the consistency in the distributed operating system of network equipment
US9367261B2 (en) Computer system, data management method and data management program
CN108234306A (en) Network equipment, network method and computer readable storage medium
US9992058B2 (en) Redundant storage solution
JP2005316993A (en) System and method for sharing object between computers over network
CN105262820A (en) Cluster multi-computer mutual backup method based on Linux operating system
CN102012944B (en) Distributed NOSQL (not only structured query language) database capable of providing replication property
WO2012145963A1 (en) Data management system and method
WO2016078362A1 (en) Method and device for upgrade board by board in dual master control isolation
JP7161008B2 (en) Application redundancy management system and application redundancy management method
WO2015196692A1 (en) Cloud computing system and processing method and apparatus for cloud computing system
US8627412B2 (en) Transparent database connection reconnect
JP6740543B2 (en) Communication device, system, rollback method, and program
WO2012042607A1 (en) Distributed computing system
CN116723077A (en) Distributed IT automatic operation and maintenance system

Legal Events

Date Code Title Description
WWE Wipo information: entry into national phase

Ref document number: 2010538664

Country of ref document: JP

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

Ref document number: 10857822

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

Country of ref document: EP

Kind code of ref document: A1