×

Computer system including plural computer nodes synchronized with each other

  • US 9,942,107 B2
  • Filed: 10/25/2010
  • Issued: 04/10/2018
  • Est. Priority Date: 10/25/2010
  • Status: Active Grant
First Claim
Patent Images

1. A computer system comprising:

  • a plurality of computer nodes, each of said computer nodes comprising;

    a processor connected to a memory storing instructions that cause the processor to execute;

    an external communications unit for receiving a processing request;

    an application unit for executing processing in accordance with said processing request;

    a synchronization unit for controlling synchronization of said processing between each said computer node and other computer nodes, said processing being executed by said application unit of each said computer node; and

    an inter-node communications unit for transmitting inter-node communications packets to said other nodes and receiving said inter-node communications packets from said other computer nodes,wherein;

    said inter-node communications unit of each said computer node attaches identification information as transmission-source identification information and process-state information for indicating progress of processing executed by said application unit of said computer node to each of said inter-node communications packets,said inter-node communications unit of each said computer node receiving plural inter-node communications packets from said other computer nodes via said inter-node communications unit, said identification information and said process-state information for indicating progress of processing executed by said application unit of said other computer nodes being attached to said inter-node communications packets,said synchronization unit of each said computer node comparing said process-state information of said computer node to said process-state information of said other computer nodes of said inter-node communications packets, and determining a majority group as said computer nodes which have matching said processing state information,said synchronization unit of each said computer node attaches said identification information to said processing request,said synchronization unit of each said computer node then transmitting said processing request to said other computer nodes via said inter-node communications unit, said identification information being attached to said processing request that is received by said external communications unit,said synchronization unit of each said computer node then receiving plural processing requests from said other computer nodes via said inter-node communications unit, said identification information of said other computer nodes being attached to said processing requests,said synchronization unit of each said computer node of said majority group then selecting one of the processing requests from among said plural processing requests received from said other computer nodes by said inter-node communications unit and said processing request received by said external communications unit in accordance with a first predetermined judgment criterion,said application unit of each of said computer nodes of said majority group then executing said selected one of the processing requests,said first predetermined judgment criterion is whether or not more than half of said computer nodes of said majority group have respectively received said processing requests via said respective external communications unit, said identification information of said processing requests being attached to each said processing request,said synchronization unit of each said computer node of said majority group transmits an execution result to said other computer nodes via said inter-node communications unit, said execution result being acquired by executing said selected processing request with said application unit,said synchronization unit of each said computer node then receiving execution results from said computer nodes of said majority group via said inter-node communications unit,said synchronization unit of each said computer node of said majority group then selecting an output result in accordance with a second predetermined judgment criterion,said selection of said output result being made from among said execution results received from said computer nodes of said majority group by said inter-node communications unit, and said execution result acquired by said application unit, said second predetermined judgment criterion being based on the number of said computer nodes of said majority group that have acquired a same said execution result,said second predetermined judgment criterion is whether or not more than half of the computer nodes of said majority group have received said same execution result from each said application unit of said computer nodes of said majority group,said synchronization unit of each said computer node of said majority group then electing a leader computer-node candidate, if said synchronization unit of each said computer node of said majority group has received said selected output result as said execution result from said application unit,said election of said leader computer-node candidate being made from among said computer nodes and said respective computer node of said majority group, each of which has transmitted said selected output result as said execution result of said application unit,said synchronization unit of each said computer node then transmitting said identification information of said leader computer-node candidate to said other computer nodes of said majority group via said inter-node communications unit,said synchronization unit of each said computer node of said majority group then receiving said identification information of said leader computer-node candidate from said other computer nodes of said majority group via said inter-node communications unit, said leader computer-node candidate being selected by said other computer nodes of said majority group,said synchronization unit of each said computer node of said majority group then making a judgment as to whether or not said leader computer-node candidate selected by said respective computer node should be selected as a leader computer node of said majority group,said judgment on said election of said leader computer node being made depending on the number of said computer nodes that have been selected, as said leader computer-node candidates, said computer nodes being identified by the same said identification information, andsaid leader computer node outputting said output result selected in accordance with said second predetermined judgment criterion in response to said selected one of the processing requests from among said plural processing requests,wherein said synchronization unit of each said computer node supervises said output result of said leader computer node, if said leader computer-node candidate selected by said respective computer node is selected as said leader computer node, and if said respective computer node is not selected as said leader computer node, said output result being outputted by another computer node that is selected as said leader computer node,if said output result outputted by said leader computer node is different from said output result selected in accordance with said second predetermined judgment criterion, said majority group then elects another leader computer node, andsaid output result selected in accordance with said second predetermined judgment criterion being outputted by said other leader computer node, and said election of the other leader computer node being among each of said other computer nodes of said majority group which has selected the same output result in accordance with said second predetermined judgment criterion.

View all claims
  • 1 Assignment
Timeline View
Assignment View
    ×
    ×