WO2012056487A1 - 計算機システム - Google Patents
計算機システム Download PDFInfo
- Publication number
- WO2012056487A1 WO2012056487A1 PCT/JP2010/006290 JP2010006290W WO2012056487A1 WO 2012056487 A1 WO2012056487 A1 WO 2012056487A1 JP 2010006290 W JP2010006290 W JP 2010006290W WO 2012056487 A1 WO2012056487 A1 WO 2012056487A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- computer
- computer node
- node
- processing
- input
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/50—Network service management, e.g. ensuring proper service fulfilment according to agreements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/1675—Temporal synchronisation or re-synchronisation of redundant processing components
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/1675—Temporal synchronisation or re-synchronisation of redundant processing components
- G06F11/1687—Temporal synchronisation or re-synchronisation of redundant processing components at event level, e.g. by interrupt or result of polling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/18—Error detection or correction of the data by redundancy in hardware using passive fault-masking of the redundant circuits
- G06F11/182—Error detection or correction of the data by redundancy in hardware using passive fault-masking of the redundant circuits based on mutual exchange of the output between redundant processing components
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/18—Error detection or correction of the data by redundancy in hardware using passive fault-masking of the redundant circuits
- G06F11/183—Error detection or correction of the data by redundancy in hardware using passive fault-masking of the redundant circuits by voting, the voting not being performed by the redundant components
- G06F11/184—Error detection or correction of the data by redundancy in hardware using passive fault-masking of the redundant circuits by voting, the voting not being performed by the redundant components where the redundant components implement processing functionality
Definitions
- the present invention relates to a technique for synchronizing computers in a multiple system in which a plurality of computers are connected by a network.
- FTC fault tolerance computer
- the technology to realize the software level synchronization between multiple computers without using a separate device such as a voter device is provided. It also provides a low overhead synchronization method.
- a computer system having a plurality of computer nodes, each computer node having an external communication unit that receives a processing request, an application unit that executes processing according to the processing request, and a process that is executed by an application unit of each computer node
- a synchronization unit that controls synchronization with another computer node, and an inter-node communication unit that transmits and receives information to and from another computer node.
- the synchronization unit of each computer node adds the identification information of the computer node as the transmission source computer node identification information to the processing request to which the processing request identification information received by the external communication unit is added, and passes through the inter-node communication unit. To other computer nodes.
- the synchronization unit of each computer node receives a processing request to which the identification information of the other computer node is added from another computer node via the inter-node communication unit. Then, the synchronization unit of each computer node has an inter-node communication unit according to a first predetermined criterion based on the number of computer nodes that have received the processing request to which the same processing request identification information is given via the external communication unit. Selects a processing request to be executed by the application unit from the processing request received from another computer node and the processing request received by the external communication unit, and the application unit executes the selected processing request.
- a fault tolerance computer capable of synchronous processing with low overhead can be realized.
- FIG. 10 is a diagram showing an example of a processing sequence of each computer node in case B. It is the figure which illustrated the contents of the external input packet management table of each computer node, the computer node process state table, and the input / output determination process counter in case B according to time. It is the figure which illustrated the content of the communication packet between nodes of each computer node with respect to transmission in case B according to time. It is a figure which shows the content of the communication packet between nodes of each computer node with respect to list preparation in case B according to time.
- FIG. 11 is a diagram illustrating an example of a processing sequence of each computer node in case C. It is a figure which shows an example of the content of the communication packet between nodes of each computer node with respect to transmission between time T1 and between T1 'in case C.
- FIG. 1 It is a figure which shows an example of the content of the communication packet between nodes of each computer node about transmission during time T2 in case C. It is a figure which shows an example of the content of the communication packet between nodes of each computer node about transmission during time T3 in case C. It is a figure which shows an example of the content of the communication packet between nodes of computer node 100A, 100B about the list creation between time T1 in case C. FIG. It is a figure which shows an example of the content of the communication packet between nodes of each computer node about the list preparation between time T2 in case C.
- FIG. It is a figure which shows the content of the computer node structure management table of arbitrary computer nodes in case C according to time. It is a figure which shows an example of the content of the decision output management table of each computer node in case C. It is a figure which shows the example of a whole structure of the system in the case of adding a new computer node.
- the present invention is not limited to the embodiments, and any application examples that meet the idea of the present invention are included in the present invention.
- FIG. 1 is a diagram showing an example of the overall configuration of the majority vote synchronization system.
- the majority synchronization system includes a single synchronization system 1 (also referred to as a fault tolerance computer), a plurality of terminals 2 and an external network 3.
- the synchronization system 1 includes a plurality of computer nodes 100 and an internal network 4.
- the synchronization system 1 receives an external input packet 500 from the terminal 2 via the external network 3.
- a plurality of causal external input packets 500 arrive at the synchronization system 1 while keeping the transmission order.
- the external input packet 500 is transmitted from the terminal 2 to the synchronization system 1 by the multicast method, and a response (processing result or the like) to this is returned from the synchronization system 1 to the terminal 2 by the multicast method.
- a response processing result or the like
- the application executed in the synchronization system 1 does not have an internal state (open state file, network connection, etc.).
- the computer node 100 includes hardware such as a memory 101, a processor 102, a secondary storage device 103, an external communication interface 104 (in the figure, the interface is abbreviated as I / F), and an inter-node communication I / F 105, which are internal buses and the like. Are connected by a communication channel.
- a software program for controlling the computing node 100 includes an application 200, infrastructure software 300, and an operating system 400. Further, the basic software 300 is roughly divided into an external input packet storage unit 301 and an input / output synchronization unit 310.
- the input / output synchronization unit 310 is a processing state storage unit 311, an inter-node communication processing unit 312, an input synchronization unit 313, and a decision input storage unit.
- the plurality of computer nodes 100 in the synchronization system 1 all have the same hardware / software configuration.
- FIG. 1 shows an example of three terminals 2A, 2B, and 2C and three computer nodes 100A, 100B, and 100C, but the number is not particularly limited. The number of applications 200 and the number of types are not limited.
- the terminal 2 and the computer node 100 are connected via the external network 3.
- the external network 3 is connected to the inter-node communication I / F 105.
- the computer nodes 100A, 100B, 100C in the synchronous system 1 are connected via an internal network 4 connected to the inter-node communication I / F.
- the terminal 2 transmits a request to the synchronization system 1 through the external network 3, and the synchronization system 1 processes the request and returns the result to the terminal 2.
- Each computer node 100 in the synchronization system 1 sends a request from the terminal 2 received through the external network 3 and the external communication I / F 104 to other computer nodes 100 via the internal network 4 and the inter-node communication I / F 105. It transmits, processes in cooperation with other computer nodes, processes it, and returns the processing result to the terminal 2.
- the secondary storage device 103 in the computer node 100 stores an application 200, infrastructure software 300, and an operating system 400.
- the processor 102 reads the application 200, the basic software 300, and the operating system 400 from the secondary storage device 103 into the memory 101 and expands them, executes the basic software 300, the application 200, and the operation system 400, and performs external communication I / O. Interrupts from F104 and inter-node communication I / F 105 are also processed.
- operations described as processing executed by the application 200, the operation system 400, and the basic software 300 (including the components thereof) are actually performed by the processor 102 executing these software.
- the external communication I / F 104 transmits and receives packets with the terminal 2 through the external network 3.
- the inter-node communication I / F 105 transmits and receives packets between the computer nodes 100 through the internal network 4.
- the operating system 400 deployed in the memory 101 controls the operation of the base software 300 and the application 200.
- the external input packet storage unit 301 and the input / output synchronization unit 310 of the base software 300 operate as different tasks, and the application 200 is executed from the program processing unit 319 as necessary.
- the external input packet storage unit 301 has an external input packet management table 550, and stores the external input packet 500 received by the external communication I / F 104 in the external input packet management table 550. Details of the external input packet 500 will be described later with reference to FIG. Details of the external input packet management table 550 will be described later with reference to FIG.
- the processing state storage unit 311 holds a computer node processing state table 700, and the processing state of the computer node 100 is recorded. Details of the computer node processing state table 700 will be described later with reference to FIG.
- the inter-node communication processing unit 312 controls communication processing between the computer nodes 100 and transmits / receives the inter-node communication packet 600. Details of the inter-node communication packet 600 will be described later with reference to FIG.
- the input synchronization unit 313 executes processing target input packet selection start processing S113 and processing target input packet selection processing S114. Details of the processing target input packet selection start processing S113 will be described later with reference to FIG. Details of the processing target input packet selection processing S114 will be described later with reference to FIGS.
- the determined input storage unit 314 has a determined input management table 800 and a determined input management table 810, and holds information of the external input packet 500 determined by the input synchronization unit 313 and processed by the input / output synchronization unit 310. Details of the decision input management table 800 will be described later with reference to FIG. Details of the determined input management table 810 will be described later with reference to FIG.
- the input / output decision processing counter 315 holds a counter value at the processing stage executed by the computer node 100. By comparing the input / output determination processing counter 315 with another computer node 100, a cycle shift of processing executed by the computer node 100 is identified.
- the resynchronization detection unit 316 is excluded from the computer node 100 that is newly participating in the synchronization system 1 in which a plurality of computer nodes 100 are cooperatively operated, or the synchronization system 1 that is once cooperatively operated, but attempts to rejoin. An existing computer node 100 is detected and an acceptance process is performed.
- the resynchronization detection unit 316 executes resynchronization detection processing S111. Details of the resynchronization detection processing S111 will be described later with reference to FIG.
- the computer node configuration management table 317 is a table that stores the computer node 100 information that executes the processing target input packet selection processing S114 and contributes to the determination of the external input packet 500 that is the processing target of the selection input packet processing S115. Details of the computer node configuration management table 317 will be described later with reference to FIG.
- the resynchronization request unit 318 is excluded from the computer node 100 that is newly participating in the synchronization system 1 in which a plurality of computer nodes 100 are cooperatively operated or the synchronization system 1 that is once cooperatively operated, but attempts to rejoin. This process is executed by the computer node 100.
- the rhino synchronization request unit 318 executes resynchronization processing S118. Details of the resynchronization processing S118 will be described later with reference to FIG.
- the program processing unit 319 is a process for selecting and starting the application 200 in response to a processing request from the terminal 2.
- Selection input packet processing S115 is executed. Details of the selected input packet processing S115 will be described later with reference to FIG.
- the output synchronization unit 320 makes a majority decision using the execution result of the application 200 of each computer node 100, performs the role of leader and monitor for each computer node 100, and performs the execution result transmission process to the terminal 2.
- the output synchronization unit 320 executes the execution result determination process S116. Details of the execution result determination processing S116 will be described later with reference to FIGS.
- the decision output management table 321 is a table that holds information of the computer node 100 that has contributed to the execution result decision processing S116. Details of the decision output management table 321 will be described later with reference to FIG. ⁇ External input packet (FIG. 2)>
- FIG. 2 is a diagram illustrating an example of the configuration of the external input packet 500.
- the terminal 2 transmits a request command by transmitting the external input packet 500 to the synchronization system 1.
- the transmission source information 501 is information for identifying the transmission source terminal 2.
- the sequence number 502 is information for uniquely identifying each of the plurality of external input packets 500 issued from the transmission source terminal 2. By making the value of the sequence number 502 a value including the identifier of the transmission source terminal 2, it is possible to prevent duplication between the terminals 2.
- the transmission time stamp 503 is the time when the transmission source terminal 2 transmits the external input packet 500.
- the permutation processing necessity flag 504 is information for identifying that there is a series of ordering between a plurality of external input packets 500 transmitted by the transmission source terminal 2.
- the number of permutation processing blocks 505 indicates the number of a plurality of external input packets 500 having the above-described series of orderings.
- the permutation process start number 506 is the sequence number 502 of the external input packet 500 located at the head of the plurality of external input packets 500 having the above-described series of orderings.
- the content 507 includes an application identifier 508 that is information related to the execution of the application 200 and a parameter 509.
- the application identifier 508 is information for specifying the application 200 executed in the computer node 100
- the parameter 509 is parameter information delivered to the application 200.
- FIG. 3 is a diagram showing an example of the configuration of the external input packet management table 550.
- the external input packet management table 550 is a table that stores external input packets 500 that are held in the external input packet storage unit 301 and received by the computer node 100.
- the number of external input packets 500 stored in the external input packet management table 550 is not particularly limited.
- FIG. 4 is a diagram showing a configuration example of the computer node processing state table 700.
- the computer node processing state table 700 is held in the processing state storage unit 311 and stores execution state information of the computer node 100.
- the computer node processing state table 700 includes a processing state identifier 701, additional information 702, Penalty 703, and processing state 704.
- the processing state identifier 701 and the processing state 704 are columns that always hold valid values, but the additional information 702 and Penalty 703 may be valid or invalid depending on the values stored in the processing state identifier 701.
- the processing status identifier 701 is a value that identifies the processing status of the computer node 100. Processing status identifiers include “REJOIN-WAIT”, “REJOIN-REQ”, “REJOIN-ACK”, “JOINED”, “INPUT”, and “OUTPUT”.
- REJOIN-WAIT represents a state in which the relevant computer node 100 is waiting for a resynchronization request from another computer node 100. In this state, “REJOIN-WAIT” is also set in the processing state 704, but the additional information 702 and Penalty 703 do not hold valid values (line 705).
- “REJOIN-REQ” represents a state in which the computer node 100 is requesting resynchronization. In this state, “REJOIN-REQ” is also set in the processing state 704, but the additional information 702 and Penalty 703 do not have valid values.
- “REJOIN-ACK” represents a state in which the computer node 100 has received a resynchronization request from another computer node 100. In this state, “REJOIN-ACK” is also set in the processing state 704, but the additional information 702 and Penalty 703 do not have valid values.
- “JOINED” represents a state in which a response from another computer node 100 is acquired in response to a resynchronization request made by the computer node 100 and the acquired information is reflected in the computer node 100. In this state, “JOINED” is also set in the processing state 704, but the additional information 702 and Penalty 703 do not have valid values.
- “INPUT” represents a state in which the computer node 100 is performing “input synchronization”. “Input synchronization” is processing performed for the application 200 to process the external input packet 500 stored in the external input packet management table 550 of the computer node 100.
- the additional information 702 and Penalty 703 are valid.
- the additional information 702 stores input synchronization step 710 information.
- the input synchronization step 710 is the number of external input packets 500 acquired from the external input packet management table 550.
- the Penalty 703 can take either “0” as an initial value and “1” as a value other than the initial value.
- the computer node 100 is in communication with another computer node 100. This indicates that the user was temporarily not participating in the input synchronization process performed in step 1.
- the processing state 704 holds “BEGIN” or “END”. “BEGIN” represents a state in which the computer node 100 is executing “input synchronization”, and “END” represents a state in which “input synchronization” has been completed (line 709).
- “OUTPUT” represents a state in which the computer node 100 is performing “output synchronization”.
- “Output synchronization” is a “leader” computer that plays a role of making a majority decision with the other computer nodes 100 using the processing result of the application 200, confirming the processing result, and outputting the result to the terminal 2.
- This is a process of determining the node 100 and the “monitor” computer node 100 that monitors the result output state of the “leader”, and outputting the processing result of the application 200 to the terminal 2.
- the additional information 702 has a valid value and holds any value of “OUTPUT”, “LEADER”, and “VOTER”.
- Penalty 703 is an effective column having, for example, “0” as an initial value and “1” as a value other than the initial value. When the value is “1”, the computer node 100 has temporarily not participated in the output synchronization processing. Represents that.
- the computer node 100 executes determination processing of the computer node 100 having the “leader” role and “monitor” role, and processing for sharing the determination result between the other computer nodes 100. “BEGIN” is held in the process state 704 while the process is being executed, and “END” is held in the process state 704 when the role determination process is completed.
- FIG. 5 is a diagram showing an example of processing state transition of the computer node 100.
- the computer node 100 in the REJOIN-WAIT 706 processing state transitions to the REJOIN-ACK 707 processing state and then transitions to the INPUT 709 processing state or directly transitions to the INPUT 709 processing state.
- the computer node 100 in the REJOIN-REQ 705 processing state transitions to the JOINED 708 processing state, and then transitions to the INPUT 709 processing state.
- the computer node 100 in the INPUT 709 processing state transitions to the OUTPUT 711 processing state or the REJOIN-REQ 705 processing state.
- the computer node 100 in the OUTPUT 711 processing state transitions to the REJOIN-WAIT 706 processing state or the REJOIN-REQ 705 processing state.
- FIG. 6 is a diagram showing an example of the configuration of the inter-node communication packet 600.
- the inter-node communication packet 600 is a communication packet used when information communication is performed between the computer nodes 100.
- the inter-node communication packet 600 includes a computer node identifier 601, an input / output determination processing counter 602, a computer node processing state 603, and computer node processing state individual detailed information 604.
- the computer node identifier 601 is information for uniquely identifying the computer node 100 in the synchronization system 1, and the identifier of the computer node 100 that created the inter-node communication packet 600 is set.
- the input / output determination processing counter 602 is the value of the input / output determination processing counter 315 of the computer node 100 that created the inter-node communication packet 600.
- the computer node processing state 603 has the same configuration as the computer node processing state table 700, and holds the processing state of the computer node 100 that created the inter-node communication packet 600.
- the computer node processing state individual detailed information 604 does not have a specific configuration, and information according to the occasional use for transmitting the inter-node communication packet 600 is set.
- FIG. 7 is a diagram showing an example of the configuration of the computer node configuration management table 317.
- the computer node configuration management table 317 is a table that holds information of the computer node 100 that has contributed to the input synchronization processing.
- the computer node configuration management table 317 is composed of columns of an input synchronous computer node total number 317A, a computer node identifier 601, an input / output determination processing counter 602, and a computer node processing state 603.
- FIG. 8 is a diagram showing an example of the configuration of the decision input management table 800.
- the determined input management table 800 holds information on the external input packet 500 determined to be processed by the application 200 as a result of the input synchronization processing.
- the decision input management table 800 has a decision input total number 801, transmission source information 501 column, sequence number 502 column, transmission time stamp 503 column, permutation processing necessity flag 504 column, permutation processing block having the same configuration as the external input packet 500. 505 column, permutation process start number 506 column, application identifier 508 column in contents 507, and parameter 509 column. A plurality of pieces of information of the external input packet 500 can be held, and the number held is held in the total number 801 of determined inputs.
- FIG. 9 is a diagram illustrating an example of the configuration of the determined input management table 810.
- the computer node 100 that has acquired a certain external input packet 500 occupies the majority in the synchronization system 1, the computer node 100 that has become the minority that has not acquired the external input packet 500 also has to The external input packet 500 information is shared, and the application 200 of the computer node 100 is caused to execute processing based on the external input packet.
- the minority computer node 100 may acquire the external input packet 500 via the external network 3 after the application 200 is executed. Therefore, in order to avoid double processing of the external input packet 500, the external input packet 500 that is desired to be excluded from processing is recorded in the determined input management table 810.
- the determined input management table 810 has a determined total number of inputs 811, transmission source information 501 column, sequence number 502 column, transmission time stamp 503 column, permutation processing necessity flag 504 column, permutation having the same configuration as the external input packet 500. It consists of a processing block number 505 columns, a permutation processing start number 506 column, an application identifier 508 column in the content 507, and a parameter 509 column. A plurality of pieces of information of the external input packet 500 can be held, and the holding number is held in the determined input total number 811.
- FIG. 10 is a diagram showing a configuration example of the decision output management table 321.
- the determined output management table 321 is a table that holds information of the computer node 100 that has contributed to the output synchronization processing.
- the determined output management table 321 includes the total number of output computer nodes 321A and rank 321B, a computer node identifier 321C identical to the column included in the inter-node communication packet 600, an input / output determination processing counter 321D, a computer node processing state 321E, It consists of a computer node processing result 321F.
- the rank 321B means a priority order when the computer node 100 serving as the “leader” is selected from the plurality of computer nodes 100, and the computer node processing result 321F holds the execution result of the application 200.
- the determined output management table 321 can hold information of a plurality of computer nodes 100, and the holding number is held in the output synchronous computer node total number 321A.
- FIG. 11 is a flowchart showing an example of the basic software processing.
- the base software 300 is roughly divided into an external input packet storage unit 301 and an input / output synchronization unit 310, which are started from the operating system 400 as different tasks, and both operate independently.
- FIG. 11 shows a flowchart of processing executed by the external input packet storage unit 301 and the input / output synchronization unit 310.
- the external input packet storage unit 301 first detects the reception of the external input packet 500 by the external communication I / F 104 (S101).
- the external input packet storage unit 301 stores the received information of the external input packet 500 in the external input packet management table 550 (S102).
- the external input packet storage unit 301 moves to the execution of external input packet reception (S101) again and repeats the above-described process.
- the input / output synchronization unit 310 first detects another computer node 100 that has requested re-synchronization, and performs synchronization processing for the computer node 100. Details will be described later with reference to FIGS. 25 and 26 (S111).
- the input / output synchronization unit 310 sets an “INPUT” value in the processing state identifier 701 of the computer node processing state table 700 of the processing state storage unit 311.
- an initial value as the input synchronization step 710 is set in the additional information 702, and an initial value is also set in the Penalty 703.
- a value of “2” or more is given as the initial value of the input synchronization step 710, while a value of “0” is given as the initial value of Penalty 703 (S112).
- the input / output synchronization unit 310 performs processing to determine whether or not selection of the external input packet 500 to be processed can be started. Details will be described later with reference to FIG. 12 (S113).
- the input / output synchronization unit 310 performs processing for selecting the external input packet 500 to be processed. Details will be described later with reference to FIGS. 13, 14, 15, and 16 (S114).
- the input / output synchronization unit 310 executes the application 200 and processes the external input packet 500 selected in the processing target input packet selection processing S114. Details will be described later with reference to FIG. 17 (S115).
- the input / output synchronization unit 310 shares the processing result of the external input packet 500 by the application 200 between the computer nodes 100, and plays a “leader” role for outputting the processing result to the terminal 2 and a “monitor” role for monitoring the output state.
- the computer node 100 serving as the “leader” outputs the processing result to the terminal 2. Details will be described later together with FIGS. 18, 19, 20, 21, 22, 23, and 24 (S116).
- FIG. 12 is a flowchart illustrating an example of the process target input packet selection start confirmation process S113 of the input / output synchronization unit 310.
- an inter-node communication packet 600 for selecting an external input packet 500 to be processed from another computer node 100 is sent to the local computer node 100. It is confirmed whether or not it has arrived (S201 and S202). When the inter-node communication packet 600 has arrived (the result of S202 is “Y”), S114 is executed. When the inter-node communication packet 600 has not arrived (the result of S202 is “N”), S203 is executed.
- the input / output synchronization unit 310 confirms the external input packet 500 arriving at the local computer node 100 by referring to the external input packet management table 550.
- the presence of the external input packet 500 can be confirmed (result of S204 is “Y”)
- “INPUT” is set in the processing state identifier 701 of the computer node processing state table 700 in S205, and additional information 702 is input as an input synchronization step 710.
- S114 is executed.
- the input / output synchronization unit 310 performs the resynchronization detection process S111, which is an initial execution process. Execute.
- FIG. 13 is a flowchart illustrating an example of the process target input packet selection process S114 executed by the input / output synchronization unit 310.
- the selected input packet processing S115 is executed in order to preferentially process the information of the external input packet 500.
- step S301 the process starts.
- the input synchronization unit 310 acquires the own computer node 100 state value “INPUT” (S709) from the processing state identifier 701 of the computer node processing state table 700 in the processing state storage unit 311.
- the input synchronization unit 310 acquires the value of the input synchronization step 710 from the additional information 702 of the computer node processing state table 700 in the processing state storage unit 311 (S302).
- the input synchronization unit 310 acquires the value of the input / output determination processing counter 315 (S303).
- the input synchronization unit 310 sets a value in the inter-node communication packet 600.
- the computer node identifier 601 is set with the identifier of the own computer node 100
- the input / output determination processing counter 602 is set with the input / output determination processing counter 315 acquired in S303
- the computer node processing state 603 is acquired with S301 and S302.
- the computer node state information of the computer node processing state table 700 is set (S304).
- the input synchronization unit 310 acquires information on the external input packets 500 for the number of input synchronization steps 710 from the external input packet management table 550 of the external input packet storage unit 301 (S305).
- step S ⁇ b> 305 the input synchronization unit 310 confirms that the acquired external input packet 500 information does not match the external input packet 500 information held in the determined input management table 810 (S ⁇ b> 306). And S307).
- the input synchronization unit 310 in S305 reads the external information from the external input packet management table 550.
- the information of the input packet 500 is deleted (S308), and the information of the same number of external input packets 5000 as the deleted amount is extracted from the external input packet management table 550 (S305).
- step S ⁇ b> 309 the input synchronization unit 310 sets the acquired information of the external input packet 500 in the computer node processing state individual detailed information 604 of the inter-node communication packet 600.
- the input determination packet transmission process S400 is executed.
- FIG. 14 is a flowchart illustrating an example of the input determination packet transmission process S400, which is a part of the process target input packet selection process S114 of the input / output synchronization unit 310.
- the input / output synchronization unit 310 When the input decision packet transmission processing S400 is started, the input / output synchronization unit 310 first sets the value of the processing state 704 of the computer node processing state table 700 in the processing state storage unit 311 to “BEGIN” (at the same time, the own computer node 100 The value of the computer node processing state 603 of the inter-node communication packet 600 whose state is copied is also updated (S401).
- the input / output synchronization unit 310 multicasts the created inter-node communication packet 600 to the other computer node 100 via the inter-node communication I / F 105 (S402).
- the input / output synchronization unit 310 waits until the timeout time, expecting the inter-node communication packet 600 to arrive from another computer node 100 (S403).
- the input / output synchronization unit 310 receives the inter-node communication packet 600 transmitted from the other computer node 100 (S404).
- the input / output synchronization unit 310 combines the inter-node communication packet 600 information created by the own computer node 100 with the inter-node communication packet 600 information of the other computer node 100 received at S404, and creates a “reception result list”. To do.
- the “reception result list” has column information similar to that of the inter-node communication packet 600 (S405).
- FIG. 15 is a flowchart illustrating an example of the input processing state matching process S500, which is a part of the processing target input packet selection process S114 of the input / output synchronization unit 310.
- a process for matching the states in the “input synchronization” process between the computer nodes 100 is performed.
- the synchronization system 1 ensures the reliability of the output information to the terminal 2 by making a majority decision on the calculation result of each computer node 100
- each computer node 100 is an independent computer, so that each computer node is in a different computer node state. It is operating.
- the calculation results of a plurality of computer nodes 100 are required.
- the computer nodes 100 are synchronized once at the input stage of the calculation process.
- the policy of the input processing state matching processing S500 excludes the computer node 100 whose processing cycle is clearly different, but a slight delay in the processing state of the computer node participates in the arithmetic processing and the majority determination of the arithmetic result by correcting this.
- the number of computer nodes 100 is maximized.
- the input / output determination processing counter 315 is first compared with the input / output determination processing counter 602 of the inter-node communication packet 600 received from the other computer node 100 in S404. Then, it is determined whether the values of the input / output determination processing counter 315 of the own / other computer node 100 match. Since the computer node 100 may perform transmission / reception with a plurality of other computer nodes 100, there may be a plurality of received inter-node communication packets 600.
- the “comparison” in S502 classifies the own computer node 100 based on the input / output determination processing counter 315 value and the received one or more input / output determination processing counter 602 values. This is “majority determination” for determining which of the minority groups (S501 and S502).
- the own computer node when three or more groups are generated as a result of classification, when the own computer node is classified into the group to which the most computer nodes belong, the own computer node is “majority”. You may determine with having been classified into. This also applies to various “majority determinations” executed in the subsequent processing.
- the resynchronization processing S118 is executed because the processing cycle is different from that of the majority computer node 100.
- the own computer node 100 compares whether the computer node processing state matches with the other computer node 100. “Comparison” here also means “majority determination”.
- the computer node processing state is compared with the computer node processing state 603 (the configuration column of the computer node processing state 603 is the same as that of the computer node processing state table 700) of the inter-node communication packet 600 received from the other computer node 100 and the own computer node 100. This is performed by comparing the values (processing state identifier 701, processing state 704) of the computer node processing state table 700 (S504 and S505).
- S506 When the own computer node 100 is classified into the minority group in S505 (the result of S505 is “N”), since the computer node processing state does not match the majority computer node processing state, S506 is executed.
- the computer node processing state table 700 (processing state identifier 701, additional information 702, processing state 704) is stored in the majority computer node in order to match the computer node processing state of the own computer node 100 with the majority computer node processing state. It is updated with the processing state value (computer node processing state 603), and Penalty 703 of the computer node processing state table 700 is set (for example, “1” is set).
- each computer node 100 is in a state where sharing of information (reception result list) of the external input packet 500 acquired as a processing candidate by the input / output synchronization unit 310 of each computer node 100 is completed (S508).
- the computer node processing state table 700 value set in the inter-node communication packet 600 and the “reception result list” are multicasted to the other computer node 100 via the inter-node communication I / F 105 (S509).
- the process waits until timeout (S510).
- FIG. 16 is a flowchart showing an example of the input majority vote process S600, which is a part of the process target input packet selection process S114 of the input / output synchronization unit 310.
- an external input packet 500 to be processed by the application 200 is determined.
- the input / output synchronization unit 310 When starting the input majority process S600, the input / output synchronization unit 310 first refers to the “reception result list” and obtains an external input packet 500 (“majority consent input packet”) that is acquired in common by a majority of the computer nodes 100. (S601).
- the majority may be a majority of the number of computer nodes whose information is registered in the computer node configuration management table at the present time, or may be a majority of the number of computer nodes existing in the synchronization system 1. .
- S602 is executed to set the value of the additional information 702 (input synchronization step 710) of the computer node processing state table 700 of the processing state storage unit 311 to “1”. And the execution is shifted to the start position (S300) of the processing target input packet selection process S114.
- the order of the externally input packet 500 information selected in S601 is rearranged.
- the rearranged external input packet 500 is referred to as a “decision input packet”.
- the rearrangement is performed based on the value of the sequence number 502 of the external input packet 500 (S604).
- the information of the external input packet 500 rearranged in S604 is stored in the determined input management table 800 of the determined input storage unit 314, and the determined input total number 801 is updated (S605).
- the own computer node 100 has the same information as the external input packet 500 information acquired by the majority of the computer nodes 100 in S305 in FIG. A majority decision is made as to whether or not the acquisition has been performed (S606).
- the information of the external input packet 500 is set in the determined input management table 810 of the determined input storage unit 314 in S607, The determined input total number 811 is updated, and S609 is activated.
- the information of the external input packet 500 is a processing target of the application 200, but since the local computer node 100 is not information acquired from the external network 3 by itself, the external input packet 500 that arrived later in the later calculation cycle is externally transmitted. There is a possibility of obtaining from the network 3. In order to avoid multiple processing for the same external input packet 500, information of the external input packet 500 is set in the determined input management table 810.
- the decision input packet is set in the computer node processing state individual detailed information 604 of the inter-node communication packet 600 (S610).
- the inter-node communication packet 600 created in S610 is multicasted to the other computer node 100 via the inter-node communication I / F 105 (S611).
- FIG. 17 is a flowchart illustrating an example of the selected input packet process S115, which is a part of the process target input packet selection process S114 of the input / output synchronization unit 310.
- the application 200 is activated to process the “decision input packet”.
- the input / output synchronization unit 310 first extracts the external input packet 500 information from the determined input management table 800 of the determined input storage unit 314 (S701).
- the application 200 to be processed is determined from the application identifier 508 of the content 507, the parameter 509 is added, and the start process (S702-A) of the corresponding application 200 is started. To do.
- the selected input packet process S115 waits for the process of the application 200 to end.
- the application 200 activated in S702 acquires the additional parameter 509 and starts processing (S702-A), executes the application 200 processing (S702-B), and outputs the processing result to the selected input packet processing S115 at the end. (S702-C).
- the selected input packet processing S115 acquires the processing result (S703).
- the selected input packet processing S115 is completed by starting the application 200 according to the information of the external input packet 500 and acquiring the processing result, and executes the next execution result determination processing S116.
- FIG. 18 is a flowchart illustrating an example of the execution result determination process S116 of the input / output synchronization unit 310.
- the processing state identifier 701 of the computer node processing state table 700 of the processing state storage unit 311 is set to “OUTPUT”, and the additional information 702 is set to “OUTPUT”.
- the state 704 is updated to “BEGIN” (S801).
- the input / output synchronization unit 310 confirms the value of the input / output determination processing counter 315 (S802).
- the input / output synchronization unit 310 sets the processing result of the application 200 acquired in step S ⁇ b> 703 in the computer node processing state individual detailed information 604 of the inter-node communication packet 600.
- the computer node processing state table 700 value updated in S801 is set in the computer node processing state 603, and the input / output determination processing counter 315 value acquired in S802 is also set in the input / output determination processing counter 602. (S803)
- the input / output synchronization unit 310 multicasts the inter-node communication packet 600 created in S803 to the other computer node 100 via the inter-node communication I / F 105, so that the processing result of the application 200 is transmitted to the other computer node. Share with 100 (S804).
- the input / output synchronization unit 310 waits until timeout in order to wait for the inter-node communication packet 600 from the other computer node 100 to arrive (S805).
- step S806 the input / output synchronization unit 310 acquires the inter-node communication packet 600 that has arrived from the other computer node 100, and combines the inter-node communication packet 600 of the local computer node 100 in step S807 to create a “reception result list”. To do.
- the input / output synchronization unit 310 uses the column information of the computer node identifier 601, the input / output determination processing counter 602, and the computer node processing state 603 registered in the reception result list (the configuration column is the same as the inter-node communication packet 600). Set in the node configuration management table 317. However, the value of the total computer node 317A at the time of input synchronization is not updated. (S808) When the processing result of the application 200 is exchanged between the computer nodes 100, the execution result determination processing S116 is completed, and the next output processing state matching processing S900 is executed. ⁇ Flowchart of output processing state matching processing (FIG. 19)> FIG. 19 is a flowchart showing an example of the output process state matching process S900, which is a part of the execution result determination process S116 of the input / output synchronization unit 310.
- the output process state matching process S900 a process for matching the states in the “output synchronization” process between the computer nodes 100 is performed.
- the synchronization system 1 ensures the reliability of the output information to the terminal 2 by making a majority decision on the calculation result of each computer node 100
- each computer node 100 is an independent computer, so that each computer node is in a different computer node state. It is operating.
- the policy of the output processing state matching processing S900 excludes the computer node 100 whose processing cycle is clearly different, but the computer node 100 participating in the majority decision of the operation result by correcting this slight delay in the processing state of the computer node. Maximize the number.
- the input / output synchronization unit 310 When the output processing state matching processing S900 is started, the input / output synchronization unit 310 first compares the input / output determination processing counter 315 with the input / output determination processing counter 602 of the inter-node communication packet 600 received from the other computer node 100 in S806. Then, it is determined whether the values of the input / output determination processing counter 315 of the own / other computer node 100 match. Since the computer node 100 may transmit / receive the inter-node communication packet 600 to / from a plurality of other computer nodes 100, the received inter-node communication packet 600 may be plural.
- “Comparison” in S901 means that the own computer node 100 is classified based on the input / output determination processing counter 315 value and the plurality of input / output determination processing counter 602 values, and the own computer node 100 is the majority or minority. This is “majority determination” that determines which class is to be classified (S901 and S902).
- the input / output synchronization unit 310 executes the resynchronization process S118.
- the input / output synchronization unit 310 executes the subsequent S904, assuming that the processing cycles match.
- the own computer node 100 compares whether the computer node processing state matches with the other computer node 100. “Comparison” here also means “majority determination”.
- the computer node processing state is compared with the computer node processing state 603 of the inter-node communication packet 600 received from the other computer node 100 (the configuration column is the same as the computer node processing state table 700) and the computer node processing state table of the own computer node 100. This is done by comparing 700 values (processing status identifier 701, additional information 702, processing status 704).
- the computers of the majority computer node 100 are referred to. It is determined whether or not the node processing state is “LEADER”. When the majority computer node processing state is “LEADER” (the result of S906 is “Y”), the candidate computer that outputs the processing result to the terminal 2 that is performed in the first process in “output synchronization”. Since the node 100 has already been determined, the own computer node 100 operates as a supervisor and the input / output synchronization unit 310 starts the voter process S1300.
- the input / output synchronization unit 310 activates S907. Further, regardless of the value of the additional information 702 of the majority computer node 100, the input / output synchronization unit 310 sets the Penalty 703 of the computer node processing state table 700 of the own computer node 100 (for example, “1” is set). .
- the computer node processing state of the majority computer node 100 may be “VOTER”. However, in S906, only “LEADER” is used as a detection control. When the computer node processing state of the majority computer node 100 is “VOTER”, these majority computer nodes 100 are two terminals ahead of their own computer node processing state “OUTPUT” in “output synchronization” processing. Is in a processing state for outputting a result. After confirming that the processing state of the majority computer node 100 is “VOTER”, even if the processing state of the own computer node 100 is corrected to “VOTER” and switched to “monitor” which is an output monitoring role, the terminal Since the result output to 2 may be missed, the determination in S906 is only “LEADER”. That is, the two-stage synchronization deviation correction from “OUTPUT” to “VOTER” in the “output synchronization” processing stage is not performed.
- the processing status of the majority computer node is compared, and when the additional information 702 is “OUTPUT” (result of S907 is “Y”) and the processing status 704 is “END” (result of S908 is In “Y”), since the processing for matching the processing results of the application 200 between the computer nodes 100 has been completed, the input / output synchronization unit 310 starts the output majority processing S1000 and completes the output processing state matching processing S900. .
- the processing state 704 is not “END” (S908). Is "N"), the input / output synchronization unit 310 waits until timeout (S909), and then re-executes the output process state matching process S900 from the application 200 process result reception process from the other computer node 100 in S806. .
- the input / output synchronization unit 310 activates the next S911.
- the computer node processing state table 700 value set in the inter-node communication packet 600 is multicast to the other computer node 100 via the inter-node communication I / F 105 (S912).
- FIG. 20 is a flowchart showing an example of the output majority process S1000, which is a part of the execution result determination process S116 of the input / output synchronization unit 310.
- the output majority process S1000 the majority determination of the processing result of the application 200 calculated by each computer node 100 is performed.
- the processing result of the application 200 calculated by each computer node 100 in the “reception result list” first exists in common with the majority of the computer nodes 100. It is determined whether or not there is a processing result (referred to as “majority consent output”) (S1001).
- the majority may be a majority of the number of computer nodes currently registered in the computer node configuration table 317, or may be a majority of the number of computer nodes existing in the synchronization system 1.
- S1002 compares the total number of computer nodes 100 in the “reception result list” with the total number of computer nodes 317A at the time of input synchronization in the computer node configuration management table 317. If the total number matches (the result of S1002 is “Y”), it means that there is no two processing results of the application 200 calculated by each computer node 100, and the input / output synchronization unit 310 activates S1003. Then, the processing of the base software 300 is terminated. If the total number does not match (the result of S1002 is “N”), since there is a computer node 100 that has not yet received the processing result of the application 200, the input / output synchronization unit 310 performs the application 200 from the other computer node 100 in S806. The output process state matching process S900 is restarted from the process result reception process.
- the input / output synchronization unit 310 activates S1005 to determine whether the processing result of the application 200 of the own computer node 100 belongs to the majority.
- the input / output synchronization unit 310 completes the output majority process S1000 and executes the next leader selection process S1100.
- FIG. 21 is a flowchart showing an example of the leader selection process S1100, which is a part of the execution result determination process S116 of the input / output synchronization unit 310.
- the leader selection process S 1100 selects a computer node 100 that is a “leader” candidate for outputting a result to the terminal 2.
- the input / output synchronization unit 310 first changes the additional information 702 in the computer node processing state table 700 of the processing state storage unit 311 to “LEADER” and the processing state 704 to “BEGIN” (S1101). ).
- the input / output synchronization unit 310 selects the computer node 100 as a “leader” candidate from the reception result list, determines the ranking, and creates a “leader selection result”.
- the selection and ranking determination method is a method of determining “leader” candidates in the order in which the value of Penalty 703 in the computer node processing state table 700 is 0 and the computer node identifier 601 of the inter-node communication packet 600 has the largest value. Is given. (S1102)
- the input / output synchronization unit 310 acquires the input / output determination processing counter 315 and sets it in the input / output determination processing counter 602 of the inter-node communication packet 600 (S1103).
- the “leader selection result” in S1102 is set in the computer node processing state individual detailed information 604 of the inter-node communication packet 600 (S1104).
- the input / output synchronization unit 310 multicasts the inter-node communication packet 600 created in S1104 to the other computer node 100 via the inter-node communication I / F 105 (S1105).
- the input / output synchronization unit 310 waits until timeout in order to wait for the arrival of the inter-node communication packet 600 from the other computer node 100 (S1106).
- the input / output synchronization unit 310 Upon obtaining the inter-node communication packet 600 from the other computer node 100 in S1107, the input / output synchronization unit 310 combines the inter-node communication packet 600 of the own other computer node 100 in S1108 and creates a “reception result list”.
- the “reception result list” includes a “leader selection result” determined by the own computer node 100.
- step S1109 the input / output synchronization unit 310 reflects the contents of the “reception result list” in the computer node configuration management table 317, completes the leader selection process S1100, and executes the next leader process state matching process S1200.
- FIG. 22 is a flowchart showing an example of the reader process state matching process S1200, which is a part of the execution result determination process S116 of the input / output synchronization unit 310.
- the leader processing state matching processing S1200 performs processing for matching the completion status of the leader selection processing between the computer nodes 100.
- the input / output determination processing counter 315 is initially set, and the input / output determination processing counter 602 of the inter-node communication packet 600 received from the other computer node 100 in S1107.
- a comparison is made to determine whether the values of the input / output determination processing counters 315 of the own and other computer nodes 100 match. Since there may be a plurality of inter-node communication packets 600 received, S1202 performs “majority determination” (S1201 and S1202).
- the input / output synchronization unit 310 executes the resynchronization process S118.
- the input / output synchronization unit 310 executes the subsequent S1204 on the assumption that the processing cycles match.
- the input / output synchronization unit 310 compares the input / output synchronization unit 310 with respect to whether the own computer node 100 and the other computer node 100 match the computer node processing state. “Comparison” here also means “majority determination”.
- the computer node processing state is compared with the computer node processing state 603 of the inter-node communication packet 600 received from the other computer node 100 (the configuration column is the same as the computer node processing state table 700) and the computer node processing state table of the own computer node 100. This is performed by comparing 700 values (processing state identifier 701, additional information 702, processing state 704) (S1204 and S1205).
- the processing result of the application 200 cannot be changed to a state where the processing result of the application 200 can be output to the terminal 2 together with other computer nodes 100.
- the unit 310 leaves the processing cycle and executes the resynchronization process S118.
- the input / output synchronization unit 310 executes the next S1206.
- the input / output synchronization unit 310 changes the processing state 704 of the local computer node processing state table 700 to “END”.
- Each computer node 100 enters a state where the input / output synchronization unit 310 of each computer node 100 has completed sharing the “leader selection result” (S1206).
- the input / output synchronization unit 310 multicasts the inter-node communication packet 600 in which the computer node processing state table 700 value and the “reception result list” are set to the other computer node 100 via the inter-node communication I / F 105 (see FIG. S1207).
- the input / output synchronization unit 310 waits until timeout in order to wait for the arrival of the inter-node communication packet 600 from the other computer node 100 (S1208).
- FIG. 23 is a flowchart illustrating an example of the voter process S1300, which is a part of the execution result determination process S116 of the input / output synchronization unit 310.
- the computer node 100 having the “leader” role and the “monitor” role is determined according to the “leader selection result” determined in the leader selection process S1100.
- the computer node 100 in the “leader” role outputs the “majority agreement output” obtained in the output majority decision process S1000 to the terminal 2, and the computer node 100 in the “monitor” role monitors the output state.
- a new “leader” computer node 100 is determined from the computer nodes 100 serving as “monitor”, and the output of “majority agreement output” to the terminal 2 is re-executed (output) Abnormal processing S1400). Details of the output abnormality processing S1400 will be described later with reference to FIG.
- the input / output synchronization unit 310 starts the voter process S1300, the contents of the “reception result list” of the “leader selection result” transmitted / received in S1207 first, and the configuration column of the determined output management table 321 (total number of computer nodes for output synchronization 321A, The values of the rank 321B, the computer node identifier 321C, the input / output determination processing counter 321D, the computer node processing state 321E), and the output synchronous computer node total number 321A are updated (S1301).
- the input / output synchronization unit 310 determines whether the own computer node 100 is a “leader” based on the rank 321B and the value of the computer node identifier 321C of the determined output management table 321 (S1302).
- the input / output synchronization unit 310 executes S1304 in order to operate as a “leader”. If it is not determined that the local computer node 100 is a “leader” (the result of S1302 is “N”), the input / output synchronization unit 310 executes S1303 in order to operate as a “monitor”.
- the “leader” computer node 100 updates the additional information 702 in the computer node processing state table 700 of the processing state storage unit 311 to “VOTER” and updates the processing state 704 to “LEADER”, thereby performing the “leader” operation. Is started (S1304). Then, the value of the input / output determination processing counter 315 is incremented by “1” (S1305).
- the input / output determination processing counter 315 value updated in S1305 is set in the input / output determination processing counter 602 of the inter-node communication packet 600, and the computer node processing state table 700 value updated in S1304 is set in the computer node processing state 603. (S1306).
- the inter-node communication packet 600 is multicasted to the other computer node 100 via the inter-node communication I / F 105 to notify that the own computer node 100 is a “leader” (S1307). Then, in order to wait for the arrival of the inter-node communication packet 600 from the other computer node 100, the process waits until timeout (S1308).
- the processing result of the application 200 is transmitted to the terminal 2 by multicast via the external communication I / F 104. Since the transmission is based on multicast, the processing result of the application 200 also reaches the external communication I / F 104 of the “monitor” computer node 100 (S1309).
- the “leader” computer node 100 ends the “leader” operation by transmitting to the terminal 2, completes the voter process S1300, and executes the next resynchronization detection process S111.
- the “monitor” computer node 100 updates the additional information 702 in the computer node processing state table 700 of the processing state storage unit 311 to “VOTER” and updates the processing state 704 to “MONITOR”, thereby “monitor”.
- the operation is started (S1311). Then, the value of the input / output determination processing counter 315 is incremented by “1” (S1312).
- the input / output determination processing counter 315 value updated in S1312 is set in the input / output determination processing counter 602 of the inter-node communication packet 600, and the computer node processing state table 700 value updated in S1311 is set in the computer node processing state 603. (S1313).
- the inter-node communication packet 600 is multicasted to the other computer node 100 via the inter-node communication I / F 105 to notify that the own computer node 100 is “monitor” (S1314). Then, in order to wait for the arrival of the inter-node communication packet 600 from the other computer node 100, the process waits until timeout (S1315).
- the processing result transmission state of the application 200 by the “leader” computer node 100 is monitored via the external communication I / F 104 of the “monitor” computer node 100 to determine whether an abnormality has occurred (S1316 and S1317).
- the output abnormality processing S1400 is activated and the processing result transmission of the application 200 to the terminal 2 is retried.
- FIG. 24 is a flowchart illustrating an example of the output abnormality process S1400, which is a part of the execution result determination process S116 of the input / output synchronization unit 310.
- the output abnormality process S1400 is activated when an abnormality is found in the process result transmission of the application 200 to the terminal 2 in S1316 of the boater process S1300.
- the output abnormality process S1400 is a retry process of the boater process S1300, the same process as the boater process S1300 is executed. However, since it is a retry process, neither the “leader” computer node 100 nor the “monitor” computer node 100 changes the value of the input / output determination process counter 315.
- the input / output synchronization unit 310 When the output abnormality process S1400 is started, the input / output synchronization unit 310 first deletes the information of the “leader” computer node 100 (the computer node 100 determined as “leader” in the voter process S1300) from the determined output management table 321 ( S1401).
- the input / output synchronization unit 310 determines whether the own computer node 100 is the next “leader” based on the updated rank 321B and the value of the computer node identifier 321C of the determined output management table 321 (S1402 and S1403). .
- the input / output synchronization unit 310 executes S1405 in order to operate as a “leader”. If it is not determined that the local computer node 100 is a “leader” (the result of S1403 is “N”), the input / output synchronization unit 310 executes S1404 in order to operate as a “monitor”.
- the operation as the “leader” computer node 100 is the “leader” operation of the voter processing S1300 (the processing from S1304 to S1309, and the resynchronization detection processing S111). Is basically the same, but only S1406 and S1305 are different.
- the output abnormality process S1400 the value of the input / output determination process counter 315 is not changed (meaning that the dotted line frame in S1406 is not executed).
- FIG. 25 is a flowchart showing an example of the resynchronization detection process S111 and the resynchronization process S118.
- the input / output synchronization unit 310 of the computer node 100 in the system operating cooperatively as a synchronous system detects the computer node 100 that requests entry into the system of cooperative operation and accepts the entry.
- the resynchronization processing S118 performs processing until the input / output synchronization unit 310 of the computer node 100 outside the system operating cooperatively as a synchronous system requests entry into the system of cooperative operation and completes the entry. Requesting entry into the system of cooperative operation is referred to as “resynchronization request”.
- the resynchronization detection process S111 and the resynchronization process S118 are each a REJOIN-REQ inter-node communication packet (details are shown in FIG. 26), a REJOIN-ACK inter-node communication packet (details are shown in FIG. 26), and a JOINED node.
- the processing proceeds in tune with each other.
- the “REJOIN-REQ inter-node communication packet” shown as an example in FIG. 26 is an example of the inter-node communication packet 600 transmitted by the computer node 100 that makes a resynchronization request.
- “REJOIN-REQ” is set in the processing state identifier 701 and the processing state 704 of the computer node processing state table 700 which is the computer node processing state 603.
- the input / output determination processing counter 602 remains at the initial value (for example, “0”), and the input / output determination processing counter 315 value is not set.
- the “REJOIN-ACK inter-node communication packet” shown as an example in FIG. 26 is an example of the inter-node communication packet 600 that is returned to the request side by the computer node 100 that has received the resynchronization request.
- “REJOIN-ACK” is set in the processing state identifier 701 and the processing state 704 of the computer node processing state table 700 which is the computer node processing state 603.
- the value of the input / output determination processing counter 315 held by the computer node 100 that has received the resynchronization request is set in the input / output determination processing counter 602, and the determined input management table 800 information and the external input packet management table of the external input packet storage unit 301 are set.
- 550 information is set in the computer node processing state individual detailed information 604.
- the “JOINED inter-node communication packet” shown as an example in FIG. 26 indicates that the computer node 100 that has received the “REJOIN-ACK inter-node communication packet” has entered the system that is operating cooperatively as a synchronous system. It is an example of the communication packet 600 between nodes transmitted in order to notify the other computer node 100. “JOINED” is set in the processing state identifier 701 and the processing state 704 of the computer node processing state table 700 that is the computer node processing state 603.
- the input / output synchronization unit 310 When the resynchronization detection process S111 is started, the input / output synchronization unit 310 first updates the input synchronization computer node count 317A in the computer node configuration management table 317 with the output synchronization computer node count 321A in the determined output management table 321 ( S1111).
- the input / output synchronization unit 310 sets the processing state identifier 701 of the computer node processing state table 700 of the processing state storage unit 311 to “REJOIN-WAIT” and sets the processing state 704 to “REJOIN-WAIT”. Then, the processing state for accepting the resynchronization request is entered (S1112).
- the input / output synchronization unit 310 expects the arrival of the “REJOIN-REQ inter-node communication packet” transmitted in S1183 of the resynchronization process S118, which is a resynchronization request from another computer node 100, and times out. Wait until (S1113).
- the input / output synchronization unit 310 activates S112 to end the resynchronization detection process S111 and start the input synchronization process.
- the input / output synchronization unit 310 activates S1115 to respond to the resynchronization request.
- the input / output synchronization unit 310 sets the processing state identifier 701 in the computer node processing state table 700 of the processing state storage unit 311 to “REJOIN-ACK”, and sets the processing state 704 to “REJOIN-ACK”.
- the computer node 100 transitions to a computer node processing state that responds to the resynchronization request.
- the input / output synchronization unit 310 sets the input / output determination processing counter 315 value in the input / output determination processing counter 602 of the inter-node communication packet 600 in order to create a “REJOIN-ACK inter-node communication packet”.
- the node processing state table 700 information is set in the computer node processing state 603 (S1116).
- the determined input management table 800 information and the external input packet management table 550 information of the external input packet storage unit 301 are set in the computer node processing state individual detailed information 604 (S1117).
- the created “REJOIN-ACK inter-node communication packet” is transmitted by multicast via the inter-node communication I / F 105.
- the “REJOIN-ACK inter-node communication packet” is expected to be received in S1185 of the resynchronization process S118 that is being processed by the computer node 100 that has made the resynchronization request.
- the I / O synchronization unit 310 waits until a time-out in the hope that the “JOINED inter-node communication packet” arrives from S11810 of the resynchronization processing S118 of the computer node 100 that has made the resynchronization request (S1119). .
- the input / output synchronization unit 310 updates the input synchronization computer node total number 317A in the computer node configuration management table 317 in S1121, In order to end the resynchronization detection process S111 and start the input synchronization process, S112 is activated.
- the input / output synchronization unit 310 of the computer node 100 that performs the resynchronization request first sets “REJOIN-REQ” in the processing state identifier 701 of the computer node processing state table 700 of the processing state storage unit 311, and the processing state 704 indicates “ By setting and setting “REJOIN-REQ”, a processing state for making a resynchronization request is entered (S1181).
- the input / output synchronization unit 310 sets the computer node processing state table 700 information in the computer node processing state 603 of the inter-node communication packet 600 in order to create a “REJOIN-REQ inter-node communication packet” (S1182). .
- the created “REJOIN-REQ inter-node communication packet” is transmitted by multicast via the inter-node communication I / F 105.
- the “REJOIN-REQ inter-node communication packet” is expected to be received in S1114 of the resynchronization detection process S111 executed by the computer node 100 in the system operating in cooperation. (S1183)
- the input / output synchronization unit 310 waits until timeout in response to expecting a “REJOIN-ACK inter-node communication packet” to be returned in response to the resynchronization request (S1184).
- the input / output synchronization unit 310 activates S1181 to retry the resynchronization request.
- the input / output synchronization unit 310 activates S1186.
- the input / output synchronization unit 310 sets the input / output determination processing counter 602 value of the “REJOIN-ACK inter-node communication packet” in the input / output determination processing counter 315, and matches the processing cycle with the other computer node 100 (S1186). ).
- the input / output synchronization unit 310 acquires the decision input management table 800 information set in the computer node processing state individual detailed information 604 of the “REJOIN-ACK inter-node communication packet” and stores the decision input storage of the own computer node 100.
- the external input packet management table 550 information is acquired and set in the external input packet management table 550 of the external input packet storage unit 301 (S1187).
- the input / output synchronization unit 310 updates the processing state identifier 701 in the computer node processing state table 700 of the processing state storage unit 311 to “JOINED”, updates the processing state 704 to “JOINED”, and updates the own computer node 100. Transitions to the computer node processing state in which resynchronization has been completed (S1188).
- the input / output synchronization unit 310 sets the computer node processing state table 700 information in the computer node processing state 603 of the inter-node communication packet 600 in order to create a “JOINED inter-node communication packet” (S1189).
- the created “JOINED inter-node communication packet” is transmitted by multicast via the inter-node communication I / F 105.
- the “JOINED inter-node communication packet” is expected to be received in S1120 of the resynchronization detection process S111 executed by the computer node 100 that has returned the “REJOIN-ACK inter-node communication packet”.
- S1190 After transmitting the “JOINED inter-node communication packet”, the input / output synchronization unit 310 activates S112 to complete the resynchronization process S118 and start the input synchronization process.
- the synchronization system 1 in the supplementary explanation is composed of three computer nodes 100A, 100B, and 100C, but this is only an example.
- Processing target input packet selection processing S114 (a series of processing up to input majority processing S600) will be supplementarily described by applying two cases.
- the execution result determination process S116 (a series of processes up to the output abnormality process S1400) will be supplementarily described by applying one case.
- the processing start timing of the computer node 100C is delayed from the other computer nodes 100A and 100B (“internal delay”).
- the computer node 100C does not participate in the determination process of the “majority agreement input packet” in the extraction of the information of the first external input packet 500, and The “majority agreement input packet” cannot be determined between the computer nodes 100A and 100B, and the “majority agreement input packet” can be determined by extracting the information of the second external input packet 500, and the subsequent processing is executed.
- case C a case in which the processing start timing of the computer node 100C is delayed is assumed, and the execution result of the result application 200 is shared among the computer nodes 100A, 100B, and 100C.
- the computer node 100C participates in the process to be executed (the computer node processing state is “OUTPUT”) and the processing of S116 to S1400 is executed.
- FIG. 27 shows an example of the processing sequence of each computer node 100A, 100B, 100C.
- Time T1 corresponds to S300 to S602 of the processing target input packet selection processing
- time T2 corresponds to S300 to S509 in the next processing cycle
- time T3 is executed in response to the processing result of time T2 from S601 to S611. Correspond.
- Transmission 901 corresponds to S402, TO902 corresponds to S403, list creation 903 corresponds to S404 to S508, TO904 corresponds to S509, transmission 905 corresponds to S402, TO906 corresponds to S403, list Create 907 corresponds to S404 to S508, TO908 corresponds to S509, majority decision 909 corresponds to S601, status update 910 corresponds to S604 to S609, and transmission 911 corresponds to S611.
- FIG. 28 shows the contents of each computer node's external input packet management table, computer node processing status table, and input / output determination processing counter according to time.
- the column 912 indicates the state of the computer node 100A
- the sequence column SEQ915 indicates the sequence number 502 of the external input packet management table 550
- WS916 indicates the input synchronization step 710 of the computer node processing state table 700
- ST917 indicates the computer node processing.
- the processing status 704 of the status table 700 is shown
- the CNT 918 shows the input / output determination processing counter 315.
- a column 913 indicates the state of the computer node 100B
- a column 914 indicates the state of the computer node 100C
- the configuration column is the same as the information of the computer node A.
- Row 920 shows the state at time T1, row 921 shows the state at time T2, and row 922 shows the state at time T3.
- FIG. 29 shows time-dependent contents of the inter-node communication packet 600 of each computer node for “transmission” shown in FIG.
- the row 940 shows the content of the inter-node communication packet 600 for the transmission 901 at time T1
- the configuration row 943 shows the transmission content of the computer node 100A
- the row 944 shows the transmission content of the computer node 100B
- the row 945 shows the computer node.
- the transmission content of 100C is shown.
- a row 941 shows the content of the inter-node communication packet 600 for the transmission 905 at time T2
- a row 942 shows the content of the inter-node communication packet 600 for the transmission 911 at time T3
- the configuration row is the same as the row 940.
- FIG. 30 shows time-dependent contents of the inter-node communication packet 600 of each computer node for the “list creation” shown in FIG.
- a row 960 indicates the contents of the inter-node communication packet 600 for the list creation 903 at time T1, which represents a “reception result list” obtained by combining the inter-node communication packets 600 transmitted and received in the “transmission” process.
- the row 962 of the configuration line indicates the “transmission” content of the computer node 100A
- the row 963 indicates the “transmission” content of the computer node 100B
- the row 964 indicates the “transmission” content of the computer node 100C.
- a row 961 shows the contents of the inter-node communication packet 600 for the list creation 907 at time T2, and the configuration row is the same as the row 960.
- FIG. 31 shows the hourly contents of the computer node configuration management table 317 of an arbitrary computer node.
- the contents according to time are the same in the computer nodes 100A, 100B, and 100C.
- a row 980 indicates the states of the computer node identifier column 601, the input / output determination processing counter 602 column, and the computer node processing state 603 column of the computer node configuration management table 317 at time T 1.
- the row 981 shows the information held in the computer node configuration management table 317 at time T2, and the row 982 shows the information held in the computer node configuration management table 317 at T3.
- FIG. 32 shows the contents of the decision input management table 800 of each computer node.
- FIG. 33 shows the contents of the determined input management table 810 of the computer node 100B.
- each computer node 100A, 100B, 100C starts processing in the state of row 920 in FIG.
- the computer node 100A holds “2” as WS924, “BEGIN” as ST925, and “C010” as CNT926.
- the computer nodes 100B and 100C have the same value.
- the external input packet information stored in the external input packet management table 550 is different. Specifically, the computer node 100A receives the external input packet 500 having the sequence numbers “2A-1” and “2B-1” and registers the information of the packet in the external input packet management table 550.
- each of the computer nodes 100A, 100B, 100C sets the information of the external input packet 500 acquired (received) from the external network 3 in the computer node processing state individual detailed information 604 of the inter-node communication packet 600. And send it out.
- the contents of the transmitted inter-node communication packet 600 are shown at time T1 in FIG. 29 (line 940).
- the computer node 100A acquires the information of the two external input packets 500 (external input packets of sequence numbers “2A-1” and “2B-1”) according to the value of WS924 and sets it in the inter-node communication packet 600 (line 943). ).
- the computer nodes 100B and 100C also try to acquire information of the two external input packets 500.
- each of the computer nodes 100A, 100B, and 100C is a computer node in S602.
- the value of the input synchronization step 710WS of the processing state table 700 is changed to “3”, and S300 of the next cycle (time T2) is started.
- the state of the computer node configuration management table 317 at this time is shown at time T1 in FIG. 31 (line 980).
- each computer node 100A, 100B, 100C in the start state of time T2 is shown at time T2 in FIG. 28 (line 921).
- the value of WS 924 of computer node 100A has changed to “3” due to the execution of S602 at time T1, but this is the same for computer nodes 100B and 100C.
- a new external input packet 500 arrives during execution of the process at time T1, and the information of the external input packet 500 with the sequence number “2C-1” is stored in the external input packet management table 550 at the computer node 100A at the start of time T2.
- each of the computer nodes 100A, 100B, and 100C tries to acquire the information of the three external input packets 500, sets the information of the acquired external input packets 500 in the inter-node communication packet 600, and transmits it.
- the contents of the transmitted inter-node communication packet 600 are shown at time T2 in FIG. 29 (line 941).
- the change in the value of the input synchronization step 710 is reflected in the additional information 702 of the computer node processing state 603 (frame 936), and information of the three external input packets 500 is set in the computer node processing state individual detailed information 604. (Frame 937).
- each computer node creates a “reception result list” based on the contents of the inter-node communication packet 600 transmitted / received in the transmission 905, and transmits / receives the “reception result list” between the computer nodes 100A, 100B, 100C. To match the contents of the "Reception result list”.
- the contents of the inter-node communication packet 600 transmitted and received at this time are shown at time T2 in FIG. 30 (line 961).
- external input packets having sequence numbers “2B-1” and “2C-1” are determined as “majority agreement input packets” at time T2. 966).
- the process proceeds to a process at time T3.
- each computer node updates the decision input management table 800 and the input / output decision processing counter 315 based on the “majority consent input packet”.
- Each of the computer nodes 100A, 100B, and 100C sets the information of the external input packet 500 having the sequence numbers “2B-1” and “2C-1” in the decision input management table 800.
- the contents of the decision input management table 800 at this time are shown in FIG.
- the information of the external input packet 500 with the sequence numbers “2B-1” and “2C-1” is deleted from the external input packet management table 550.
- the computer node 100B that has not received the external input packet 500 with the sequence number “2B-1” via the external network 3 itself has the sequence number “2B” in the determined input management table 810. ⁇ 1 ”of the external input packet 500 is set.
- the contents of the determined input management table 810 at this time are shown in FIG.
- Each of the computer nodes 100A, 100B, and 100C updates the value of the input / output determination processing counter 315 to “C011”, and this is reflected in the computer node configuration management table 317 (frame 984 in FIG. 31).
- the state update 910 With the state update 910, the states of the computer nodes 100A, 100B, and 100C change as shown at time T3 (row 922) in FIG.
- FIG. 34 shows a processing sequence of the computer nodes 100A, 100B, and 100C in an execution example of internal delay generation in the processing target input packet selection processing.
- the time T1 corresponds to the execution time from S300 to S602 of the processing target input packet selection processing of the computer nodes 100A and 100B, and corresponds to the execution time of S300 to S602 of the processing target input packet selection processing of the time T1 ′ computer node 100C.
- Time T2 corresponds to the execution time of S300 to S509 in the next execution cycle
- time T3 corresponds to the execution time of S601 to S611 executed based on the processing result of time T2.
- Transmission 1001 and transmission 1012 correspond to S402, TO1002 and TO1013 correspond to S403, list creation 1003 corresponds to S404 to S508, TO1004 corresponds to S509, transmission 1005 corresponds to S402, and TO1006 corresponds to S403.
- List creation 1007 corresponds to S404 to S508, TO1008 corresponds to S509, majority decision 1009 corresponds to S601, status update 1010 corresponds to S604 to S609, and transmission 1011 corresponds to S611.
- FIG. 35 shows time-dependent contents of the external input packet management table, the computer node processing state table, and the input / output determination processing counter of each computer node in Case B.
- the configuration of columns and rows is the same as in FIG.
- FIG. 36 shows the hourly contents of the inter-node communication packet 600 transmitted and received in order to exchange the contents of the external input packet 500 received by each computer node between the computer nodes in case B.
- the column configuration and the row configuration of the row 1042 and the row 1043 are the same as those in FIG. 29, but only the row configuration at the time T1 and the time T1 'is different.
- a row 1040 shows the contents of the inter-node communication packet 600 of the computer nodes 100A and 100B for the transmission 1001 at time T1
- a row 1041 shows the contents of the inter-node communication packet 600 of the computer node 100C for the transmission 1012 at time T1'1.
- FIG. 37 shows the hourly contents of the inter-node communication packet 600 transmitted and received in order to exchange the list created by each computer node between the computer nodes in Case B.
- the column configuration and the row configuration of the row 1061 are the same as those in FIG. 30, but the row configuration of the row 1060 is different.
- a row 1060 shows the contents of the inter-node communication packet 600 of the computer nodes 100A and 100B for the list creation 1003 at time T1.
- a blank line in the line 1064 means that the computer node 100C is not performing inter-node communication.
- FIG. 38 shows the hourly contents of the computer node configuration management table 317 of the computer nodes 100A and 100B in case B.
- the column configuration and the row configuration of the rows 1081 and 1082 are the same as those in FIG. 31, but the row configuration of the row 1080 is different.
- a row 1080 represents the contents of the computer node configuration management table 317 at time T1, and indicates that only the information of the computer nodes 100A and 100B is retained.
- a blank row in the row 1085 means that the computer node 100C does not hold information in the computer node configuration management table.
- FIG. 39 shows the hourly contents of the computer node configuration management table 317 of the computer node 100C in case B.
- the column configuration and the row configurations of the row 1091 and the row 1092 are the same as those in FIG. 31, but the row configuration of the row 1090 is different.
- a row 1090 represents the contents of the computer node configuration management table 317 at time T1 'and indicates that only the information of the computer node 100C is retained. Blanks in the lines 1093 and 1094 mean that the computer nodes 100A and 100B do not hold information in the computer node configuration management table.
- FIG. 40 shows the contents of the decision input management table 800 of each computer node in Case B.
- FIG. 41 shows the contents of the determined input management table 810 of the computer node 100B in case B.
- each computer node 100A, 100B, 100C starts processing in the state of the row 1020 in FIG.
- the computer node 100A holds a value of “2” for WS1025, “BEGIN” for ST1026, and “C010” for CNT1027.
- the computer nodes 100B and 100C have the same value.
- the contents of the information stored in the external input packet management table 550 are different, and the computer node 100A holds the information of the external input packets with the sequence numbers “2A-1” and “2B-1” (frame 1031).
- the node 100B holds only the information of the externally input packet with the sequence number “2C-1” (frame 1032).
- “0” is indicated.
- the computer node 100C does not hold the external input packet 500 information (frame 1033).
- the computer nodes 100A and 100B set the acquired information of the external input packet 500 in the computer node processing state individual detailed information 604 of the inter-node communication packet 600 and transmit it.
- the computer node 100C does not transmit 1001 because the external input packet 500 that triggers activation has not arrived at the computer node 100C.
- the state of the transmitted inter-node communication packet 600 is shown at time T1 in FIG. 36 (line 1040).
- the computer node 100A acquires the information of the two external input packets 500 (information of the external input packets whose sequence numbers are “2A-1” and “2B-1”) according to the value of the WS 1025 and sets the information in the inter-node communication packet 600. (Line 1044).
- the computer node 100B also tries to acquire the information of the two external input packets 500. However, since only one external input packet 500 can be acquired, the information (sequence number “2C-1” of the acquired external input packet 500 can be obtained. And the other is set to "0" (line 1045).
- the computer node 100C that has received the external input packet 500 performs transmission 1012 using the sequence number of the external input packet 500.
- the contents of the transmitted inter-node communication packet 600 are shown at time T1 'in FIG. 36 (line 1046).
- the computer nodes 100A and 100B create a “reception result list” and transmit between the computer nodes (list creation 1003).
- the contents of the inter-node communication packet 600 transmitted and received in this list creation 1003 are shown at time T1 in FIG. 37 (line 1060).
- the “reception result list” does not include the information of the external input packet 500 acquired by the computer node 100C (line 1064).
- the computer nodes 100A and 100B both acquire the “reception result list” transmitted in transmission 1012, and determine whether or not there is a “majority agreement input packet” in S601, but the “majority agreement input packet” exists in the frame 1065. Therefore, the computer nodes 100A and 100B change the value of the input synchronization step 710 of the computer node processing state table 700 to “3” in S602, and activate S300 within the time T2.
- the computer node 100C executes TO1013 in anticipation of receiving the inter-node communication packet 600 transmitted by the transmission 1001 from the computer nodes 100A and 100B, but instead uses the “reception result list” transmitted by the list creation 1003. Receive.
- the computer node 100C detects a mismatch in the computer node processing state in S504 and S505, and updates the value of Penalty 703 in the computer node processing state table 700 to “1” in S506. Since there is no “majority agreement input packet” in the “reception result list” received by the computer node 100C from the computer nodes 100A and 100B, the computer node 100C receives the value of the input synchronization step 710 of the computer node processing state table 700 in S602. Is changed to “3”, and S300 within time T2 is activated.
- FIG. 38 shows the contents of the computer node configuration management table 317 of the computer nodes 100A and 100B at time T1 (line 1080).
- the computer nodes 100A and 100B do not hold the information of the computer node 100C in the computer node configuration management table (blank row in row 1085).
- FIG. 39 shows the state of the computer node configuration management table 317 of the computer node 100C at the time T1 ′ (line 1090).
- the computer node 100C does not hold the information of the computer nodes 100A and 100B in the computer node configuration management table (blank rows in the rows 1093 and 1094).
- each computer node 100A, 100B, 100C at the start of time T2 is shown at time T2 in FIG. 35 (line 1029).
- the value of WS 1023 of computer node 100A has changed to “3” due to the execution of S602 at time T1, and this is the same for computer nodes 100B and 100C.
- the computer node 100C holds information of the new external input packet 500 (information of the external input packet with the sequence number “2A-1”) that arrived during the processing at time T1 ′ (frame 1034).
- each of the computer nodes 100A, 100B, and 100C tries to acquire three external input packet 500 information, sets the acquired external input packet 500 information in the inter-node communication packet 600, and transmits it.
- the state of the transmitted communication packet 600 between nodes is shown at time T2 in FIG. 36 (line 1042).
- the inter-node communication packet 600 sent out by the computer node 100C holds the value “1” of Penalty 703 updated in S506 at time T1 ′ (frame 1047).
- a “reception result list” is created from the inter-node communication packet 600 transmitted and received in the transmission 1005, and the contents of the “reception result list” are made consistent among the computer nodes 100A, 100B, and 100C.
- the contents of the inter-node communication packet 600 transmitted and received at this time are shown at time T2 in FIG. 37 (line 1061).
- the external input packet with the sequence number “2A-1” is determined as a “majority agreement input packet” at time T2 (frame 1065 and frame 1066).
- the process proceeds to a process at time T3.
- FIG. 38 shows the state of the computer node configuration management table 317 of the computer nodes 100A and 100B at time T2 (line 1081).
- the computer nodes 100A and 100B reflect the information of the synchronized computer node 100C in the computer node configuration management table (line 1086).
- FIG. 39 shows the state of the computer node configuration management table 317 of the computer node 100C (line 1091).
- the computer node 100C newly holds information on the computer nodes 100A and 100B in the computer node configuration management table (line 1096 and line 1097).
- an external input packet having a sequence number “2A-1” is selected as a “majority agreement input packet”.
- the decision input management table 800 and the input / output decision processing counter 315 are updated based on the “majority consent input packet”.
- Each of the computer nodes 100A, 100B, 100C sets the information of the external input packet 500 having the sequence number “2A-1” in the decision input management table 800.
- the contents of the decision input management table 800 at this time are shown in FIG.
- the information of the external input packet 500 whose sequence number is “2A-1” is deleted from the external input packet management table 550.
- the computer node 100B that has not received the external input packet 500 with the sequence number “2A-1” that has become the “majority agreement input packet” by itself has entered the determined input management table 810 with the external input packet with the sequence number “2A-1”. 500 information is set.
- the contents of the determined input management table 810 at this time are shown in FIG.
- Each of the computer nodes 100A, 100B, and 100C updates the value of the input / output determination processing counter 315 to “C011”, which is reflected in the computer node configuration management table 317 (frame 1087 in FIG. 38 and frame 1098 in FIG. 39). . Due to the status update 910, the status of the computer nodes 100A, 100B, and 100C changes as shown at time T3 (row 1030) in FIG.
- the external input packet 500 information to be processed by the application 200 determined by the computer nodes 100A, 100B, and 100C is transmitted and received, and is shared among the computer nodes 100A, 100B, and 100C.
- the contents of the inter-node communication packet 600 transmitted and received at this time are shown at time T3 (row 1043) in FIG. ⁇ Execution result determination process (Case C)> The description will be made with reference to FIGS. 42, 43, 44, 45, 46, 47, 48 and 49.
- FIG. 42 shows the processing sequence of each computer node.
- Time T1 corresponds to S801 to S913 of the execution result determination process of the computer nodes 100A and 100B, and time T1 'corresponds to S801 to S913 of the execution result determination process of the computer node 100C.
- Time T2 corresponds to S1001 to S1208.
- time T3 corresponds to S1301 to S1308, and time T4 corresponds to processing after S1309.
- the time T3 corresponds to S1301 to S1315
- the time T4 corresponds to the processes after S1316 and S1317.
- Transmission 1101 and transmission 1105 correspond to S804, TO1102 and TO1106 correspond to S805, list creation 1103 corresponds to S806 to S912, and TO1104 corresponds to S913.
- Majority determination 1107 corresponds to S1001 to S1105
- status update 1108 corresponds to S1101 to S1104
- transmission 1109 corresponds to S1105
- TO1110 corresponds to S1106,
- list creation 1119 corresponds to S1107 to S1208.
- the status update 1120 corresponds to S1301 to S1305, the transmission 1121 corresponds to S1306 and S1307, the TO 1122 corresponds to S1308, and the output 1123 corresponds to S1309.
- the status update 1124 corresponds to S1301 to S1312, the transmission 1125 corresponds to S1313 and S1314, the TO 1126 corresponds to S1315, and the monitor 1127 corresponds to the processing after S1316 and S1317.
- FIG. 43 shows the contents of the inter-node communication packet transmitted and received at the transmissions (1101, 1105) at times T1 and T1 ′.
- the computer node processing state individual detailed information 604 holds the calculation result of the application 200 executed on each of the computer nodes 100A, 100B, and 100C.
- a row 1131 shows the contents of the inter-node communication packet 600 transmitted / received in the transmission 1101 at time T1, specifically, a row 1133 in the configuration row shows the transmission contents of the computer node 100A, and a row 1134 shows the transmission contents of the computer node 100B.
- the blank line in row 1135 means that computer node 100C did not transmit at time T1.
- the row 1132 shows the contents of the communication packet 600 transmitted and received in the transmission 1105 at time T1 ′.
- the row 1138 of the configuration row shows the transmission contents of the computer node 100C, but the blank rows of the rows 1136 and 1137 are It means that the computer nodes 100A and 100B are not transmitting.
- FIG. 44 shows the contents of an inter-node communication packet that is transmitted and received between the computer nodes 100A, 100B, and 100C in the transmission 1109 at time T2.
- the computer node processing state individual detailed information 604 holds “leader selection result” determined by each of the computer nodes 100A, 100B, and 100C.
- a row 1140 shows the contents of the inter-node communication packet 600 transmitted and received in the transmission 1109 at time T2, specifically, the row 1141 of the configuration row shows the transmission contents of the computer node 100A, and the row 1142 shows the transmission contents of the computer node 100B.
- the row 1143 shows the transmission contents of the computer node 100C.
- FIG. 45 shows the contents of an inter-node communication packet transmitted and received by each computer node at transmissions 1121 and 1125 at time T3.
- a row 1150 indicates the contents of the inter-node communication packet 600 transmitted and received at the transmission 1121 and the transmission 1125 at time T3. Specifically, the row 1151 of the configuration line indicates the transmission content of the computer node 100A, and the row 1152 indicates the content of the computer node 100B. The transmission contents are shown, and a row 1153 shows the transmission contents of the computer node 100C.
- FIG. 46 shows the contents of inter-node communication packets transmitted and received by the computer nodes 100A and 100B in the list creation 1103 at time T1.
- a row 1160 shows the contents of the inter-node communication packet 600 transmitted / received between the computer nodes 100A and 100B in the list creation 1103 at time T1, which is “reception” obtained by combining the inter-node communication packets 600 transmitted / received in the “transmission” process.
- "Result list” The configuration line 1161 indicates the “transmission” content of the computer node 100A, and the row 1162 indicates the “transmission” content of the computer node 100B.
- the blank line in row 1163 means that the inter-node communication packet received from the computer node 100C is not included in the “reception result list” because the inter-node communication packet 600 has not been received from the computer node 100C.
- FIG. 47 shows the contents of an inter-node communication packet transmitted / received between the computer nodes in the list creation 1119 at time T2.
- a row 1170 indicates the contents of the inter-node communication packet 600 transmitted / received between the respective computer nodes 100A, 100B, 100C in the list creation 1119. "Result list”.
- the row 1171 of the configuration line indicates the “transmission” content of the computer node 100A
- the row 1172 indicates the “transmission” content of the computer node 100B
- the row 1173 indicates the “transmission” content of the computer node 100C.
- FIG. 48 shows the contents of the computer node configuration management table of the arbitrary computer node according to time.
- the contents according to time are the same in the computer nodes 100A, 100B, and 100C.
- a row 1180 shows the states of the computer node identifier 601 column, the input / output determination processing counter 602 column, and the computer node processing state 603 column of the computer node configuration management table 317 at time T1.
- a row 1181 shows information held in the computer node configuration management table 317 at time T2, and a row 1182 shows information held in the computer node configuration management table 317 at T3.
- the total number of computer nodes 317A at the time of input synchronization is a value (“3” in FIG. 48) set when input synchronization is completed, and is not changed during the output synchronization processing.
- FIG. 49 shows the contents of the decision output management table of each computer node of the arbitrary computer node in the execution example of the execution result decision process.
- the computer nodes 100A and 100B set the calculation result “X” of the application 200 by the selected input packet processing S115 in the computer node processing state individual detailed information 604 of the inter-node communication packet 600 and send it.
- the contents of the transmitted inter-node communication packet 600 are shown at time T1 in FIG. 43 (line 1131). Since the start of the execution result determination process is delayed, the computer node 100C does not perform transmission at time T1 (blank row in row 1135).
- the computer nodes 100A and 100B combine the inter-node communication packets 600 transmitted and received in the transmission 1101 to create a “reception result list” and transmit it to the computer nodes 100A, 100B, and 100C.
- the contents of the transmitted internode communication packet 600 are shown in FIG.
- the “reception result list” includes information received from the computer nodes 100A and 100B (rows 1161 and 1162), but does not include information received from the computer node 100C (empty row of the row 1163).
- the computer nodes 100A and 100B acquire both “reception result lists” in the TO 1104, and start the processing of the majority decision 1107.
- the computer node 100C starts execution result determination processing at time T1 ', and sets the computation result “X” of the application 200 in the transmission node 1105 in the computer node processing state individual detailed information 604 of the inter-node communication packet 600 and transmits it.
- the contents of the transmitted inter-node communication packet 600 at time T1 '? Are shown at time T1'? In FIG. 43 (line 1132). Only the computer node 100C is transmitting at time T1'38 (line 1138), and the computer nodes 100A and 100B are not transmitting (blank lines 1137 and 1138).
- the computer node 100C expects to receive the calculation result of the calculation by the application 200 of each computer node from the computer nodes 100A and 100B at TO1106, but receives the “reception result list” transmitted in the list creation 1103 instead. .
- the computer node 100C detects a mismatch between the computer node processing states, and in S906, updates the value of Penalty 703 in the computer node 100Cha computer node processing state table 700 to “1”.
- the computer node 100 ⁇ / b> C creates the “reception result list” by adding the calculation result of its own application 200 to the received “reception result list”, and starts the process of majority determination 1107.
- the computer nodes 100A and 100B make a majority decision on the calculation result of the application 200 based on the “reception result list” shared in the list creation 1103.
- the computer node 100C makes a majority decision based on the “reception result list” acquired and created in TO1106.
- the calculation results of the applications 200 of the computer nodes 100A, 100B, and 100C are all the same “X”, all the computer nodes included in the “reception result list” are determined as “majority”.
- a computer node as a leader candidate is selected from the computer nodes included in the “reception result list”, and ranking of leader selection is performed. Since the “reception result list” held by the computer nodes 100A and 100B includes “computer nodes 100A and 100B”, both select “computer nodes 100A and 100B” in S1102, and select “computer node 100B”. First, “computer node 100A” is ranked second (in this example, ranking is performed in descending order of the value of the computer node identifier).
- the “reception result list” held by the computer node 100C includes “computer nodes 100A, 100B, and 100C”, the “computer nodes 100A, 100B, and 100C” are selected, and the “computer node 100B” is set as one. “Computer node 100A” is ranked second and “Computer node 100C” is ranked third. “Computer node 100C” has the largest computer node identifier value, but “1” is set in Penalty 703, so that it is ranked in the third lowest position.
- each of the computer nodes 100A, 100B, 100C sets the leader selection result of the state communication 1108 in the computer node processing state individual detailed information 604 of the inter-node communication packet 600, and transmits it.
- the contents of the transmitted inter-node communication packet 600 are shown in FIG.
- the computer nodes 100A and 100B transmit without determining the leader selection order of “computer node 100C” (frames 1144 and 1145).
- the computer node 100C adds and transmits its leader selection order (frame 1146).
- the list creation 1119 creates and shares a “reception result list” in which reader selection ranks exchanged between the computer nodes 100A, 100B, and 100C are collated and combined.
- FIG. 47 shows the contents of the inter-node communication packet 600 transmitted / received in the list creation 1119 in which the “reception result list” is set.
- the leader selection order of the computer node 100C is complemented and reflected (frames 1174 and 1175).
- the computer nodes 100A, 100B, and 100C are divided into “leader” and “monitor” based on the leader selection order, and perform different processes.
- the computer node 100B becomes a “leader”, and the computer nodes 100A and 100C become “monitors”.
- the computer node 100B determines itself as “leader” based on the leader selection order, sets “LEADER” in the processing state 704 of the computer node processing state table 700, and changes the value of the input / output determination processing counter 315. To do.
- the computer nodes 100A and 100C are determined to be “monitor”.
- the computer nodes 100A and 100C determine themselves as “monitor” based on the leader selection order, set “MONITOR” in the processing state 704 of the computer node processing state table 700, and the input / output determination processing counter 315. Change the value.
- the computer node 100B is determined as a “leader”.
- the state update 1120 and the state update 1124 reflect the information of the own and other computer nodes and the “leader / monitor” determination result in the computer node configuration management table 317 and the decision output management table 321.
- the contents of the computer node configuration management table 317 at time T3 are shown in time T3 (line 1182) of FIG. 48, and the contents of the decision output management table 321 are shown in FIG.
- each computer node 100A, 100B, 100C transmits its own computer node processing state.
- the contents of the inter-node communication packet 600 transmitted by transmission 1121 and transmission 1125 are shown in FIG.
- the updated input / output determination processing counter 602 value (frame 1154) of each of the computer nodes 100A, 100B, and 100C and the processing state 704 (frame 1155) indicating “reader / monitor” are notified.
- the computer node 100B that is the “leader” executes S1309, and transmits a signal that is the calculation result of the application 200 to the outside.
- the computer nodes 100A and 100C that are “monitors” execute S1316 and S1317 to monitor the signal transmission of the output 1123, thereby determining the normal / abnormality of the external output of the computer node 100B that is the “leader”. Then, the resynchronization detection process S111 or the output abnormality process S1400 is executed.
- FIG. 50 is an example of the overall configuration of the majority synchronization system in the addition of a new computer node according to the embodiment of this invention.
- the synchronization system 1A shows a system of a majority voting synchronization system in operation that is composed of computer nodes 100A, 100B, and 100C.
- the computer node 100D is a computer node newly added to the synchronization system 1A, and holds the same hardware configuration and software configuration as the computer node 100A in FIG.
- the external network 3 connects the computer nodes 100A, 100B, and 100C and the computer node 100D to the terminals 2A, 2B, and 2C, and the internal network 4 connects the computer nodes 100A, 100B, 100C, and the computer node 100D.
- the synchronization system 1B shows a system of a majority synchronization system composed of computer nodes 100A, 100B, 100C, and 100D after the addition of the computer node 100D.
- the input / output synchronization unit 310 of the base software 300 executes the resynchronization process S118, and in S1183, “REJOIN-REQ inter-node communication packet”
- the data is transmitted by multicast to the computer nodes 100A, 100B, 100C connected to the internal network 4.
- the process waits until a timeout occurs in expectation of arrival of the “REJOIN-ACK inter-node communication packet”.
- the computer nodes 100A, 100B, and 100C detect “REJOIN-REQ inter-node communication packet” from the computer node 100D in S1114 of the resynchronization detection process S111, and in S1118, calculate “REJOIN-ACK inter-node communication packet”. Multicast to other computer nodes including the node 100D. Then, it waits until time-out in expectation of arrival of “JOINED inter-node communication packet” from the computer node 100D.
- the computer node 100D Upon receiving the “REJOIN-ACK inter-node communication packet” from the computer nodes 100A, 100B, and 100C, the computer node 100D sends the “REJOIN-REQ inter-node communication packet” to the computer nodes 100A, 100B, and 100C in S11810. S112 is activated to transmit by multicast and start the input synchronization processing.
- the computer nodes 100A, 100B, and 100C confirm the reception of the “REJOIN-REQ inter-node communication packet” from the computer node 100D, the computer nodes 100A, 100B, and 100C activate S112 to start the input synchronization processing.
- the majority voting synchronization system processes the external input packet 500 from the terminals 2-A, 2-B, and 2-C by a system (synchronization system 1-B) including the computer node 100-D.
Abstract
Description
図1は多数決同期システムの全体構成の一例を示す図である。多数決同期システムは一つの同期システム1(フォルトトレランスコンピュータとも呼ぶ)と複数の端末2および外部ネットワーク3により構成される。同期システム1は複数台の計算機ノード100と内部ネットワーク4により構成されている。
同期システム1は外部ネットワーク3を経由して端末2から外部入力パケット500を受信する。端末2から送信される外部入力パケット500の内、因果関係のある複数の外部入力パケット500はその送信順序が守られて同期システム1に到着する。なぜならば、このような外部入力パケット500については、同期システム1が外部入力パケット500を受信した後、当該外部入力パケット500に対する応答を同期システム1から端末2が受け取った後にはじめて、次の外部入力パケット500が端末2から同期システム1に送信されるからである。その他の外部入力パケット500については、端末2における送信順序と同期システム1における受信順序は必ずしも一致しない。従って、順序を守って処理する必要がある外部入力パケット500に関しては、外部入力パケット500に順序を示す情報(タイムスタンプやシーケンス番号)が付与されている。
尚、外部入力パケット500は端末2から同期システム1へマルチキャスト方式で送信され、これに対する応答(処理結果等)は同期システム1から端末2へマルチキャスト方式で返信される。また、同期システム1で実行されるアプリケーションは内部状態(オープン状態のファイル、ネットワークコネクション等)を持たないものとする。
処理状態記憶部311は計算機ノード処理状態テーブル700を保有し、計算機ノード100の処理状態が記録される。計算機ノード処理状態テーブル700の詳細は図4と共に後述する。
<外部入力パケット(図2)>
図2は外部入力パケット500の構成の一例を表す図である。端末2は同期システム1へ外部入力パケット500を送信することで要求命令を伝える。
<外部入力パケット管理テーブル(図3)>
図3は外部入力パケット管理テーブル550の構成の一例を示す図である。外部入力パケット管理テーブル550は外部入力パケット記憶部301内に保持され、計算機ノード100が受信した外部入力パケット500を格納するテーブルである。外部入力パケット管理テーブル550に格納される外部入力パケット500数は特に限定されるものではない。
<計算機ノード処理状態テーブル(図4)>
図4は計算機ノード処理状態テーブル700の構成例を示す図である。計算機ノード処理状態テーブル700は処理状態記憶部311内に保持され、計算機ノード100の実行状態情報を格納する。計算機ノード処理状態テーブル700は処理状態識別子701、付加情報702、Penalty703、処理状態704の列から構成される。
「REJOIN-ACK」は当該計算機ノード100が他の計算機ノード100からの再同期要求を受領した状態を表す。この状態の時、処理状態704にも「REJOIN-ACK」が設定されるが、付加情報702とPenalty703は有効な値を保有しない。(行707)
「JOINED」は当該計算機ノード100が行った再同期要求に対して他の計算機ノード100からの返答を取得し、取得した情報を当該計算機ノード100に反映した状態を表す。この状態の時、処理状態704にも「JOINED」が設定されるが、付加情報702とPenalty703は有効な値を保有しない。(行708)
「INPUT」は当該計算機ノード100が「入力同期」を行っている状態を表す。「入力同期」とは、計算機ノード100の外部入力パケット管理テーブル550に格納されている外部入力パケット500をアプリケーション200で処理するためにおこなわれる処理である。具体的には、各計算機ノード100間で多数決判定を行い、処理対象の外部入力パケット500と、アプリケーション200を実行する計算機ノード100を決定する処理である。この状態の時、付加情報702とPenalty703が有効になる。付加情報702には入力同期ステップ710情報が格納される。入力同期ステップ710は、外部入力パケット管理テーブル550から取得する外部入力パケット500の個数である。Penalty703は、例えば初期値として「0」、初期値以外の値として「1」のいずれかをとることができ、「1」である場合には当該計算機ノード100が他の計算機ノード100との間で行われる入力同期処理に一時不参加であったことを表す。処理状態704には「BEGIN」もしくは「END」が保持される。「BEGIN」は当該計算機ノード100が「入力同期」を実行している状態を表し、「END」は「入力同期」が完了した状態を表す(行709)。
<計算機ノード処理状態遷移図(図5)>
図5は計算機ノード100の処理状態遷移の一例を示す図である。図5中のREJOIN-WAIT705、REJOIN-REQ706、REJOIN-ACK707、JOINED708、INPUT709、OUTPUT711は計算機ノード処理状態テーブル700の処理状態識別子701に設定される識別子と一致する。
<ノード間通信パケット(図6)>
図6はノード間通信パケット600の構成の一例を示す図である。ノード間通信パケット600は計算機ノード100の間で情報通信を行う際に使用される通信パケットである。ノード間通信パケット600は計算機ノード識別子601、入出力決定処理カウンタ602、計算機ノード処理状態603、計算機ノード処理状態個別詳細情報604から構成される。
<計算機ノード構成管理テーブル(図7)>
図7は計算機ノード構成管理テーブル317の構成の一例を示す図である。計算機ノード構成管理テーブル317は入力同期処理に寄与した計算機ノード100の情報を保持するテーブルである。計算機ノード構成管理テーブル317は入力同期時計算機ノード総数317Aと計算機ノード識別子601、入出力決定処理カウンタ602、計算機ノード処理状態603の列から構成される。
<決定入力管理テーブル(図8)>
図8は決定入力管理テーブル800の構成の一例を示す図である。決定入力管理テーブル800は入力同期処理の結果、アプリケーション200の処理対象に決定された外部入力パケット500の情報を保持する。決定入力管理テーブル800は決定入力総数801と、外部入力パケット500と同様の構成である送信元情報501列、シーケンス番号502列、送信タイムスタンプ503列、順列処理要否フラグ504列、順列処理ブロック数505列、順列処理開始番号506列、コンテンツ507内のアプリ識別子508列、パラメタ509列から構成される。外部入力パケット500の情報は複数個保持することが可能で、保持数は決定入力総数801に保持される。
<決定済み入力管理テーブル(図9)>
図9は決定済み入力管理テーブル810の構成の一例を示す図である。入力同期処理では、ある外部入力パケット500を取得した計算機ノード100が同期システム1内で多数派を占める場合に、当該外部入力パケット500を取得していない少数派となった計算機ノード100にも当該外部入力パケット500情報を共有させて当該計算機ノード100のアプリケーション200にも当該外部入力パケットに基づく処理を実行させる。このとき少数派の計算機ノード100は、アプリケーション200実行後に当該外部入力パケット500を外部ネットワーク3を介して自ら取得する可能性がある。従って、外部入力パケット500の二重処理を避けるために、処理対象から外したい外部入力パケット500を決定済み入力管理テーブル810に記録する。
<決定出力管理テーブル(図10)>
図10は決定出力管理テーブル321の構成例を示す図である。決定出力管理テーブル321は出力同期処理に寄与した計算機ノード100の情報を保持するテーブルである。決定出力管理テーブル321は出力同期時計算機ノード総数321Aと順位321B、ノード間通信パケット600内に含まれる列と同一である計算機ノード識別子321C、入出力決定処理カウンタ321D、計算機ノード処理状態321Eと、計算機ノード処理結果321Fから構成される。順位321Bは複数の計算機ノード100から「リーダー」役になる計算機ノード100が選択される際の優先順位を意味し、計算機ノード処理結果321Fはアプリケーション200の実行結果を保持する。
<基盤ソフトウェア処理のフローチャート(図11)>
図11は基盤ソフトウェア処理の一例を示すフローチャートである。基盤ソフトウェア300は外部入力パケット記憶部301と入出力同期部310に大別され、それぞれ異なるタスクとしてオペレーティングシステム400から起動され、両者は独立して動作する。図11は、外部入力パケット記憶部301と入出力同期部310、それぞれによって実行される処理のフローチャートを示す。
<処理対象入力パケット選定開始確認処理のフローチャート(図12)>
図12は、入出力同期部310の処理対象入力パケット選定開始確認処理S113の一例を示すフローチャートである。
<処理対象入力パケット選定処理のフローチャート(図13)>
図13は入出力同期部310が実行する処理対象入力パケット選定処理S114の一例を示すフローチャートである。
<入力決定パケット送信処理のフローチャート(図14)>
図14は、入出力同期部310の処理対象入力パケット選定処理S114の一部分である、入力決定パケット送信処理S400の一例を示すフローチャートである。
以上で入力決定パケット送信処理S400が完了すると、入力処理状態一致処理S500を実行する。
<入力処理状態一致処理のフローチャート(図15)>
図15は、入出力同期部310の処理対象入力パケット選定処理S114の一部分である、入力処理状態一致処理S500の一例を示すフローチャートである。
<入力多数決処理のフローチャート(図16)>
図16は入出力同期部310の処理対象入力パケット選定処理S114の一部分である、入力多数決処理S600の一例を示すフローチャートである。入力多数決処理S600ではアプリケーション200の処理対象となる外部入力パケット500を決定する。
<選定入力パケット処理のフローチャート(図17)>
図17は、入出力同期部310の処理対象入力パケット選定処理S114の一部分である、選定入力パケット処理S115の一例を示すフローチャートである。選定入力パケット処理S115ではアプリケーション200を起動し、「決定入力パケット」を処理する。
S702で起動されたアプリケーション200は付加パラメタ509を取得して処理を開始し(S702-A)、アプリケーション200処理を実行し(S702-B)、終了時には処理結果を選定入力パケット処理S115に出力する(S702-C)。
<実行結果決定処理のフローチャート(図18)>
図18は入出力同期部310の実行結果決定処理S116の一例を示すフローチャートである。
次に入出力同期部310は、S803で作成したノード間通信パケット600をノード間通信I/F105経由で他の計算機ノード100にマルチキャストで送信することで、アプリケーション200の処理結果を他の計算機ノード100との間で共有する(S804)。
計算機ノード100間でのアプリケーション200の処理結果の交換を行ったところで、実行結果決定処理S116を完了し、次の出力処理状態一致処理S900を実行する。
<出力処理状態一致処理のフローチャート(図19)>
図19は入出力同期部310の実行結果決定処理S116の一部分である、出力処理状態一致処理S900の一例を示すフローチャートである。
S905で自計算機ノード100が少数派に分類される場合(S905の結果が「N」)、計算機ノード処理状態が多数派の計算機ノード処理状態と一致していないため、入出力同期部310はS906を実行する。
<出力多数決処理のフローチャート(図20)>
図20は入出力同期部310の実行結果決定処理S116の一部分である、出力多数決処理S1000の一例を示すフローチャートである。出力多数決処理S1000では、各計算機ノード100が算出したアプリケーション200の処理結果の多数決判定を行う。
<リーダー選出処理のフローチャート(図21)>
図21は入出力同期部310の実行結果決定処理S116の一部分である、リーダー選出処理S1100の一例を示すフローチャートである。リーダー選出処理S1100は、端末2への結果出力を行う「リーダー」候補となる計算機ノード100の選出を行う。
次に入出力同期部310は、入出力決定処理カウンタ315を取得しノード間通信パケット600の入出力決定処理カウンタ602に設定する(S1103)。またS1102の「リーダー選出結果」をノード間通信パケット600の計算機ノード処理状態個別詳細情報604に設定する(S1104)。
<リーダー処理状態一致化処理のフローチャート(図22)>
図22は入出力同期部310の実行結果決定処理S116の一部分である、リーダー処理状態一致化処理S1200の一例を示すフローチャートである。リーダー処理状態一致化処理S1200は、計算機ノード100間でリーダー選出処理の完了状態を一致させる処理を行う。
<ボーター処理のフローチャート(図23)>
図23は入出力同期部310の実行結果決定処理S116の一部分である、ボーター処理S1300の一例を示すフローチャートである。
<出力異常処理のフローチャート(図24)>
図24は入出力同期部310の実行結果決定処理S116の一部分である、出力異常処理S1400の一例を示すフローチャートである。出力異常処理S1400は、ボーター処理S1300のS1316で端末2へのアプリケーション200の処理結果送信に異常が認められた場合に起動される。
<再同期検知処理および再同期処理のフローチャート(図25)>
図25は再同期検知処理S111および再同期処理S118の一例を示すフローチャートである。再同期検知処理S111は同期システムとして協調動作している系の中に居る計算機ノード100の入出力同期部310が、協調動作の系への参入を要求する計算機ノード100を検出し、参入を受け入れる処理を行う。再同期処理S118は同期システムとして協調動作している系の外に居る計算機ノード100の入出力同期部310が、協調動作の系への参入を要求し、参入を果たすまでの処理を行う。協調動作の系への参入を要求することを「再同期要求」と称する。
次に入出力同期部310は、再同期要求を行った計算機ノード100の再同期処理S118のS11810から「JOINEDのノード間通信パケット」が到着することを期待して、タイムアウトまでWaitする(S1119)。
次に再同期要求に対する「REJOIN-ACKのノード間通信パケット」が返信されてくることを期待して、入出力同期部310はタイムアウトまでWaitする(S1184)。
「JOINEDのノード間通信パケット」を送信した後、入出力同期部310は再同期処理S118を完了して入力同期処理を開始するためにS112を起動する。
<ケースを想定した実施態様>
以降の説明では、処理対象入力パケット選定処理S114(入力多数決処理S600までの一連の処理)と実行結果決定処理S116(および出力異常処理S1400までの一連の処理)について、想定されるケースを当てはめることで、これまでの説明を補足する。具体的には、計算機ノード処理状態の経過に伴う計算機ノード100の内部に保持される各テーブル状態や計算機ノード100間で送受信されるノード間通信パケット600情報内容の変化を示す。
<外部遅延発生時の処理対象入力パケット選定処理(ケースA)>
ケースAにおける補足説明は図27、図28、図29、図30、図31、図32、図33を用いて行う。
リスト作成903では送信901で送受信したノード間通信パケット600を結合して「受信結果リスト」を作成し、各計算機ノード100A、100B、100C間で送受信することで計算機ノード間で保持する「受信結果リスト」内容を一致化させる。送受信されるノード間通信パケット600の内容は図30の時間T1に示す(行960)。
<処理対象入力パケット選定処理の内部遅延発生の実行例(ケースB)>
説明は図34、図35、図36、図37、図38、図39、図40、図41を用いて行う。
<実行結果決定処理(ケースC)>
説明は図42、図43、図44、図45、図46、図47、図48、図49を用いて行う。
計算機ノード100A、100B、100Cは計算機ノード100Dからの「REJOIN-REQのノード間通信パケット」の受信を確認すると、入力同期処理を開始するためにS112を起動する。
2A、2B、2C:端末
100A、100B、100C:計算機ノード
101:メモリ
102:プロセッサ
103:記憶装置
104:外部通信I/F
105:ノード間通信I/F
200:アプリケーション
300:基盤ソフトウェア
301:外部入力パケット記憶部
310:入出力同期部
400:オペレーティングシステム
500:外部入力パケット
600:ノード間通信パケット
Claims (12)
- 複数の計算機ノードを有する計算機システムであって、
各計算機ノードは、処理要求を受信する外部通信部と、当該処理要求に従って処理を実行するアプリケーション部と、各計算機ノードのアプリケーション部で実行される処理の他の計算機ノードとの間での同期を制御する同期部と、他の計算機ノードとの間で情報の送受信を実行するノード間通信部とを有し、
前記各計算機ノードの前記同期部は、前記外部通信部が受信した処理要求識別情報が付与された処理要求に、当該計算機ノードの識別情報を送信元計算機ノード識別情報として付与して前記ノード間通信部を介して他の計算機ノードに送信し、
前記各計算機ノードの前記同期部は、前記ノード間通信部を介して他の計算機ノードから当該他の計算機ノードの識別情報が付与された処理要求を受信し、
前記各計算機ノードの前記同期部は、同じ処理要求識別情報が付与された処理要求を外部通信部を経由して受信した計算機ノードの数に基づく第一の所定の判断基準に従って、前記ノード間通信部が他の計算機ノードから受信した処理要求と前記外部通信部が受信した処理要求の中から、前記アプリケーション部に実行させる処理要求を選択し、
前記アプリケーション部は選択された前記処理要求を実行することを特徴とする計算機システム。 - 請求項1記載の計算機システムであって、
前記第一の所定の判断基準とは、前記複数の計算機ノードの過半数が同じ処理要求識別情報が付与された処理要求を外部通信部を経由して受信しているか否かであることを特徴とする計算機システム。 - 請求項1記載の計算機システムであって、
前記各計算機ノードの前記同期部は、前記アプリケーション部が選択された前記処理要求を実行した実行結果を、前記ノード間通信部を介して他の計算機ノードに送信し、
前記各計算機ノードの前記同期部は、前記ノード間通信部を介して他の計算機ノードから実行結果を受信し、
前記各計算機ノードの前記同期部は、同じ実行結果を取得した計算機ノードの数に基く第二の所定の判断基準に従って、前記ノード間通信部が他の計算機ノードから受信した実行結果と前記アプリケーション部の実行結果の中から、出力結果を選択し、
前記各計算機ノードの前記同期部は、選択された前記出力結果を前記アプリケーション部から実行結果として受け取っていた場合に、選択された前記出力結果をアプリケーション部の実行結果として送信した他の計算機および自計算機ノードの中から、予め定められた基準に従ってリーダ計算機ノード候補を選出して、当該リーダ計算機ノード候補の識別情報を、前記ノード間通信部を介して他の計算機ノードに送信し、
前記各計算機ノードの前記同期部は、前記ノード間通信部を介して、他の計算機ノードから当該他の計算機ノードが選出したリーダ計算機ノード候補の識別情報を受信し、
同じ識別情報で識別される計算機ノードをリーダ計算機ノード候補として選出した計算機ノードの数に応じて、自計算機ノードが選出した前記リーダ計算機ノード候補をリーダ計算機ノードとするか否かを判断し、
自計算機ノードが選出した前記リーダ計算機ノード候補をリーダ計算機ノードとした場合であって、自計算機ノードが前記リーダ計算機ノードに選出された場合には、選択された前記出力結果を出力することを特徴とする計算機システム。 - 請求項3記載の計算機システムであって、
前記第二の所定の判断基準とは、前記複数の計算機ノードの過半数が、同じ実行結果をアプリケーション処理部から受け取っているか否かであることを特徴とする計算機システム。 - 請求項3記載の計算機システムであって、
前記各計算機ノードの前記同期部は、前記自計算機ノードが選出した前記リーダ計算機ノード候補をリーダ計算機ノードとした場合であって、前記自計算機ノードが前記リーダ計算機ノードに選出されなかった場合に、前記リーダ計算機ノードに選出された他の計算機ノードが出力する出力結果を監視し、
前記リーダ計算機ノードに選出された他の計算機が出力した出力結果が、前記自計算機ノードが選択した出力結果とは異なる場合に、前記自計算機ノードが選出した出力結果と同じ出力結果を選択した他の計算機ノードおよび自計算機ノードの中から別のリーダ計算機ノードを選出することを特徴とする計算機システム。 - 請求項3記載の計算機システムであって、
前記各計算機ノードの前記同期部は、当該同期部が実行する処理の進捗状況を示す処理状態情報を有しており、
前記各計算機ノードの前記同期部は、前記外部通信部が受信した処理要求に更に前記処理状態情報を付与して前記ノード間通信部を介して前記他の計算機ノードに送信し、
前記各計算機ノードの前記同期部は、前記ノード間通信部を介して他の計算機から当該他の計算機の処理状態情報が付与された処理要求を受信し、
前記各計算機ノードの前記同期部は、前記自計算機ノードの処理状態情報と前記他の計算機から受信した処理状態情報とを比較し、前記自計算機ノードの同期部による処理の進捗の遅れが所定の基準以上である場合に、前記アプリケーション部に実行させる処理要求を選択するための処理を実行せずに、前記他の計算機ノードとの間で同期をとるよう再同期要求を当該他の計算機ノードに送信することを特徴とする計算機システム。 - 請求項6記載の計算機システムであって、
前記各計算機ノードの前記同期部は、前記自計算機ノードと同期をとっている計算機ノードの数を管理しており、
前記各計算機ノードの前記同期部は、他の計算機ノードから再同期要求を受信した場合に、前記処理状態情報を当該他の計算機ノードに送信し、当該他の計算機ノードからの応答を受信すると、前記計算機ノードの数を更新することを特徴とする計算機システム。 - 請求項6記載の計算機システムであって、
前記各計算機ノードの前記同期部は、前記自計算機ノードの処理状態情報と前記他の計算機から受信した処理状態情報とを比較し、前記自計算機ノードの同期部による処理の遅れが所定の基準以内である場合には、前記アプリケーション部に実行させる処理要求を選択するための処理を実行することを特徴とするシステム。 - 請求項項3記載の計算機システムであって、
前記各計算機ノードの前記同期部は、当該同期部が実行する処理の進捗状況を示す処理状態情報を有しており、
前記各計算機ノードの前記同期部は、前記アプリケーション部の実行結果に更に前記処理状態情報を付与して前記ノード間通信部を介して前記他の計算機ノードに送信し、
前記各計算機ノードの前記同期部は、前記ノード間通信部を介して他の計算機から当該他の計算機の処理状態情報が付与された実行結果を受信し、
前記各計算機ノードの前記同期部は、前記自計算機ノードの処理状態情報と前記他の計算機から受信した処理状態情報とを比較し、前記自計算機ノードの同期部による処理の進捗の遅れが所定の基準以上である場合に、前記出力結果を選択するための処理を実行することなく、前記他の計算機ノードとの間で同期をとるよう再同期要求を当該他の計算機ノードに送信することを特徴とする計算機システム。 - 請求項9記載の計算機システムであって、
前記各計算機ノードの前記同期部は、前記自計算機ノードと同期をとっている計算機ノードの数を管理しており、
前記各計算機ノードの前記同期部は、他の計算機ノードから再同期要求を受信した場合に、前記処理状態情報を当該他の計算機ノードに送信し、当該他の計算機ノードからの応答を受信すると、前記計算機ノードの数を更新することを特徴とする計算機システム。 - 請求項9記載の計算機システムであって、
前記各計算機ノードの前記同期部は、前記自計算機ノードの処理状態情報と前記他の計算機から受信した処理状態情報とを比較し、前記自計算機ノードの同期部による処理の遅れが所定の基準以内である場合には、前記出力結果を選択するための処理を実行することを特徴とするシステム。 - 請求項3記載の計算機システムであって、
前記各計算機ノードの前記同期部は、前記自計算機ノードと同期をとっている計算機ノードの数を管理しており、
前記各計算機ノードの前記同期部は、他の計算機ノードから前記自計算機ノードと同期をとるための同期要求を受信した場合に、当該同期部の処理の進捗状況を示す処理状態情報を当該他の計算機ノードに送信し、当該他の計算機ノードからの応答を受信すると、前記計算機ノードの数を更新することを特徴とする計算機システム。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012540539A JP5596793B2 (ja) | 2010-10-25 | 2010-10-25 | 計算機システム |
PCT/JP2010/006290 WO2012056487A1 (ja) | 2010-10-25 | 2010-10-25 | 計算機システム |
US13/881,044 US9942107B2 (en) | 2010-10-25 | 2010-10-25 | Computer system including plural computer nodes synchronized with each other |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2010/006290 WO2012056487A1 (ja) | 2010-10-25 | 2010-10-25 | 計算機システム |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2012056487A1 true WO2012056487A1 (ja) | 2012-05-03 |
Family
ID=45993247
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2010/006290 WO2012056487A1 (ja) | 2010-10-25 | 2010-10-25 | 計算機システム |
Country Status (3)
Country | Link |
---|---|
US (1) | US9942107B2 (ja) |
JP (1) | JP5596793B2 (ja) |
WO (1) | WO2012056487A1 (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015045589A1 (ja) * | 2013-09-26 | 2015-04-02 | 株式会社 日立製作所 | フォールトトレラントシステム及びフォールトトレラントシステム制御方法 |
JP2020113032A (ja) * | 2019-01-11 | 2020-07-27 | 富士通株式会社 | 通信装置、通信プログラム、および分散処理方法 |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140075170A1 (en) * | 2012-09-12 | 2014-03-13 | International Business Machines Corporation | Automated firmware voting to enable multi-enclosure federated systems |
CN105808469B (zh) * | 2016-03-21 | 2018-12-25 | 北京小米移动软件有限公司 | 数据处理方法、装置、终端及智能设备 |
DE102016211286A1 (de) * | 2016-06-23 | 2017-12-28 | Siemens Aktiengesellschaft | Verfahren zum synchronisierten Betrieb von Mehrkernprozessoren |
US10671482B2 (en) * | 2017-09-12 | 2020-06-02 | Cohesity, Inc. | Providing consistency in a distributed data store |
US11221612B2 (en) * | 2018-07-27 | 2022-01-11 | Rockwell Automation Technologies, Inc. | System and method of communicating data over high availability industrial control systems |
US11927950B2 (en) | 2018-07-27 | 2024-03-12 | Rockwell Automation Technologies, Inc. | System and method of communicating safety data over high availability industrial control systems |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003067214A (ja) * | 2001-08-27 | 2003-03-07 | Nippon Telegr & Teleph Corp <Ntt> | サーバシステム、仲介装置、クライアントサーバ型システムにおける誤り隠蔽方法 |
JP2009217503A (ja) * | 2008-03-10 | 2009-09-24 | Hitachi Ltd | 計算機システム、計算機制御方法及び計算機制御プログラム |
JP2010113495A (ja) * | 2008-11-06 | 2010-05-20 | Nomura Research Institute Ltd | クラスタシステムおよびクラスタ制御方法 |
JP2010198442A (ja) * | 2009-02-26 | 2010-09-09 | Toshiba Corp | フェイルオーバ機能を持つ分散システムおよび同システムにおけるフェイルオーバ方法 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5802295A (en) * | 1994-09-12 | 1998-09-01 | Canon Kabushiki Kaisha | Information processing method and system therefor |
US6308201B1 (en) * | 1999-04-08 | 2001-10-23 | Palm, Inc. | System and method for sharing data among a plurality of personal digital assistants |
US6553037B1 (en) * | 1999-04-08 | 2003-04-22 | Palm, Inc. | System and method for synchronizing data among a plurality of users via an intermittently accessed network |
JP4167089B2 (ja) * | 2003-01-17 | 2008-10-15 | 日本電信電話株式会社 | サーバシステム及びクライアントサーバ型システムにおける誤り隠蔽方法 |
US7814231B2 (en) * | 2004-05-24 | 2010-10-12 | Apple Inc. | Method of synchronizing between three or more devices |
JP3897047B2 (ja) | 2005-01-31 | 2007-03-22 | 横河電機株式会社 | 情報処理装置および情報処理方法 |
US7542432B2 (en) * | 2005-10-27 | 2009-06-02 | Alcatel Lucent | Resource matched topology database synchronization in communications networks having topology state routing protocols |
US9596301B2 (en) * | 2006-09-18 | 2017-03-14 | Hewlett Packard Enterprise Development Lp | Distributed-leader-election service for a distributed computer system |
US7657769B2 (en) * | 2007-01-08 | 2010-02-02 | Marcy M Scott | N-way synchronization of data |
US7738503B2 (en) * | 2007-02-02 | 2010-06-15 | Palm, Inc. | Multi-way, peer-to-peer synchronization |
US8428065B2 (en) * | 2007-06-18 | 2013-04-23 | International Business Machines Corporation | Group communication system achieving efficient total order and state synchronization in a multi-tier environment |
-
2010
- 2010-10-25 JP JP2012540539A patent/JP5596793B2/ja not_active Expired - Fee Related
- 2010-10-25 WO PCT/JP2010/006290 patent/WO2012056487A1/ja active Application Filing
- 2010-10-25 US US13/881,044 patent/US9942107B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003067214A (ja) * | 2001-08-27 | 2003-03-07 | Nippon Telegr & Teleph Corp <Ntt> | サーバシステム、仲介装置、クライアントサーバ型システムにおける誤り隠蔽方法 |
JP2009217503A (ja) * | 2008-03-10 | 2009-09-24 | Hitachi Ltd | 計算機システム、計算機制御方法及び計算機制御プログラム |
JP2010113495A (ja) * | 2008-11-06 | 2010-05-20 | Nomura Research Institute Ltd | クラスタシステムおよびクラスタ制御方法 |
JP2010198442A (ja) * | 2009-02-26 | 2010-09-09 | Toshiba Corp | フェイルオーバ機能を持つ分散システムおよび同システムにおけるフェイルオーバ方法 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015045589A1 (ja) * | 2013-09-26 | 2015-04-02 | 株式会社 日立製作所 | フォールトトレラントシステム及びフォールトトレラントシステム制御方法 |
JP2015064833A (ja) * | 2013-09-26 | 2015-04-09 | 株式会社日立製作所 | フォールトトレラントシステム及びフォールトトレラントシステム制御方法 |
JP2020113032A (ja) * | 2019-01-11 | 2020-07-27 | 富士通株式会社 | 通信装置、通信プログラム、および分散処理方法 |
JP7181663B2 (ja) | 2019-01-11 | 2022-12-01 | 富士通株式会社 | 通信装置、通信プログラム、および分散処理方法 |
Also Published As
Publication number | Publication date |
---|---|
US20130275626A1 (en) | 2013-10-17 |
JPWO2012056487A1 (ja) | 2014-02-24 |
JP5596793B2 (ja) | 2014-09-24 |
US9942107B2 (en) | 2018-04-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5596793B2 (ja) | 計算機システム | |
JP6382454B2 (ja) | 分散ストレージ及びレプリケーションシステム、並びに方法 | |
US8055711B2 (en) | Non-blocking commit protocol systems and methods | |
KR101503202B1 (ko) | 데이터 동기화 | |
US9934242B2 (en) | Replication of data between mirrored data sites | |
US9154553B2 (en) | Methods, devices and systems for dynamically managing memberships in replicated state machines within a distributed computing environment | |
WO2016150066A1 (zh) | 一种主节点选举方法、装置及存储系统 | |
CN111368002A (zh) | 一种数据处理方法、系统、计算机设备和存储介质 | |
US7738504B1 (en) | Method of establishing and updating master node in computer network | |
CN104615598B (zh) | 元数据服务器的迁移处理方法及装置 | |
US20180027048A1 (en) | File transmission method, apparatus, and distributed cluster file system | |
EP3373514B1 (en) | User terminal grouping method, conference server, and conference system | |
EP3817338B1 (en) | Method and apparatus for acquiring rpc member information, electronic device and storage medium | |
KR20100099319A (ko) | 노드 시스템, 서버 절환 방법, 서버 장치, 및 데이터 인수 방법 | |
EP3713195B1 (en) | Log processing method, related device, and system | |
JPH11212818A (ja) | 分散シミュレーションシステム | |
JP2010152591A (ja) | データベースシステム、データ処理方法及びデータ処理プログラム | |
JP2010086137A (ja) | メッセージキューイング方法及びプログラム | |
CN108881452B (zh) | 一种数据同步的方法、装置及存储介质 | |
EP3404914A1 (en) | Information processing apparatus, information processing system, and information processing method | |
US20090106781A1 (en) | Remote call handling methods and systems | |
CN113127271A (zh) | 交易系统的部署方法、装置、计算机设备和存储介质 | |
CN113032477A (zh) | 基于gtid的长距离数据同步方法、装置及计算设备 | |
CN113037797A (zh) | 数据处理方法及其装置 | |
JP6000608B2 (ja) | レプリケーション実行装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 10858884 Country of ref document: EP Kind code of ref document: A1 |
|
ENP | Entry into the national phase |
Ref document number: 2012540539 Country of ref document: JP Kind code of ref document: A |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
WWE | Wipo information: entry into national phase |
Ref document number: 13881044 Country of ref document: US |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 10858884 Country of ref document: EP Kind code of ref document: A1 |