WO2012032572A1 - 計算機 - Google Patents

計算機 Download PDF

Info

Publication number
WO2012032572A1
WO2012032572A1 PCT/JP2010/005493 JP2010005493W WO2012032572A1 WO 2012032572 A1 WO2012032572 A1 WO 2012032572A1 JP 2010005493 W JP2010005493 W JP 2010005493W WO 2012032572 A1 WO2012032572 A1 WO 2012032572A1
Authority
WO
WIPO (PCT)
Prior art keywords
computer
request
processor
input
task
Prior art date
Application number
PCT/JP2010/005493
Other languages
English (en)
French (fr)
Inventor
有時 ▲高▼田
Original Assignee
株式会社日立製作所
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 株式会社日立製作所 filed Critical 株式会社日立製作所
Priority to EP10856925.2A priority Critical patent/EP2615548B1/en
Priority to JP2012532731A priority patent/JP5707409B2/ja
Priority to PCT/JP2010/005493 priority patent/WO2012032572A1/ja
Publication of WO2012032572A1 publication Critical patent/WO2012032572A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/18Error detection or correction of the data by redundancy in hardware using passive fault-masking of the redundant circuits
    • G06F11/182Error 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/18Error detection or correction of the data by redundancy in hardware using passive fault-masking of the redundant circuits
    • G06F11/183Error 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/184Error 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1675Temporal synchronisation or re-synchronisation of redundant processing components
    • G06F11/1687Temporal synchronisation or re-synchronisation of redundant processing components at event level, e.g. by interrupt or result of polling

Definitions

  • the present invention relates to a computer.
  • clock synchronization In dual systems and fault-tolerant systems, a technology called “clock synchronization” that performs the same processing synchronously (that is, in parallel) by transmitting and receiving the contents of the processor processing steps such as input and output between computers each time it is executed There is.
  • clock synchronization method is to match the operation between computers for each operation step of the processor, and it is necessary to observe and control the processor operation step by dedicated hardware.
  • clock synchronization method is to match the operation between computers for each operation step of the processor, and it is necessary to observe and control the processor operation step by dedicated hardware.
  • the integration and high integration of processors and peripheral chipsets have become remarkable, it has become difficult to observe and control the operation steps for such processors.
  • clock synchronization since the “clock synchronization” method performs synchronization processing between nodes every time the processor inputs and outputs, there is a problem that increasing the processor operating clock increases the overhead due to the synchronization processing.
  • the “virtual computer synchronization” method reproduces the same operation by observing the input to the computer with the accuracy of the processor operation step unit of the virtual computer and reproducing it on another virtual computer. This is based on the premise that the operation at the time of observation and reproduction is the same if the content and timing of the input are the same. However, when the virtual machine includes a plurality of processors, the operation order between the processors differs between the observation time and the reproduction time, and even if the inputs are completely matched, the same operation may not be performed. Therefore, this method cannot be applied when a plurality of processors are used.
  • the computer is connected to at least one other computer.
  • a processor included in a computer processes an input or output request in a task executed by the processor
  • the processor sends a request notification including the identifier of the computer, the identifier of the task, and the identifier of the access target of the request.
  • a request notification transmitted by the other computers is received from the other computers.
  • the processor stores the content of the received request notification in the memory, and based on the content of the request notification stored in the memory, the request to be processed by the processor and the request to be processed by the processor of another computer Compare. Then, based on the comparison result, whether or not the request to be processed by the processor can be processed is determined.
  • FIG. 1 is a configuration diagram of a fault tolerant system 1 of the present embodiment.
  • the fault tolerant system 1 is composed of two or more computer nodes 10 and Voter2.
  • FIG. 1 there are three computer nodes 10-A, 10-B, and 10-C, but the present invention is not limited to the case where there are three computer nodes 10.
  • the fault-tolerant system 1 performs input / output with one or more terminals 3 outside the fault-tolerant system 1 via the voter 2.
  • the Voter 2 has at least a function of distributing the input from the terminal 3 to each computer node 10 and a function of receiving the output from each computer node 10 and transferring the output to the terminal 3 to the terminal 3.
  • the Voter 2 When transferring to the terminal 3, the Voter 2 selects a valid output from the computer nodes 10 by a method such as majority decision and transfers it.
  • a plurality of Voters 2 may exist and have a multiple configuration, or may be implemented as a function of each computer node 10.
  • Each computer node 10 includes at least a memory 11, one or more processors 12, and an inter-node communication interface 15.
  • the computer nodes 10 in the fault tolerant system 1 are connected to each other via an inter-node communication interface 15.
  • the computer node 10 may include a storage device 13 and an external communication interface 14 in the computer node.
  • the inter-node communication interface 15 may also function as the external communication interface 14.
  • the presence or absence of the storage device 13 and the external communication interface 14 is the same in all computer nodes 10 in the fault tolerant system.
  • the memory 11 holds at least the application software 20 and the base software 30.
  • the application 20 is composed of one or more tasks 21.
  • the task 21 constituting the application software 20 is the same in all computer nodes 10 constituting the fault tolerant system 1.
  • the base software 30 is an operating system capable of executing a plurality of tasks 21 and capable of executing a multitask, and includes at least a scheduler 31, an input / output request detection process 32, an input / output determination process 33, an input / output execution process 34, and inter-node communication.
  • a process 35, an input / output request table 36, and a request reception process 38 are provided.
  • the platform software 30 may include an inter-task shared storage 37.
  • FIG. 2 shows the operation of the processor 12 based on the task 21 in the application software 20 and the scheduler 31 in the base software 30.
  • the processor 12 executes the process of the scheduler 31 and selects one to be executed from one or more tasks 21 (S11).
  • the processor 12 starts executing the task 21 (S12).
  • the processor 12 sequentially executes part of the processing described as the task 21 (S13).
  • Some processes in the task 21 call functions of the basic software 30 such as memory allocation / release and input / output processing. Since the entity of such processing exists in the base software 30, it is described in the task 21 as simply issuing a request for a specific function in the request receiving process 38.
  • the processor 12 executes the processing of the scheduler 31 again.
  • Execute and select / execute another task 21 Even if the processing is not a request to the base software 30 or the processing in the base software 30 corresponding to the request is completed immediately, if the running task 21 no longer has the highest priority (S16), the processor 12 again executes the scheduler The processing of 31 is executed to select / execute another task 21.
  • the case where the task 21 being executed is no longer given priority here is, for example, when the continuous execution time of the task 21 being executed exceeds a certain value or when another task 21 having a higher priority can be executed. This is the case.
  • the processing of the task 21 is continued (S13). These operations are executed by each processor 12 when there are a plurality of processors 12 in the computer node 10. The operation of each processor 12 is independent in principle.
  • the operations of the processors 12 cannot be completely matched between the computer nodes 10. For example, there may be a shift in operation timing due to a difference in cache operation within the processor, or a mismatch in operation of the base software 30 due to a difference in internal state of the base software 30.
  • a fatal operation mismatch between the computer nodes 10 related to the application software 20 is not allowed.
  • a fatal operation mismatch is, for example, a situation in which different processing is executed between computer nodes 10 due to condition determination in each task 21 between computer nodes 10, or an application between computer nodes 10.
  • the output regarding the software 20 is different.
  • the present invention adopts the configuration and operation described below in addition to the distribution of external input data to each computer node 10 by Voter2.
  • FIG. 3 shows operations of the task 21-a and the base software 30 when the processor 12 executes an input / output process as a process of the task 21-a.
  • the input / output described here is, for example, reading / writing with respect to a specific area in the inter-task shared storage 37 or the storage device 13 and transmission / reception with a device outside the FT system 1 using the external communication interface 14.
  • the input / output process in the task 21 is described as an issuance of an input / output request 40 to the request reception process 38 (S20). As shown in FIG.
  • the input / output request 40 includes input / output target information 41 including information such as at least an input / output target and an address within the target as required, an input / output type 42 requested in the input / output request 40, and input / output
  • the output data 44 is included only when the input / output request 40 is related to output.
  • the processor 12 detects the input / output request 40 in the input / output request detection process 32 (S21), and registers the input / output request information 55 in the input / output request table 36 (S22).
  • the input / output request table 36 is common in the computer nodes 10, and each processor 12 in the same computer node 10 updates / references the same input / output request table 36.
  • the input / output request table 36 includes at least an input / output target identifier 51, a computer node identifier 52, a task identifier 53, and a sequence number 54.
  • the input / output target identifier 51 is a code uniquely determined from the input / output target information 41 for each unit that can be accessed at a time with respect to the input / output target parts / interfaces that can be described in the input / output target information 41 and addresses above them. Is given.
  • a certain input / output target identifier 51 represents a specific area of the inter-task shared storage 37, and a certain input / output target identifier 51 represents one of the external communication interfaces 14.
  • the sequence number 54 is a sequence number assigned to each input / output request information 55 having the same input / output target identifier 51 with respect to the input / output request information 55 registered in the input / output request table 36 on the computer 10. is there. If the input / output request information 55 is related to different input / output target identifiers 51, the sequence numbers 54 are irrelevant.
  • the processor 12 instructs the inter-node communication interface 15 to transmit the input / output request notification 50 shown in FIG. 6 to the other computer node 10 in the inter-node communication processing 35 (S23).
  • the inter-node communication interface transmits the input / output request notification 50 to all the computer nodes 10 in the fault tolerant system 1.
  • the processor 12 receives the input / output request notification 50 from the other computer node 10 in the inter-node communication processing 35, and updates the input / output request table 36 based on this (S24).
  • the reception of the input / output notification 50 and the update of the input / output request table 36 by the inter-node communication process 35 may be performed asynchronously with the task 12 by the specific processor 12 in the computer node 10.
  • the processor 12 determines success / failure of the input / output execution condition in the input / output determination processing 33 (S25), and suspends execution of input / output as long as it is not satisfied (S26). During this time, the processor 12 may perform other tasks.
  • the computer nodes 10 transmit the input / output request notification 50 to each other and update the input / output request table 36. Based on this, the processor 12 determines whether or not the task can be executed by executing the flow shown in FIG. 7 while referring to the input / output request table 36 in its computer node 10.
  • T ′ When T ′ is present, if the execution order of T and T ′ is different for each computer node 10, the operation order between the computer nodes 10 is inconsistent. Therefore, the operation order must be matched between the computer nodes 10. Therefore, for all T's that satisfy the condition, it is determined for each computer node 10 which of T and T 'first appears in the input / output request table 36. That is, for a plurality of input / output request information 55 having the same input / output target identifier 51 and the same computer node identifier 52, the magnitudes of the sequence numbers 54 of the T input / output request information 55 and the T 'input / output information 56 are compared. To do.
  • the T sequence number 54 is treated as being smaller than that of T ′. Thereafter, in the present embodiment and other embodiments, the order of appearance of the tasks 21 in the input / output request table 36 is similarly determined by comparing the sequence numbers. If an arbitrary T ′ has a large number of computer nodes 10 in which T ′ appears before T, that is, (T sequence number 54)> (T ′ sequence number 54) in the input / output request table 36. If the number of the computer nodes 10 is larger than the number of the computer nodes 10 satisfying (T sequence number 54) ⁇ (T ′ sequence number 54), T ′ is executed in preference to T. Should be.
  • the execution condition for T is not satisfied (S35). For example, when determining the execution condition of the task with the task identifier T3 in FIG. 5, the task with the task identifier T4 appears before the task with the task identifier T3 in the computer node A and the computer node C. Is not established. Conversely, if there is no task T ′ that satisfies the above conditions, the task T satisfies the execution condition (S 34). For example, the task with the task identifier T4 in FIG.
  • a determination condition is set so that the majority is uniquely determined by a method such as treating a set including a specific computer node 10 as a majority. .
  • the determination criterion when the number of computer nodes is the same is the same for all determination processes for comparing the number of computer nodes appearing in the present invention.
  • the input / output process 34 is executed in the input / output execution process 34 (S27).
  • the input / output execution process 34 is a read / write to a specific area in the inter-task shared storage 37 or the storage device 13, a transmission request to the external communication interface 14, or a reception content acquisition request.
  • the input / output execution process 34 may request another processor 12 to execute, or may execute another task 21 until completion.
  • the input / output request table 36 and the input / output request notification 50 include state change presence / absence information 56.
  • the state change presence / absence information 56 is information indicating whether or not a state change occurs when the input / output request is executed. For example, a read request from the storage device 13 or the inter-task shared storage 37 does not change state, and a write request changes state.
  • the transmission / reception request to the external communication interface 14 is not only transmitted but also received when the state of the internal buffer of the external communication interface 14 changes.
  • the state change information 56 is the input / output target information 41 and the input / output type 42 in the input / output request 40 at the time of input / output request information registration (S22) and input / output request notification transmission instruction (S23) in the flow of FIG. Set based on.
  • the flow of FIG. 10 is used as the determination method of the input / output execution condition. This is different from the first embodiment in that it does not wait for all the computer nodes 10 to wait for execution of input / output requests, and in that the execution order of input / output requests not accompanied by a state change is changed.
  • First whether an input / output request of a task T to be determined is waiting for execution in a majority of computer nodes, that is, an input / output having a task identifier 53 identical to the task identifier 53 of the task T in the input / output request table 36. It is determined whether the request information 55 appears for a majority of the computer node identifiers 52 (S41).
  • T ′ waiting to be executed for the same input / output target (S42). If T 'exists, it is determined based on the sequence number 54 which of T and T' appears in the input / output request table 36 as in the first embodiment (S43). However, if T does not appear for a certain computer node 10, it is treated as T 'appearing first regardless of whether T' appears or not. If T has the highest priority in this determination, it is determined that the execution condition for the task T is satisfied as in the first embodiment. For example, in the input / output request table 36 of FIG.
  • the task of the task identifier T5 for the input / output target of the input / output target identifier R3 is not generated in the computer node 10-B in the first embodiment.
  • the execution condition is not satisfied, the execution condition is satisfied in this embodiment.
  • the state change presence / absence 56 of T and T ′ is referred to and it is determined whether the input / output request by those tasks is accompanied by a state change. (S46). If all the states are unchanged, it is determined that the execution condition for T is satisfied (S44). For example, in the input / output request table 36 of FIG.
  • the task with the task identifier T6 for the input / output target with the input / output target identifier R3 satisfies the condition of S44, and therefore the execution condition is satisfied. If T is accompanied by a state change or if any of T 'is accompanied by a state change, it is determined that the execution condition for T is not satisfied (S45). For example, the task of the task identifier T3 with respect to the input / output target of the input / output target identifier R2 does not satisfy the condition of S44 because of the state change, and therefore the execution condition is not satisfied.
  • the first implementation is performed when the operation of a specific task is delayed on a small number of computer nodes 10 or when a large number of input / output requests without state change occur. Tasks can be executed without delay compared to the form.
  • the third embodiment implements a system that can detect and disconnect an abnormality in a part of the computer nodes 10 that constitute the fault-tolerant system 1.
  • the basic software 30 in FIG. 1 is replaced with the one shown in FIG. 11, and the node management processing 61 shown in FIG. 12, the node management table 62 shown in FIG. 13, and the task management table 64 shown in FIG.
  • the flow shown in FIG. 15 is used instead of the flow shown in FIG. 7, the input / output request table 36 shown in FIGS. 5 and 6 and the input / output request notification 50 shown in FIGS. 16 and 17 are used.
  • the base software 30 newly includes a node management process 61, a node management table 62, and a task management table 64.
  • the node management process 61 is based on at least a computer node management information transmission process 71 for instructing the inter-node communication process 35 to transmit a survival monitoring packet and an arbitrary process in the infrastructure software 30.
  • the computer node management information transmission process 71, the computer node management information reception process 72, and the computer node abnormality determination process 73 are periodically executed by an arbitrary processor 12 on each computer node 10. Further, the node management processing 61 is based on the abnormality detected by the computer node abnormality determination processing 73 and other infrastructure software 30, and the other computer node separation processing 74 reflected in the node management table 62 and the transmission of the separation execution notification to the other computer node 10 are transmitted. Is instructed to the inter-node communication interface 15 and is reflected in the node management table 62.
  • the task node detection process 76 detects the task abnormality by comparing the task management table 64 with the input / output request table 36. .
  • the node management table 62 indicates whether or not all the computer nodes 10 in the fault tolerant system 1 are operating synchronously.
  • the node management table 62 includes at least a computer node identifier 52 and synchronization state information 63 as shown in FIG.
  • the input / output determination process 33 and the inter-node communication process 35 only the computer node 10 described as the synchronization state in the synchronization state information 63 is subjected to communication / input / output determination.
  • the other computer node separation processing 74 by the node management processing 61 rewrites the synchronous state information 63 into an asynchronous state for the term of the node identifier 52 corresponding to the target computer node 10 in the node management table 62.
  • the task management table 64 represents the amount of processing performed after each previous input / output request for each task 21 on the computer node 10. As shown in FIG. 14, the task management table 64 includes at least the task identifier 52, processor consumption time information 65, request completion waiting actual time 66, and request completion waiting maximum time 67. These are the total time spent for processing after a previous input / output request for a certain task 21 by a processor 12, the total time for which a task 21 is suspended due to a request completion wait S15, and when a request completion wait S15 occurs. This is the sum of the maximum estimated values of the time required to complete the request for each target request type.
  • the processor 12 When executing the scheduler 31 and the request reception process 38, the processor 12 adds the time during which the task was operated to the processor consumption time information 65 in the former, and in the latter, the time required to execute the request is awaiting completion of the request. The maximum estimated time corresponding to the content of the request is added to the request completion waiting maximum time 67.
  • the task management table 64 may include task operation information 68 that is information for collating whether the operation of the task is the same on each computer node 10.
  • the processor 12 executes the flow shown in FIG. Since this flow is similar to the flow of the first embodiment shown in FIG. 3, only the differences will be described.
  • the processor consumption time 65 is referred to and included in the input / output request table 36 (FIG. 16) and the input / output request notification 50 (FIG. 17).
  • the processor 12 compares the input / output request information 55 of the local computer node 10 and the input / output information 55 of the other computer node 10 related to the task in the input / output request collation (S51).
  • the input / output target identifier 51 for example, in order to determine whether the task 12 has performed a similar operation between the computer nodes 10, such as the state change presence / absence information 56 included in the input / output request information 55 in the second embodiment. If there is useful information, it may also be a target for coincidence determination.
  • the input / output request notification 50 and the input / output request table 36 include the input / output target information 41, the input / output type 42, the input / output size 43, the output data 44 itself, or the output data 44 in the input / output 40 shown in FIG. Such information as the hash value may be included in the input / output request notification as the task operation information 68 to be a target of the match determination.
  • the own computer node separation processing 75 of the node management processing 61 is executed.
  • the node management process 61 includes a task abnormality detection process 76 related to the task 21 on the own computer node 10 based on the input / output request table 36 and the task management table 64.
  • the abnormality detection is to detect a task 21 when the operation is delayed or stopped at the own computer node 10 as compared with other computer nodes 10.
  • the task abnormality detection process 76 is executed by an arbitrary processor 12 on the computer node 10. First, the input / output request information 55 that appears only on the other computer node 10 on the task management table 64 is compared with the information on the corresponding task on the task management table 64.
  • the processor consumption time 65, the request completion waiting time 66, and the request completion waiting maximum time 67 from the input / output request table 36 is compared with the information on the task management table 64.
  • the request completion waiting actual time 66 of the task 21 on the own computer node is If the request completion waiting maximum time 67 on all other computer nodes 10 is longer than a certain value, the task 21 determines that an abnormality has occurred.
  • the own computer node disconnection process 75 is performed.
  • the computer node 10 when a specific computer node 10 stops operating, when a task operation mismatch with another computer node 10 occurs on a specific computer node 10, other computer When the task operation is delayed with respect to the node 10, the computer node 10 can be disconnected from the fault tolerant system 1 and the operation can be continued.
  • one of the computer nodes 10 constituting the fault tolerant system 1 is a leader and the other is a follower.
  • the reader performs input / output based on its own judgment, and the follower performs input / output in the same order as the reader in principle.
  • the base software 30 includes the node management table 62 described in the third embodiment and the followability table 90 shown in FIG.
  • the flow from input / output request detection to input / output processing execution in the base software 30 is as shown in FIG. 18 for the reader and FIG. 19 for the follower.
  • an I / O request notification (C1 in FIG. 18, 19 flow) is sent from the reader to all followers, and a follow-up notification from each follower to the leader and other followers (in FIG. 18, 19 flow).
  • Communication is performed in the order of transmission of C2).
  • the processor 12 detects an input / output request in the input / output request detection process 32 (S22) and registers it in its own input / output request table 36 (S22), it is the same as in the first and second embodiments. is there.
  • an instruction to send an input / output request notification is issued in the inter-node communication process 35 (S63, C1).
  • the inter-node communication interface 15 is instructed to receive the follow-up permission / notice 80 from the follower in the inter-node communication processing 35 in parallel.
  • the followability notification 80 is received (C2), it is registered in the followability table 90 shown in FIG.
  • the number of leaders and computer nodes 10 that can follow is the majority, or the number of computer nodes 10 that cannot follow.
  • the operation of the task 21 is suspended immediately before the actual processing of the input / output processing.
  • the actual process of the input / output process is, for example, a process of rewriting the contents of the inter-task shared storage 37 or the storage device 13, or a process of transferring the contents of the shared memory 37 or the storage device 13, or the inter-node communication interface 15 This is a process that affects other tasks 21 and the outside of the apparatus, such as data acquisition / data transmission execution process.
  • the processor 12 detects an input / output request in the input / output request detection process 32 (S22) and registers it in its own input / output request table 36 (S22). After this, the inter-node communication processing 35 is instructed to receive an input / output request notification from the reader (C1) (S64). Next, in the input / output determination process 33, it is determined whether the input / output start condition is satisfied (S65).
  • the input / output start condition is that an input / output request notification has been received from the reader for the task 21, that is, input / output request information 55 having the same task identifier 53 and reader computer node identifier 52 in the input / output request table 36. Whether or not there is.
  • the inter-node communication interface 15 is instructed to notify the leader and other followers that the follow-up is possible by the follow-up availability notification 80 shown in FIG. 20 (C2).
  • S68 input / output is started (S69). If the input / output start condition is not satisfied, it is determined whether or not the follower can follow the input / output of the reader (S66).
  • the case where the follow-up is possible is a case where the execution of the input / output request is not delayed for a certain time or more.
  • the input / output start condition is again determined through the input / output request notification reception instruction (S64) (S65).
  • the inter-node communication interface 15 is instructed to receive the follow-up availability notification 80 from another follower (C2) in the inter-node communication processing 35 in parallel.
  • the followability notification 80 is received, it is registered in the followability table 90 shown in FIG.
  • the number of readers and computer nodes 10 that can be followed in the followability table 90 is the majority, or the number of computer nodes 10 that cannot be followed. Until the majority becomes the majority, the operation of the task 21 is suspended immediately before the actual processing of the input / output processing as in the case of the reader.
  • the number of computer nodes 10 that can or cannot be tracked exceeds a certain number, it is determined which is the majority (S71), and the number of computer nodes 10 that can be tracked by the leader and the trackability notification 80 is large. In this case, the actual input / output process is executed (S76). If the number of computer nodes 10 that cannot be followed by the followability notification 80 is larger, the leader and the computer node 10 that is determined to be able to follow this perform the synchronization disconnection as in the third embodiment (S77). .
  • the inter-node communication process 35 transmits the follow-up availability notification 80 indicating “no follow-up” to the node leader and other followers (C2).
  • the internode communication interface 15 is instructed. Thereafter, as in the case of the flow in which input / output is started (S69), the inter-node communication interface 15 is instructed to receive a follow-up availability notification 80 from another follower (C2). Processing is suspended until the number of computer nodes 10 that can be followed in the followability table 90 or the number of computer nodes 10 that cannot be followed exceeds a certain level.
  • the point of comparing the number of computer nodes 10 (S74) is the same as S71.
  • the own computer node is disconnected (S77). If there are a large number of computer nodes 10 that cannot be tracked, re-reading of the leader is performed at those computer nodes 10. Selection is performed (S75). The re-selection of the leader is performed by a method such as selecting the smallest serial number assigned to all the computer nodes 10 among the computer nodes 10. After the leader re-election, the new leader resumes the operation from S63 in the flow of FIG. 18, and the follower resumes from the input / output request notification reception process in S64.
  • one of the computer nodes 10 constituting the fault-tolerant system 1 is a leader and the rest is a follower, and the leader starts input / output without waiting for a follower response.
  • the leader starts input / output without waiting for a follower response.
  • the first embodiment is a basic method of a fault tolerant system capable of performing synchronization processing with low overhead without using dedicated hardware when a plurality of tasks operate in parallel and affect each other. Is realized.
  • the second embodiment reduces the waiting for execution due to the dependency between tasks as compared to the first embodiment.
  • the third embodiment is different from the first embodiment in that a mechanism for detecting an abnormality in a computer node and a task on the computer node and continuing an operation only with a normal computer node is added.
  • the fourth embodiment is a modification of the first embodiment in which a specific computer node is given a privilege to reduce waiting time for processing collation and reduce overhead.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Software Systems (AREA)
  • Hardware Redundancy (AREA)

Abstract

複数のタスクが並列動作しお互いに影響を及ぼすような場合において、専用ハードウェアを用いることなく、低オーバーヘッドでの同期処理を行う。 計算機は他の計算機と接続される。計算機が有するプロセッサは、当該プロセッサが実行しているタスクにおいて入力若しくは出力要求を処理する際に、当該計算機の識別子と、当該タスクの識別子と、当該要求のアクセス対象の識別子とを含む要求通知を他の計算機に送信すると共に、他の計算機から当該他の計算機が送信した要求通知を受信する。プロセッサは、受信した要求通知の内容をメモリに格納し、メモリに格納された要求通知の内容に基づいて、プロセッサが処理しようとしている要求と、他の計算機のプロセッサが処理しようとしている要求とを比較する。そして、比較結果に基づいて、プロセッサが処理しようとしている要求の処理の可否を決定する。

Description

計算機
本発明は、計算機に関するものである。
 計算機システムにおけるシステム稼働時間を長時間化するために、計算機を多重化する技術が存在している。 また、システム停止時間を最小化するための計算機として、フォールト・トレラントコンピュータ(Fault tolerant computer)がある(特許文献1参照)。
 デュアルシステムやフォールトトレラントシステムにおいては、入出力などのプロセッサ処理ステップについて、実行の度に計算機間で互いに内容を送受信し、同期的に(すなわち並列に)同一処理を実施する「クロック同期」という技術がある。
 一方、近年ではネットワークの高速化、及び計算機の汎用化に伴い、専用ハードウェアではなく、一般的なハードウェア・ネットワークを利用して複数計算機を接続する技術が発達してきた。これを用いたフォールトトレラントシステムとして、「仮想計算機同期」方式が提案されている。これは、対象となるオペレーティングシステム・アプリケーションソフトウェアを仮想計算機上で実行し、仮想計算機への入力、および、仮想計算機の動作を他の仮想計算機に転送し、当該仮想計算機上で動作を再現するものである(特許文献2参照)。
特開平8-314744号公報 US2010/0107158
 前述した「クロック同期」方式はプロセッサの動作ステップ毎に計算機間で動作を一致させるものであり、専用ハードウェアによるプロセッサ動作ステップの観測・制御が必要である。しかし、近年はプロセッサと周辺チップセットの統合・高集積化が顕著になるにつれ、このようなプロセッサに対する動作ステップの観測・制御は困難になってきている。
 さらに、「クロック同期」方式はプロセッサの入出力の度にノード間で同期処理を行うため、プロセッサの動作クロックを上げると同期処理によるオーバーヘッドが増加するという問題がある。
 一方、「仮想計算機同期」方式は計算機に対する入力を仮想計算機のプロセッサ動作ステップ単位の精度にて観測し、他の仮想計算機上で再現することで同一の動作を再現するものである。これは、入力の内容及びタイミングが同一であれば観測時・再現時の動作が同一になるという前提により成り立つ。しかし、仮想計算機が複数プロセッサを備える場合には、プロセッサ間の動作順序が観測時と再現時で異なり、入力を完全に一致させても同一の動作とならない場合がある。従って、複数プロセッサを用いる場合にこの方式は適用できない。
 そこで、専用ハードウェアを用いることなく、複数プロセッサを用いて複数のタスクが並列動作しお互いに影響を及ぼしあう場合においても、低オーバーヘッドでの同期処理が可能な技術を提供する。
 計算機は少なくとも一の他の計算機と接続されている。計算機が有するプロセッサは、当該プロセッサが実行しているタスクにおいて入力若しくは出力要求を処理する際に、当該計算機の識別子と、当該タスクの識別子と、当該要求のアクセス対象の識別子とを含む要求通知を他の計算機に送信すると共に、他の計算機から当該他の計算機が送信した要求通知を受信する。プロセッサは、受信した要求通知の内容をメモリに格納し、メモリに格納された要求通知の内容に基づいて、プロセッサが処理しようとしている要求と、他の計算機のプロセッサが処理しようとしている要求とを比較する。そして、比較結果に基づいて、プロセッサが処理しようとしている要求の処理の可否を決定する。
 複数のタスクが並列動作しお互いに影響を及ぼすような場合において、専用ハードウェアを用いることなく、低オーバーヘッドでの同期処理を行うことが可能となる。
フォールトトレラントシステムの構成例を示す図である プロセッサがタスクを実行するフローの一例を示す図である プロセッサが入出力について同期を行うフローの一例を示す図である 入出力要求の内容の一例を示す図である 入出力要求テーブルの一例容を示す図である 入出力要求通知の内容の一例を示す図である タスクの実行可否を判定するフローの一例を示す図である 入出力要求テーブルの他の一例を示す図である 入出力要求通知の他の一例を示す図である タスクの実行可否を判定するフローの他の一例を示す図である 異常計算機ノードの検知・切り離しを実現するための基盤ソフトウェアの構成例を示す図である 計算機ノード管理処理の一例を示す図である 計算機ノード管理テーブルの一例を示す図である タスク管理テーブルの一例を示す図である プロセッサが入出力について同期を行うフローの他の一例を示す図である 入出力要求テーブルの他の一例を示す図である 入出力要求通知の内容の他の一例を示す図である リーダにおけるプロセッサが入出力について同期を行うフローの一例を示す図である フォロワにおけるプロセッサが入出力について同期を行うフローの一例を示す図である 追従可否通知の内容の一例を示す図である 追従可否テーブルの一例を示す図である
 本発明の実施形態について、図を用いて詳細に説明する。まず、本発明の基本形態である第一の実施形態について述べる。その後、タスクの実行条件を緩和した第二の実施形態、計算機ノードの異常に対する対策を加えた第三の実施形態、計算機ノード間の通知によるオーバーヘッドを軽減する工夫を加えた第四の実施形態について、第一の実施形態との差異として述べる。
 ‐‐‐‐第一の実施形態‐‐‐‐
 図1は、本実施形態のフォールトトレラントシステム1の構成図である。フォールトトレラントシステム1は2台以上の計算機ノード10とVoter2から構成される。図1において計算機ノードは10-A、10-B、10-Cの3台が存在するが、本発明は計算機ノード10が3台の場合に限らない。フォールトトレラントシステム1はVoter2を介してフォールトトレラントシステム1外部の1台以上の端末3との入出力を行う。Voter2は少なくとも端末3からの入力を各計算機ノード10に分配する機能と、端末3への出力について各計算機ノード10からの出力を受け取り、端末3へ転送する機能を備える。端末3への転送に際しては、Voter2は各計算機ノード10から取得した出力について多数決等の方法により妥当性のあるものを選択し、これを転送する。Voter2が複数個存在して多重構成をとっていてもよく、また、各計算機ノード10の機能として実装されていてもよい。
 各計算機ノード10は少なくともメモリ11、1つ以上のプロセッサ12、ノード間通信インタフェース15を備える。フォールトトレラントシステム1内の計算機ノード10は、ノード間通信インタフェース15を介して互いに接続されている。
 この他、計算機ノード10は、計算機ノード内の記憶装置13、外部通信インタフェース14を備えていてもよい。また、ノード間通信インタフェース15が外部通信インタフェース14の機能を兼ねてもよい。ただし、記憶装置13、外部通信インタフェース14の有無はフォールトトレラントシステム内の全計算機ノード10で同一である。
 メモリ11は、少なくともアプリケーションソフトウェア20と基盤ソフトウェア30を保持する。アプリケーション20は、一つ以上のタスク21から構成される。アプリケーションソフトウェア20を構成するタスク21は、フォールトトレラントシステム1を構成する全計算機ノード10で同一である。基盤ソフトウェア30は複数のタスク21を実行することのできるマルチタスク実行可能なオペレーティングシステムであり、少なくともスケジューラ31、入出力要求検出処理32、入出力判定処理33、入出力実行処理34、ノード間通信処理35、入出力要求テーブル36、要求受付処理38を備える。この他、基盤ソフトウェア30はタスク間共有記憶37を備えていてもよい。
 図2は、アプリケーションソフトウェア20内タスク21と基盤ソフトウェア30内スケジューラ31に基づくプロセッサ12の動作を示したものである。
 まず、プロセッサ12がスケジューラ31の処理を実行し、一つ以上のタスク21の中から実行すべきものを一つ選択する(S11)。プロセッサ12は、このタスク21の実行を開始する(S12)。プロセッサ12はタスク21として記載された処理の一部を順に実行する(S13)。タスク21内の処理には、メモリの確保・解放、入出力処理など、基盤ソフトウェア30の機能を呼び出すものもある。このような処理の実体は基盤ソフトウェア30内に存在するため、タスク21内では単に要求受付処理38にある特定機能に対する要求発行として記載される。このようにタスク21内の処理が基盤ソフトウェア30への要求であった場合(S14)、当該要求に対応する処理が直ちに完了するものでない場合(S15)は、プロセッサ12は再びスケジューラ31の処理を実行して他のタスク21を選択・実行する。処理が基盤ソフトウェア30への要求でない場合、あるいは要求に対応する基盤ソフトウェア30内の処理が直ちに完了した場合でも、実行中タスク21が最優先でなくなった場合(S16)に、プロセッサ12は再びスケジューラ31の処理を実行して他のタスク21を選択・実行する。ここで述べた実行中タスク21が最優先でなくなった場合とは、例えば実行中タスク21の連続実行時間が一定以上となった場合、または、より高優先度の別タスク21の実行が可能となった場合である。実行中タスク21が最優先である場合は、タスク21の処理の続きを実行する(S13)。これらの動作は、プロセッサ12が計算機ノード10内に複数存在する場合は各プロセッサ12が各々実行する。各プロセッサ12の動作は原則として独立である。
 本フォールトトレラントシステム1では計算機ノード10間でクロック同期を行わないため、各計算機ノード10間で、各プロセッサ12の動作を完全に一致させることができない。例えば、プロセッサ内キャッシュ動作の差異による動作タイミングのずれ、基盤ソフトウェア30の内部状態の差異による基盤ソフトウェア30の動作不一致が考えられる。一方、フォールトトレラントシステム1を実現するにあたって、アプリケーションソフトウェア20に関する計算機ノード10間の致命的な動作不一致は許容されない。致命的な動作不一致とは、例えば計算機ノード10内間で、各タスク21内にある条件判定にて計算機ノード10間で異なる結果となり別々の処理が実行されること、または計算機ノード10同士でアプリケーションソフトウェア20に関する出力が異なることである。これを防止するため、本発明ではVoter2による外部入力データの各計算機ノード10への配信の他に、以降で述べる構成・動作を採用する。
 図3は、プロセッサ12があるタスク21-aの処理として入出力処理を実行する際の、タスク21-a及び基盤ソフトウェア30、の動作を示したものである。ここで述べる入出力とは、例えばタスク間共有記憶37または記憶装置13内の特定領域に対する読み書き、外部通信インタフェース14を用いたFTシステム1外部の装置との送受信である。タスク21における入出力処理は、要求受付処理38に対する入出力要求40の発行として記述される(S20)。図4に示す通り、入出力要求40には少なくとも入出力対象及び必要に応じて対象内のアドレス等の情報を含む入出力対象情報41、入出力要求40において要求する入出力種別42、入出力を行うデータのサイズ43、さらに、入出力要求40が出力に関するものである場合のみ、出力データ44を含む。
 プロセッサ12はこの入出力要求40を入出力要求検出処理32にて検出し(S21)、入出力要求情報55を入出力要求テーブル36に登録する(S22)。入出力要求テーブル36は計算機ノード10内で共通であり、同じ計算機ノード10内の各プロセッサ12は同一の入出力要求テーブル36を更新・参照する。図5に示す通り、入出力要求テーブル36は少なくとも入出力対象識別子51、計算機ノード識別子52、タスク識別子53、シーケンス番号54を含む。入出力対象識別子51は入出力対象情報41に記載され得る入出力対象部位・インタフェースとそれらの上のアドレスについて、一度にアクセスの対象となり得る単位毎に、入出力対象情報41から一意に定まる符号を付与したものである。例えば、ある入出力対象識別子51はタスク間共有記憶37の特定領域を表し、また、ある入出力対象識別子51は外部通信インタフェース14のうちの一つを表す。シーケンス番号54は、当該計算機10上にて入出力要求テーブル36に登録される入出力要求情報55に対して、同一の入出力対象識別子51を持つ入出力要求情報55毎に割り当てられるシーケンス番号である。異なる入出力対象識別子51に関する入出力要求情報55であればそれらのシーケンス番号54は無関係である。
 また、プロセッサ12は、ノード間通信処理35にて、図6に示す入出力要求通知50を他計算機ノード10に送信するようノード間通信インタフェース15に指示する(S23)。ノード間通信インタフェースは、入出力要求通知50をフォールトトレラントシステム1内の全計算機ノード10に送信する。また、プロセッサ12はノード間通信処理35にて他計算機ノード10からの入出力要求通知50を受信し、これに基づき入出力要求テーブル36を更新する(S24)。ノード間通信処理35による入出力通知50の受信および入出力要求テーブル36の更新は、計算機ノード10内の特定のプロセッサ12が、タスク12とは非同期に行ってもよい。
 プロセッサ12は入出力判定処理33にて入出力実行条件の成否判定を行い(S25)、未成立である限り入出力の実行を保留する(S26)。この間、プロセッサ12は他のタスクの実行を行ってもよい。
 入出力実行条件の成否判定方式としては様々なものが考えられるため、ここでは一種類について記載し、その他の方式については第二移行の実施形態として各々記載する。本実施形態では、フォールトトレラントシステム1内で計算機ノード識別子A、B、Cを持つ、計算機ノード10-A、10-B、10-Cの3台が同期して動作する場合を例に説明する。
 各計算機ノード10が相互に入出力要求通知50を伝達し、入出力要求テーブル36を更新することは既に述べた。これに基づき、プロセッサ12が自身の計算機ノード10内の入出力要求テーブル36を参照しながら、図7に示すフローを実行することでタスクの実行可否を判定する。
 まず、判定対象となるタスクTの入出力要求が全計算機ノードで実行待ちであるか、すなわち入出力要求テーブル36に、当該タスクTのタスク識別子53と同一のタスク識別子53を備えた入出力要求情報55が、全計算機ノード識別子52について現れているか判定する(S31)。この条件を満たしていない場合、例えば図5におけるタスク識別子T2のタスクは、当該入出力要求を実行できない計算機ノードがあるため計算機ノード10-A、計算機ノード10-C上では勿論、計算機ノード10-Bにおいても実行条件不成立とする(S35)。タスクTの入出力要求が全計算機ノード上で実行待ちである場合、次に同じ入出力対象Rについて、フォールトトレラントシステム内の他の計算機ノード10においてTと同様に入出力実行待ちである他のタスクT’が存在するか、すなわち入出力要求テーブル36内に、入出力対象識別子51が同一でありタスク識別子53が異なる入出力要求情報55が現れているか判定する(S32)。先に述べたT’が存在しない場合、当該入出力要求は入出力対象Rについて全計算機ノード10上で唯一実行可能なものであるため、当該タスクTは実行条件成立となる(S34)。
 T’が存在する場合、計算機ノード10毎にTとT’の実行順序が異なると計算機ノード10間の動作不一致となるため、計算機ノード10間で動作順序を一致させる必要がある。このため、条件に当てはまる全T’について、各計算機ノード10毎にTとT’のいずれが先に入出力要求テーブル36に現れたかを判定する。すなわち、同一の入出力対象識別子51、同一の計算機ノード識別子52を持つ複数の入出力要求情報55について、Tの入出力要求情報55とT’の入出力情報56のシーケンス番号54の大小を比較する。特定計算機ノードについてT’の入出力要求情報が現れていない場合、Tのシーケンス番号54がT’のものよりも小さいものとして扱う。以降、本実施形態、及び、他の実施形態において、入出力要求テーブル36におけるタスク21の出現順の判定は、同様にシーケンス番号の比較によって行う。もし任意のT’について、T’がTより先に出現している計算機ノード10の数が多い、すなわち入出力要求テーブル36内で(Tのシーケンス番号54)>(T’のシーケンス番号54)となっている計算機ノード10の数が、(Tのシーケンス番号54)<(T’のシーケンス番号54)となっている計算機ノード10の数よりも多い場合、T’はTより優先して実行すべきものとする。この場合、Tより優先して実行すべきタスクT’が存在するため、Tは実行条件不成立となる(S35)。例えば、図5におけるタスク識別子T3のタスクの実行条件判定を行う場合、計算機ノードA、計算機ノードCにてタスク識別子T4のタスクがタスク識別子T3のタスクより先に現れているため、T3の実行条件は不成立である。逆に、上記条件を満たすタスクT’が存在しない場合、タスクTは実行条件成立となる(S34)。例えば、図5におけるタスク識別子T4のタスクは実行条件成立となる。尚、異なる判定結果となる計算機ノード10が判定結果毎に同数の場合は、例えば特定の計算機ノード10が含まれる集合を多数派として扱うなどの方法で多数派が一意に定まるよう判定条件を設ける。この、計算機ノード数が同数となった場合の判定基準は、本発明に現れる計算機ノード数を比較する判定処理全てについても同様である。
 条件が成立した場合、入出力実行処理34にて入出力処理を実行する(S27)。入出力実行処理34は、タスク間共有記憶37や記憶装置13内の特定の領域に対する読み書きや、外部通信インタフェース14に対する送信要求または受信内容の取得要求である。入出力実行処理34は別のプロセッサ12に対して実行を依頼してもよく、また、完了までの間他のタスク21を実行してもよい。
 以上で述べた方式により、全計算機ノード10において、計算機10外部または他のタスク21への影響を及ぼす入出力処理を計算機ノード間で同期して実行することができる。
 ‐‐‐‐第二の実施形態‐‐‐‐
 第二の実施形態として、図7に示したフローによるタスクの実行条件を緩和し、より効率的なタスク実行を行う構成について述べる。本方式では、図5、図6に示した入出力要求テーブル36、入出力要求通知50の代わりに各々図8、図9に示したものを、図7に示したフローの代わりに図10に示したものを用いる。
 本実施形態では、入出力要求テーブル36、入出力要求通知50に状態変化有無情報56を含む。状態変化有無情報56は、当該入出力要求を実行した場合に状態変化が発生するか否かを示す情報である。例えば、記憶装置13やタスク間共有記憶37からの読み込み要求は状態変化が発生せず、書き込み要求は状態変化が発生する。また、外部通信インタフェース14に対する送受信要求は、送信は勿論のこと、受信に関しても外部通信インタフェース14の内部バッファの状態が変化する場合などは状態変化有とする。状態変化情報56は、図3のフロー中の入出力要求情報登録(S22)、入出力要求通知送信指示(S23)の際に、入出力要求40内の入出力対象情報41と入出力種別42に基づき設定する。
 本実施形態において、入出力実行条件の判定方式として図10のフローを用いる。全計算機ノード10が入出力要求の実行待ちになるのを待たない点、状態変化を伴わない入出力要求同士の実行順序を入れ替える点において第一の実施形態と異なる。まず、判定対象となるタスクTの入出力要求が過半数の計算機ノードで実行待ちであるか、すなわち入出力要求テーブル36に、当該タスクTのタスク識別子53と同一のタスク識別子53を備えた入出力要求情報55が、過半数の計算機ノード識別子52について現れているか判定する(S41)。次に、同一入出力対象について実行待ちである他のタスクT’が存在するか判定する点は第一の実施形態と同様である(S42)。T’が存在する場合、第一の実施形態と同様にTとT’のいずれが入出力要求テーブル36に現れたか、シーケンス番号54に基づき判定する(S43)。ただし、ある計算機ノード10についてTが現れていない場合、T’の出現有無に関わらずT’が先に出現したものとして扱う。この判定にてTが最優先となった場合は第一の実施形態と同様にタスクTの実行条件成立と判定する。例えば、図8の入出力要求テーブル36において、入出力対象識別子R3の入出力対象についてタスク識別子T5のタスクは第一の実施形態では計算機ノード10-Bにて入出力要求が発生していないため実行条件未成立だが、本実施形態では実行条件成立となる。他のタスクT’が最優先となった場合には、第一の実施形態と異なり、TとT’の状態変化有無56を参照し、それらのタスクによる入出力要求が状態変化を伴うか判定する(S46)。全て状態変化無である場合はTの実行条件が成立と判定する(S44)。例えば、図8の入出力要求テーブル36において、入出力対象識別子R3の入出力対象についてタスク識別子T6のタスクはS44の条件を満たすため実行条件成立となる。Tが状態変化を伴う場合、またはT’のいずれかが状態変化を伴う場合はTの実行条件不成立と判定する(S45)。例えば、入出力対象識別子R2の入出力対象についてタスク識別子T3のタスクは状態変化を伴うためS44の条件を満たさず、従って実行条件未成立である。
 以上で述べた通り、第二の実施形態では、少数の計算機ノード10上にて特定タスクの動作が遅れた場合や、状態変化を伴わない入出力要求が多数発生した場合に、第一の実施形態に比べてタスクの実行を遅延なく行うことができる。
 ‐‐‐‐第三の実施形態‐‐‐‐
 第三の実施形態では第一の実施形態に対して、フォールトトレラントシステム1を構成する計算機ノード10の一部に異常が発生した場合に、これを検知して切り離すことができる方式を実現する。この方式では、図1の基盤ソフトウェア30を図11に示すもので置き換え、基盤ソフトウェア30に図12に示すノード管理処理61、図13に示すノード管理テーブル62、図14に示すタスク管理テーブル64を追加し、図7のフローに代わり図15のフロー、図5、図6に示した入出力要求テーブル36、入出力要求通知50の代わりに図16、図17に示したものを用いる。
 この方式では、計算機ノード10間のハートビートによる生存監視、入出力要求情報55の比較照合によるタスク動作不一致の検出、入出力要求情報にタスク時間見積情報を付与することによるタスク動作タイムアウトの検知を実現する。本実施形態は簡単のため第一の実施形態に対する拡張として記述するが、第二の実施形態との複合も可能である。
 第三の実施形態では、基盤ソフトウェア30は新たにノード管理処理61、ノード管理テーブル62、タスク管理テーブル64を備える。ノード管理処理61は、少なくともノード間通信処理35に対して生存監視パケットの送信を指示する計算機ノード管理情報送信処理71と、基盤ソフトウェア30内の任意の処理に基づき定期的にノード間通信処理35に対して生存監視パケットの受信を指示する計算機ノード管理情報受信処理72、一定時間生存監視パケットの受信が無かった場合に送信元の計算機ノード10について異常状態と判定する計算機ノード異常判定処理73を備える。計算機ノード管理情報送信処理71、計算機ノード管理情報受信処理72、計算機ノード異常判定処理73は、各計算機ノード10上の任意のプロセッサ12が定期的に実行する。また、ノード管理処理61は、計算機ノード異常判定処理73やその他基盤ソフトウェア30で検出した異常に基づき、ノード管理テーブル62に反映する他計算機ノード切り離し処理74、他計算機ノード10に対する切り離し実行通知の送信をノード間通信インタフェース15に指示するとともにノード管理テーブル62への反映を行う自計算機ノード切り離し処理75、タスク管理テーブル64と入出力要求テーブル36を照合しタスクの異常を検知するタスク異常検知処理76、を備える。
 ノード管理テーブル62は、フォールトトレラントシステム1内の全計算機ノード10について同期動作中であるか否かを示すものである。ノード管理テーブル62は図13に示す通り、少なくとも計算機ノード識別子52と同期状態情報63を含む。入出力判定処理33とノード間通信処理35では、同期状態情報63に同期状態と記載されている計算機ノード10に関してのみ通信・入出力判定の対象とする。また、ノード管理処理61による他計算機ノード切り離し処理74は、ノード管理テーブル62内の対象計算機ノード10に対応するノード識別子52の項について、同期状態情報63を非同期状態に書き換えるものである。
 タスク管理テーブル64は、計算機ノード10上での各タスク21に関して、各々前回の入出力要求後に行った処理の量を表すものである。タスク管理テーブル64は図14に示す通り、少なくともタスク識別子52の他、プロセッサ消費時間情報65と要求完了待ち実時間66と要求完了待ち最大時間67を備える。これらは各々、プロセッサ12があるタスク21について前回の入出力要求後の処理に費やした時間の合計、あるタスク21について要求完了待ちS15により動作を保留した時間の合計、要求完了待ちS15発生時に、対象となる要求の種類毎の、要求の完了までに要する時間の最大見積値の合計である。プロセッサ12は、スケジューラ31、及び、要求受付処理38の実行時に、前者においてはタスクが動作した時間をプロセッサ消費時間情報65に加算し、後者においては要求の実行に要した時間を要求完了待ち実時間66に加算、要求の内容に応じた最大見積時間を要求完了待ち最大時間67に加算する。また、タスク管理テーブル64は、各計算機ノード10上でタスクの動作が一致していたか照合するための情報である、タスク動作情報68を備えていてもよい。
 本実施形態では、タスク21にて入出力要求が発生した場合に、プロセッサ12が図15に示すフローを実行する。本フローは図3に示した第一の実施形態のフローと類似するため、差異のみ説明する。まず、入出力要求情報の登録(S22)、入出力要求通知送信指示(S23)の際に、タスク管理テーブル64内のタスク21-aに関するプロセッサ消費時間65、要求完了待ち実時間66、要求完了待ち最大時間67を参照してこれを各々入出力要求テーブル36(図16)内、入出力要求通知50(図17)内に含める。また、プロセッサ12は入出力要求照合(S51)において、当該タスクに関する自計算機ノード10の入出力要求情報55と他計算機ノード10の入出力情報55を比較する。同一のタスク識別子53を持ち、計算機ノード識別子52が自計算機ノードと異なる入出力要求情報55、すなわち、他の計算機ノード上で同一タスク12が行った入出力要求に関する情報について、少なくとも入出力対象識別子51が一致しているか判定する。入出力対象識別子51以外にも、例えば第二の実施形態にて入出力要求情報55に含めた状態変化有無情報56など、計算機ノード10間でタスク12が同様の動作を行ったか判断するために有用な情報があれば、それらも一致判定の対象としてよい。また、入出力要求通知50、入出力要求テーブル36に、図4に示した入出力40中の入出力対象情報41、入出力種別42、入出力サイズ43、出力データ44そのもの、または出力データ44のハッシュ値などの情報を入出力要求通知にタスク動作情報68として含め、一致判定の対象としてもよい。本判定にて不一致が発生した場合、タスク動作情報が一致する計算機ノード10の集合毎に、当該集合に属する計算機ノード10の個数を比較し、多数派となる集合を選出する。もし自計算機ノード10が多数派集合に属していない場合は、ノード管理処理61の自計算機ノード切り離し処理75を実行する。
 ノード管理処理61は、入出力要求テーブル36、タスク管理テーブル64に基づく自計算機ノード10上のタスク21に関するタスク異常検知処理76を備える。ここでの異常検知とは、あるタスク21について他の計算機ノード10に比べて自計算機ノード10で動作が遅れている、または停止している場合にこれを検知することである。タスク異常検知処理76は、計算機ノード10上の任意のプロセッサ12が実行する。まず、タスク管理テーブル64上で、他計算機ノード10に関してのみ現れている入出力要求情報55について、タスク管理テーブル64上の対応するタスクに関する情報と比較する。すなわち、条件を満たす入出力要求情報55内のタスク識別子53と同一のタスク識別子53を持つタスクについて、入出力要求テーブル36からプロセッサ消費時間65、要求完了待ち実時間66、要求完了待ち最大時間67を取得して、タスク管理テーブル64上の情報と比較する。比較の結果、自計算機ノード上のタスク21のプロセッサ消費時間65が他全ての計算機ノード10でのプロセッサ消費時間65より一定以上大きい場合、自計算機ノード上のタスク21の要求完了待ち実時間66が他全ての計算機ノード10上の要求完了待ち最大時間67より一定以上大きい場合に、当該タスク21にて異常発生と判断する。異常発生と判断した場合、自計算機ノード切り離し処理75を行う。
 以上で述べた通り、第三の実施形態では、特定の計算機ノード10が動作を停止した場合、特定の計算機ノード10上にて他計算機ノード10とのタスク動作の不一致が発生した場合、他計算機ノード10に対してタスクの動作が遅れた場合に、当該計算機ノード10をフォールトトレラントシステム1から切り離して動作を続行することができる。
 ‐‐‐‐第四の実施形態‐‐‐‐
 第四の実施形態では、入出力実行処理34における入出力処理開始から入出力実行までの時間が長い場合に、この時間を利用して計算機ノード10間の同期をとることで入出力時のオーバーヘッドを軽減するものである。この動作について、図18、図19のフロー図、図20、図21の通信内容、及び、データ形式を用いて説明する。
 本実施形態では、フォールトトレラントシステム1を構成する計算機ノード10のうち一台をリーダ、その他をフォロワとする。リーダは独自の判断にて入出力を行い、フォロワは原則としてリーダと同一の順番にて入出力を行うものとする。ただし、フォロワの多数がリーダに追従不能と判断した場合は、このことをリーダに伝達することでリーダをフォールトトレラントシステム1から切り離し、残りの計算機ノード10にて処理を継続する。このため、基盤ソフトウェア30は少なくとも第一の実施形態の構成に加え、第三の実施形態で述べたノード管理テーブル62、図21に示す追従可否テーブル90を備えるものとする。
 本実施形態において、基盤ソフトウェア30内における入出力要求検出から入出力処理実行までのフローはリーダにおいては図18、フォロワにおいては図19の通りである。この間、リーダとフォロワの間では、リーダから全フォロワへの入出力要求通知(図18、19フロー中C1)の送信、各フォロワからリーダ及び他フォロワへの追従可否通知(図18、19フロー中C2)の送信の順に通信が行われる。まず、リーダの動作について図18を用いて説明する。
 リーダにおいて、プロセッサ12が入出力要求検出処理32にて入出力要求を検出し(S22)、自身の入出力要求テーブル36に登録(S22)するまでは第一、第二の実施形態と同様である。次に、ノード間通信処理35にて入出力要求通知の送信指示を行う(S63、C1)。入出力を開始(S69)したリーダの計算機ノード10上では、並行してノード間通信処理35にて、フォロワからの追従可否通知80を受信するようノード間通信インタフェース15に指示する。追従可否通知80を受信した(C2)場合、図21に示す追従可否テーブル90に登録する。そして、追従可否テーブル90においてリーダ及び追従可能な計算機ノード10の数、すなわち「追従可能」とした追従可否通知80を受信した数+1が過半数になるか、あるいは追従不可能な計算機ノード10の数が過半数となるまで、入出力処理の実処理直前にてタスク21の動作を保留する。ここで、入出力処理の実処理とは、例えばタスク間共有記憶37や記憶装置13について内容が書き変わる処理、または、共有メモリ37や記憶装置13の内容を転写する処理、ノード間通信インタフェース15に対するデータ取得・データ送信実行処理など、他タスク21や装置外部への影響が発生する処理である。追従可能または不可能な計算機ノード10の数が一定数を超えた場合、いずれが過半数であるか判定し(S71)、リーダ及び追従可否通知80にて追従可能とした計算機ノード10の数が多い場合は入出力の実処理を実行する(S76)。追従可否通知80にて追従不可能とした計算機ノード10の数の方が大きい場合、第三の実施形態と同様に同期離脱を行う(S77)。
 次に、フォロワの動作について図19を用いて説明する。リーダの場合と同様、プロセッサ12が入出力要求検出処理32にて入出力要求を検出し(S22)、自身の入出力要求テーブル36に登録(S22)する。この後に、リーダからの入出力要求通知を受信(C1)するようノード間通信処理35に指示する(S64)。次に、入出力判定処理33にて、入出力開始条件が成立しているか判定を行う(S65)。ここで入出力開始条件は、当該タスク21についてリーダから入出力要求通知が届いている、すなわち、入出力要求テーブル36に同一のタスク識別子53、リーダの計算機ノード識別子52を持つ入出力要求情報55があるか否かである。入出力開始条件を満たしている場合、リーダ及び他のフォロワに対して図20に示す追従可否通知80にて追従可能である旨通知する(C2)ようノード間通信インタフェース15に対して指示を行い(S68)、入出力を開始する(S69)。入出力開始条件が未成立の場合、フォロワとしてリーダの入出力に追従可能か否かの判定を行う(S66)。例えば追従可能である場合とは、当該入出力要求の実行が一定時間以上遅延されていない場合である。この場合は、他タスクを実行した後に(S67)、入出力要求通知受信指示(S64)を経て再び入出力開始条件の判定を行う(S65)。入出力を開始(S69)した計算機ノード10上では、並行してノード間通信処理35にて、他フォロワからの追従可否通知80を受信する(C2)ようノード間通信インタフェース15に指示する。追従可否通知80を受信した場合、図21に示す追従可否テーブル90に登録する。そして、追従可否テーブル90におけるリーダ及び追従可能な計算機ノード10の数、すなわち「追従可能」とした追従可否通知80を受信した数+2が過半数になるか、あるいは追従不可能な計算機ノード10の数が過半数となるまで、リーダの場合と同様入出力処理の実処理直前にてタスク21の動作を保留する。追従可能または不可能な計算機ノード10の数が一定数を超えた場合、いずれが過半数であるか判定し(S71)、リーダ及び追従可否通知80にて追従可能とした計算機ノード10の数が多い場合は入出力の実処理を実行する(S76)。追従可否通知80にて追従不可能とした計算機ノード10の数の方が大きい場合はリーダ及びこれに追従可能と判定した計算機ノード10は第三の実施形態と同様に同期離脱を行う(S77)。
 フォロワがリーダの入出力に追従不可能と判断した場合(S66)、ノード間通信処理35にてノードリーダ及び他のフォロワに対する「追従不可能」とした追従可否通知80の送信(C2)を、ノード間通信インタフェース15に指示する。この後、入出力を開始(S69)するフローの場合と同様に、他フォロワからの追従可否通知80を受信する(C2)ようノード間通信インタフェース15に指示する。追従可否テーブル90中で追従可能とした計算機ノード10の数・追従不可能とした計算機ノード10の数が一定以上となるまで処理を保留し、一定以上となった場合に追従可能・追従不可能な計算機ノード10の数を比較する(S74)点は、S71と同様である。自身を含めた追従不可能な計算機ノード10の数が少ない場合は自計算機ノード切り離し処理を行い(S77)、追従不可能な計算機ノード10が多数の場合はそれらの計算機ノード10にてリーダの再選出を行う(S75)。リーダの再選出は、例えば全計算機ノード10につけられている通し番号が、当該計算機ノード10の中で最も小さいものを選択する、などの方法にて行う。リーダ再選出後、新リーダは図18のフローのS63から、フォロワは、S64の入出力要求通知受信処理から動作を再開する。
 以上で述べた通り、第四の実施形態では、フォールトトレラントシステム1を構成する計算機ノード10のうち1台をリーダとし残りをフォロワとすること、リーダはフォロワの応答を待つことなく入出力を開始し、入出力処理が外部、または、他タスクに影響を与える直前までの時間にフォロワの回答を確認することで、入出力の際のオーバーヘッドを軽減できる。
 以上、第一から第四の実施形態を用いて説明した。第一の実施形態は、複数のタスクが並列動作しお互いに影響を及ぼすような場合において、専用ハードウェアを用いることなく、低オーバーヘッドでの同期処理を行うことが可能なフォールトトレラントシステムの基本方式を実現したものである。第二の実施形態は、第一の実施形態に対して、タスク間の依存関係による実行待ちを軽減するものである。第三の実施形態は、第一の実施形態に対して、計算機ノードやその上のタスクの異常を検知して正常な計算機ノードのみにて動作を継続するための仕組みを追加したものである。第四の実施形態は、第一の実施形態に対して、特定計算機ノードに特権を与えることにより処理の照合待ちを軽減し、オーバーヘッドを軽減するよう方式を工夫したものである。
1  フォールトトレラントシステム
2  Voter
3  端末
10 計算機ノード
11 メモリ
12 プロセッサ
13 記憶装置
14 外部通信インタフェース
15 ノード間通信インタフェース
20 アプリケーション
21 タスク
30 基盤ソフトウェア
31 スケジューラ
36 入出力要求テーブル
37 タスク間共有記憶
40 入出力要求
51 入出力対象識別子
52 計算機ノード識別子
53 タスク識別子
54 シーケンス番号
62 計算機ノード管理テーブル
64 タスク管理テーブル
80 追従可否通知
90 追従可否テーブル

Claims (10)

  1. 少なくとも一の他の計算機と通信可能に接続された計算機であって、
    プロセッサ、メモリ、前記他の計算機と通信するためのインタフェース部とを有しており、
    前記プロセッサは、当該プロセッサが実行しているタスクにおいて入力若しくは出力の要求を処理する際に、
    当該計算機の識別子と、当該タスクの識別子と、当該要求のアクセス対象の識別子とを含む要求通知を前記他の計算機に送信し、
    前記他の計算機から当該他の計算機が送信した要求通知を受信し、
    受信した前記要求通知の内容を前記メモリに格納し、
    前記メモリに格納された前記他の計算機から受信した要求通知の内容に基づいて、前記プロセッサが処理しようとしている要求と、前記他の計算機のプロセッサが処理しようとしている要求とを比較し、
    前記比較の結果に基づいて、前記プロセッサが処理しようとしている要求の処理の可否を決定することを特徴とする計算機。
  2. 請求項1記載の計算機であって、
    前記プロセッサは、当該プロセッサが処理しようとしている要求と、前記他の計算機のプロセッサが処理しようとしている要求とを比較する際に、
    前記他の計算機全てから当該プロセッサが実行しているタスクの識別子と同じタスクの識別子を受信したかを判定し、
    更に、前記プロセッサが処理しようとしている前記要求と同じアクセス対象をアクセスしようとする他の要求が存在する場合に、当該他の要求が前記要求より後に発生した要求であるか否かを判定することを特徴とする計算機。
  3. 請求項1記載の計算機であって、
    前記プロセッサは、
    前記他の計算機全てから当該プロセッサが実行しているタスクの識別子と同じタスクの識別子を受信しており、かつ
    前記計算機および前記他の計算機の内過半数の計算機において、前記プロセッサが処理しようとしている要求と同じアクセス対象をアクセスしようとする他の要求が当該要求より後に発生した要求である場合に、当該要求を処理することを特徴とする計算機。
  4. 請求項1記載の計算機であって、
    前記プロセッサは、
    前記計算機および前記他の計算機の内過半数の計算機から当該プロセッサが実行しているタスクの識別子と同じタスクの識別子を受信しており、かつ
    前記プロセッサが処理しようとしている要求と同じアクセス対象をアクセスしようとする他の要求によって当該アクセス対象に変化が生じない場合に、当該要求を処理することを特徴とする計算機。
  5. 請求項1記載の計算機であって、
    更に前記他の計算機との間で相互にハートビート信号を送受信しており、
    前記計算機が前記他の計算機に送信する要求通知及び前記計算機が前記他の計算機から受信する要求通知には、更に少なくともプロセッサの消費時間又は要求の完了待ち時間のいずれかが含まれており、
    前記プロセッサは、特定の計算機から前記ハートビート信号が受信できなくなった場合、若しくは当該特定の計算機から受信した要求通知の内容に基づいて当該特定の計算機がタスクを他の計算機と同期的に実行していないと判断した場合に、当該特定の計算機のプロセッサが処理しようとしている要求を前記比較の対象から除き、
    更に前記他の計算機に対して、前記特定の計算機のプロセッサが処理しようとしている要求を前記比較の対象から除くよう指示することを特徴とする計算機。
  6. 請求項5記載の計算機であって、
    更に前記プロセッサは、当該計算機が前記他の計算機に送信した要求通知の内容に基づいて、当該プロセッサがタスクを前記他の計算機と同期的に実行していないと判断した場合に、当該プロセッサが処理しようとしている要求を前記比較の対象から除くよう、前記他の計算機に対して指示することを特徴とする計算機。
  7. 請求項1記載の計算機であって、
    当該計算機がリーダ計算機である場合には、前記他の計算機から追従可否通知を受信し、
    前記プロセッサは過半数の前記他の計算機から追従可を示す追従可否通知を受信した場合に、当該プロセッサが処理しようとしている要求を処理することを特徴とする計算機。
  8. 請求項7記載の計算機であって、
    当該計算機がフォロワ計算機である場合には、前記リーダ計算機から受信した要求通知に基づいて、当該プロセッサが処理しようとしている要求の処理の可否を決定することを特徴とする計算機。
  9. 請求項8記載の計算機であって、
    前記フォロワ計算機はさらに、前記リーダ計算機への追従可否通知を前記他の計算機に送信し、
    前記プロセッサは前記他の計算機から受信した追従可否通知を参照して、所定の数以上の計算機から追従可を示す追従可否要求を受信している場合に、前記リーダ計算機を引き続きリーダ計算機とすることを特徴とする計算機。
  10. 請求項9記載の計算機であって、
    前記フォロワ計算機は、
    前記所定の数より少ない計算機から追従可を示す追従可否要求を受信している場合に、前記リーダ計算機とは異なる計算機を新たなリーダ計算機とすることを特徴とする計算機。
PCT/JP2010/005493 2010-09-08 2010-09-08 計算機 WO2012032572A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
EP10856925.2A EP2615548B1 (en) 2010-09-08 2010-09-08 Computing device
JP2012532731A JP5707409B2 (ja) 2010-09-08 2010-09-08 計算機
PCT/JP2010/005493 WO2012032572A1 (ja) 2010-09-08 2010-09-08 計算機

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2010/005493 WO2012032572A1 (ja) 2010-09-08 2010-09-08 計算機

Publications (1)

Publication Number Publication Date
WO2012032572A1 true WO2012032572A1 (ja) 2012-03-15

Family

ID=45810201

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2010/005493 WO2012032572A1 (ja) 2010-09-08 2010-09-08 計算機

Country Status (3)

Country Link
EP (1) EP2615548B1 (ja)
JP (1) JP5707409B2 (ja)
WO (1) WO2012032572A1 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014078186A (ja) * 2012-10-12 2014-05-01 Mitsubishi Electric Corp 多重化装置、多重化方法および多重化プログラム
WO2015045589A1 (ja) * 2013-09-26 2015-04-02 株式会社 日立製作所 フォールトトレラントシステム及びフォールトトレラントシステム制御方法
WO2015071978A1 (ja) * 2013-11-13 2015-05-21 富士通株式会社 イベント管理プログラム、イベント管理方法および分散システム
WO2015083402A1 (ja) * 2013-12-03 2015-06-11 三菱電機株式会社 データ処理装置およびデータ処理プログラム

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05165793A (ja) * 1991-12-13 1993-07-02 Mitsubishi Electric Corp 計算機システムにおける資源の排他制御方式
JPH06282448A (ja) * 1993-03-29 1994-10-07 Nec Corp 共有資源排他制御方式
JPH08314744A (ja) 1995-05-18 1996-11-29 Hitachi Ltd フォールトトレラントシステム
JP2009217503A (ja) * 2008-03-10 2009-09-24 Hitachi Ltd 計算機システム、計算機制御方法及び計算機制御プログラム
US20100107158A1 (en) 2008-10-28 2010-04-29 Vmware, Inc. Low overhead fault tolerance through hybrid checkpointing and replay
JP2010128664A (ja) * 2008-11-26 2010-06-10 Fujitsu Ltd マルチプロセッサシステム、競合回避プログラム及び競合回避方法

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3429631B2 (ja) * 1996-09-09 2003-07-22 富士通株式会社 並列計算機システム
US6725261B1 (en) * 2000-05-31 2004-04-20 International Business Machines Corporation Method, system and program products for automatically configuring clusters of a computing environment
DE10133652A1 (de) * 2001-07-11 2003-01-30 Siemens Ag Zentraleinheit für ein redundantes Automatisierungssystem
CN1717659B (zh) * 2002-11-27 2010-04-28 甲骨文国际公司 具有互联的集群系统及方法
CN100442240C (zh) * 2003-02-27 2008-12-10 Nxp股份有限公司 数据处理系统及其控制方法
US6996502B2 (en) * 2004-01-20 2006-02-07 International Business Machines Corporation Remote enterprise management of high availability systems
US7426656B2 (en) * 2004-03-30 2008-09-16 Hewlett-Packard Development Company, L.P. Method and system executing user programs on non-deterministic processors
FR2912526B1 (fr) * 2007-02-13 2009-04-17 Thales Sa Procede de maintien du synchronisme d'execution entre plusieurs processeurs asynchrones fonctionnant en parallele de maniere redondante.

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05165793A (ja) * 1991-12-13 1993-07-02 Mitsubishi Electric Corp 計算機システムにおける資源の排他制御方式
JPH06282448A (ja) * 1993-03-29 1994-10-07 Nec Corp 共有資源排他制御方式
JPH08314744A (ja) 1995-05-18 1996-11-29 Hitachi Ltd フォールトトレラントシステム
JP2009217503A (ja) * 2008-03-10 2009-09-24 Hitachi Ltd 計算機システム、計算機制御方法及び計算機制御プログラム
US20100107158A1 (en) 2008-10-28 2010-04-29 Vmware, Inc. Low overhead fault tolerance through hybrid checkpointing and replay
JP2010128664A (ja) * 2008-11-26 2010-06-10 Fujitsu Ltd マルチプロセッサシステム、競合回避プログラム及び競合回避方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP2615548A4 *

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014078186A (ja) * 2012-10-12 2014-05-01 Mitsubishi Electric Corp 多重化装置、多重化方法および多重化プログラム
WO2015045589A1 (ja) * 2013-09-26 2015-04-02 株式会社 日立製作所 フォールトトレラントシステム及びフォールトトレラントシステム制御方法
JP2015064833A (ja) * 2013-09-26 2015-04-09 株式会社日立製作所 フォールトトレラントシステム及びフォールトトレラントシステム制御方法
WO2015071978A1 (ja) * 2013-11-13 2015-05-21 富士通株式会社 イベント管理プログラム、イベント管理方法および分散システム
JP6056986B2 (ja) * 2013-11-13 2017-01-11 富士通株式会社 イベント管理プログラム、イベント管理方法および分散システム
US9733997B2 (en) 2013-11-13 2017-08-15 Fujitsu Limited Event management method and distributed system
WO2015083402A1 (ja) * 2013-12-03 2015-06-11 三菱電機株式会社 データ処理装置およびデータ処理プログラム

Also Published As

Publication number Publication date
EP2615548B1 (en) 2016-12-28
JPWO2012032572A1 (ja) 2013-10-31
EP2615548A1 (en) 2013-07-17
EP2615548A4 (en) 2015-12-02
JP5707409B2 (ja) 2015-04-30

Similar Documents

Publication Publication Date Title
FI101432B (fi) Vikasietoinen tietokonejärjestelmä
CN100380364C (zh) 分布式系统和冗余控制方法
US20060089975A1 (en) Online system recovery system, method and program
JP4529767B2 (ja) クラスタ構成コンピュータシステム及びその系リセット方法
CN110807064B (zh) Rac分布式数据库集群系统中的数据恢复装置
KR20040015223A (ko) 클러스터형 컴퓨터 시스템의 자원 작용 수행 방법,클러스터형 컴퓨터 시스템 및 그의 수행을 위한 컴퓨터프로그램
US8082344B2 (en) Transaction manager virtualization
GB2407887A (en) Automatically modifying fail-over configuration of back-up devices
US9942107B2 (en) Computer system including plural computer nodes synchronized with each other
JP5707409B2 (ja) 計算機
US10445295B1 (en) Task-based framework for synchronization of event handling between nodes in an active/active data storage system
CN105579963B (zh) 任务处理装置、电子设备及方法
CN105373563B (zh) 数据库切换方法及装置
CN104683486A (zh) 分布式系统中处理同步消息的方法、装置、分布式系统
CN110351122A (zh) 容灾方法、装置、系统与电子设备
US9015717B2 (en) Method for processing tasks in parallel and selecting a network for communication
RU2507569C1 (ru) Способ параллельной обработки упорядоченных потоков данных
KR100978083B1 (ko) 공유 메모리형 멀티 프로세서에 있어서의 절차 호출 방법 및 절차 호출 프로그램을 기록한 컴퓨터로 판독 가능한 기록 매체
Kanrar et al. A new hybrid mutual exclusion algorithm in the absence of majority consensus
WO2021002054A1 (ja) 計算機システム及びプログラム実行方法
US9396050B2 (en) Distributed execution system and distributed program execution method
JP4833911B2 (ja) プロセッサユニットおよび情報処理方法
JP6119302B2 (ja) 排他制御装置、排他制御方法、排他制御システムおよびプログラム
JP6100135B2 (ja) フォールトトレラントシステム及びフォールトトレラントシステム制御方法
JP2010086227A (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: 10856925

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 2012532731

Country of ref document: JP

REEP Request for entry into the european phase

Ref document number: 2010856925

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 2010856925

Country of ref document: EP

NENP Non-entry into the national phase

Ref country code: DE