| US 7,480,827 B2 | ||
| Fault tolerance and failover using active copy-cat | ||
| Paul J. Callaway, Chicago, Ill. (US); Robert Hagemann, III, Chicago, Ill. (US); Zuber Shethwala, Hoffman Estates, Ill. (US); Troy Reese, South Elgin, Ill. (US); Paul Andrew Bauerschmidt, Chicago, Ill. (US); and Enrico Ferrari, Farmington Hills, Mich. (US) | ||
| Assigned to Chicago Mercantile Exchange, Chicago, Ill. (US) | ||
| Filed on Aug. 11, 2006, as Appl. No. 11/502,998. | ||
| Prior Publication US 2008/0126853 A1, May 29, 2008 | ||
| Int. Cl. G06F 11/00 (2006.01); G06F 11/14 (2006.01) | ||
| U.S. Cl. 714—38 [714/11; 714/6] | 13 Claims |

| 1. A method of providing fault tolerance to a primary instance, the method comprising:
receiving a copy of a first input transmitted to the primary instance;
receiving a copy of a second input transmitted to the primary instance, the copy of the second input being received subsequent
to the copy of the first input;
waiting, in response to the receiving of the copy of the first input, for the primary instance to transmit a first primary
result based on the first input;
waiting, in response to the receiving of the copy of the second input, for the primary instance to transmit a second primary
result based on the second input;
forwarding the copy of the first input to a backup instance operative to generate a first backup result based on the forwarded
copy of the first input upon the transmission of the first and second primary results by the primary instance, the first primary
result having been transmitted prior to the second primary result;
forwarding the copy of the second input to the backup instance operative to generate a second backup result based on the forwarded
copy of the second input upon the transmission of the first and second primary results by the primary instance, the second
primary result having transmitted prior to the first primary result;
determining that the first primary result is not likely to be transmitted;
preventing, based on the determination that the first primary result is not likely to be transmitted, the primary instance
from completing a transaction that the primary instance is supposed to complete to continue operating; and
transmitting the first backup result when the first primary result is not likely to be transmitted.
|