IP Library Granted Patent US 7,571,347
Granted Patent B2
US 7,571,347 · App. 11/385,429 · Granted Aug 4, 2009

Method and apparatus for providing fault-tolerance in parallel-processing systems

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,571,347
App. No.
11/385,429
Granted
Aug 4, 2009
Kind
B2
Abstract

A system that provides fault tolerance in a parallel processing system. During operation, the system executes a parallel computing application in parallel across a subset of computing nodes within the parallel processing system. During this process, the system monitors telemetry signals within the parallel processing system. The system analyzes the monitored telemetry signals to determine if the probability that the parallel processing system will fail is increasing. If so, the system increases the frequency at which the parallel computing application is checkpointed, wherein a checkpoint includes the state of the parallel computing application at each computing node within the parallel processing system.

Claims (42)

1. A method for providing fault-tolerance in a parallel-processing system, comprising:

executing a parallel-computing application in parallel across a subset of computing nodes within the parallel-processing system;

monitoring telemetry signals within the parallel-processing system;

analyzing the monitored telemetry signals to determine if the probability that the parallel-processing system will fail is increasing by:

using the monitored telemetry signals to generate a health index, wherein prior to executing the parallel-computing application, the method further comprises initializing the health index to 1, which indicates that the parallel-processing system is healthy, wherein the probability that the parallel-processing system will fail increases as the health index approaches 0; and

determining if the health index indicates that the probability that the parallel-processing system will fail is increasing; and

if so, increasing the frequency at which the parallel-computing application is checkpointed, wherein a checkpoint includes the state of the parallel-computing application at each computing node within the parallel-processing system.

2. The method of claim 1 , wherein increasing the frequency at which the parallel-computing application is checkpointed involves increasing the frequency by a factor which is inversely proportional to the value of the health index.

3. The method of claim 1 , wherein the method further comprises:

determining if a checkpoint time interval has elapsed; and

if so, performing a checkpointing operation to save the state of the parallel-computing application.

4. The method of claim 1 , wherein if the parallel-processing system fails, the method further comprises:

using the checkpoint to restore the state of the parallel-processing system to the state of the last checkpoint; and

resuming execution of the parallel-computing application from the restored state.

5. The method of claim 1 , wherein the telemetry signals can include hardware variables and/or software variables.

6. The method of claim 5 , wherein the software variables include load metrics, CPU utilization, idle time, memory utilization, disk activity, transaction latencies, and other performance metrics reported by the operating system.

7. The method of claim 5 , wherein the hardware variables include temperature and voltage.

8. A computer-readable storage medium storing instructions that when executed by a computer cause the computer to perform a method for providing fault-tolerance in a parallel-processing system, the method comprising:

executing a parallel-computing application in parallel across a subset of computing nodes within the parallel-processing system;

monitoring telemetry signals within the parallel-processing system;

analyzing the monitored telemetry signals to determine if the probability that the parallel-processing system will fail is increasing by;

using the monitored telemetry signals to generate a health index, wherein prior to executing the parallel-computing application, the method further comprises initializing the health index to 1, which indicates that the parallel-processing system is healthy, wherein the probability that the parallel-processing system will fail increases as the health index approaches 0; and

determining if the health index indicates that the probability that the parallel-processing system will fail is increasing; and

if so, increasing the frequency at which the parallel-computing application is checkpointed, wherein a checkpoint includes the state of the parallel-computing application at each computing node within the parallel-processing system.

9. The computer-readable storage medium of claim 8 , wherein increasing the frequency at which the parallel-computing application is checkpointed involves increasing the frequency by a factor which is inversely proportional to the value of the health index.

10. The computer-readable storage medium of claim 8 , wherein the method further comprises:

determining if a checkpoint time interval has elapsed; and

if so, performing a checkpointing operation to save the state of the parallel-computing application.

11. The computer-readable storage medium of claim 8 , wherein if the parallel-processing system fails, the method further comprises:

using the checkpoint to restore the state of the parallel-processing system to the state of the last checkpoint; and

resuming execution of the parallel-computing application from the restored state.

12. The computer-readable storage medium of claim 8 , wherein the telemetry signals can include hardware variables and/or software variables.

13. The computer-readable storage medium of claim 12 , wherein the software variables include load metrics, CPU utilization, idle time, memory utilization, disk activity, transaction latencies, and other performance metrics reported by the operating system.

14. The computer-readable storage medium of claim 12 , wherein the hardware variables include temperature and voltage.

15. An apparatus that provides fault-tolerance in a parallel-processing system, comprising:

an execution mechanism configured to execute a parallel-computing application in parallel across a subset of computing nodes within the parallel-processing system;

a health-monitoring mechanism configured to monitor telemetry signals within the parallel-processing system;

a checkpointing mechanism configured to:

analyze the monitored telemetry signals to determine if a probability that the parallel-processing system will fail is increasing by:

using the monitored telemetry signals to generate a health index, wherein prior to executing the parallel-computing application, the checkpointing mechanism is farther configured to initialize the health index to 1, which indicates that the parallel-processing system is healthy, wherein the probability that the parallel-processing system will fail increases as the health index approaches 0; and

determining if the health index indicates that the probability that the parallel-processing system will fail is increasing; and

if so, to increase the frequency at which the parallel-computing application is checkpointed, wherein a checkpoint includes the state of the parallel-computing application at each computing node within the parallel-processing system.

Assignments (2)
MERGER AND CHANGE OF NAME Recorded Dec 16, 2015
From: ORACLE USA, INC.; SUN MICROSYSTEMS, INC.; ORACLE AMERICA, INC.
To: ORACLE AMERICA, INC.
Reel/Frame 037304/0183 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 20, 2006
From: GROSS, KENNY C.; WOOD, ALAN P.
To: SUN MICROSYSTEMS, INC.
Reel/Frame 017720/0285 →