Patent ID: 7856639
Filing Date: 2010-12-21
Classification: G06F

Abstract:
1. A method of monitoring and controlling applications executing on a plurality of computing nodes of a computing system, comprising: executing, on a computing node of said plurality of computing nodes, a coordinator process that initiates control of executions of said applications and retrieves statuses of said applications, including an untrusted application and a second application that are capable of being executed on said computing node, wherein said untrusted application is designated as likely to experience a failure based on pre-defined criteria, and wherein said second application is different from said untrusted application; said computing node executing a first control process that controls a first execution of said untrusted application and executing a second control process that controls a second execution of said second application, wherein said first control process is different from said second control process; initiating said first execution of said untrusted application; initiating said second execution of said second application; subsequent to said executing said first control process, subsequent to said executing said coordinator process, and subsequent to said initiating said first execution of said untrusted application, said first control process controlling said first execution of said untrusted application by sending a first status of said untrusted application to a shared memory accessible by said first and second control processes and by said coordinator process; subsequent to said executing said second control process, subsequent to said executing said coordinator process, and subsequent to said initiating said second execution of said second application, said second control process controlling said second execution of said second application by sending a second status of said second application to said shared memory; subsequent to said sending said first status of said untrusted application to said shared memory and subsequent to said sending said second status of said second application to said shared memory, said computing node terminating said first execution of said untrusted application based on said failure of said untrusted application; said computing node terminating said first control process in response to said terminating said first execution of said untrusted application and based on said failure of said untrusted application; subsequent to said terminating said first control process and prior to a restart of said first control process, said computing node continuing said executing said coordinator process without said coordinator process terminating in response to said terminating said first control process, said terminating said first execution of said untrusted application, or said failure of said untrusted application, wherein said continuing said executing said coordinator process includes retrieving said first status of said untrusted application from said shared memory, retrieving said second status of said second application from said shared memory, and sending a command to said second control process via said shared memory to control said second execution of said second application; and subsequent to said first control process terminating and prior to said restart of said first control process, said computing node continuing said executing said second control process without said second control process terminating in response to said terminating said first control process, said terminating said first execution of said untrusted application, or said failure of said untrusted application, wherein said continuing said executing said second control process includes said second control process receiving said command sent by said coordinator process via said shared memory and in response thereto, controlling said second execution of said second application.