A method for processing requests to service computational tasks. An application server system receives requests to run various jobs. A job indicates that a certain application program is to be executed with a certain set of input. The application server system includes a master computer and multiple slave computers. The master computer receives requests to run jobs, selects a slave computer to run each job, and then assigns each job to slave computer selected for that job. The master computer of the application server system receives the requests from client computers that may be connected to the application server system via the Internet. A client-side component of the application server system may execute on the client computers to assist users in submitting their requests.
Legal claims defining the scope of protection, as filed with the USPTO.
1. A method in an application server system for processing failures, the method comprising: under control of a plot component of a farm system, detecting that an application program for a job has failed; and notifying a master farmer system of the farm system that failure of the application program has been detected; and under control of the master farmer system, when the failure is not a result of improper input to the application program, assigning the job to another farm system; and when the failure is a result of improper input to the application program, notifying a client that submitted the job.
2. The method of claim 1 including sending to the client that submitted the job a new estimated completion time.
3. The method of claim 1 wherein the notification to the client indicates a reason for the failure.
4. The method of claim 1 wherein the detecting that an application program for a job has failed includes monitoring the size of an output file of the application program.
5. The method of claim 1 wherein the detecting that an application program for a job has failed includes monitoring reading of an input file of the application program.
6. The method of claim 1 wherein the assigning includes determining an estimated completion time for each of a plurality of farm systems and assigning the job to the farm system with the earliest estimated completion time.
7. The method of claim 6 wherein determining the estimated completion time includes determining a start time, a computing resource load on the farm system if the job were to start at the start time, an execution time of the job on the farm system based on a job size and the computing resource load of the farm system at the start time, and a completion time based on the start time and execution time.
8. A method in a master farmer system for processing failures, the method comprising: receiving a notification from a farm system of a failure of an application program for a job; and assigning the job to another farm system when the failure is not a result of improper input to the application program and notifying a client that submitted the job when the failure is a result of improper input to the application program.
9. The method of claim 8 including sending to the client that submitted the job a new estimated completion time when the job is assigned to another farm system.
10. The method of claim 8 wherein the notifying a client includes indicating a reason for the failure.
11. A method in an application server system for processing failures, the method comprising: step for detecting that a job has failed while executing on a farm system; and step for, when the failure is not a result of improper input to an application program of the job, assigning the job to another farm system and, when the failure is a result of improper input to the application program, notifying a client that submitted the job that the job has failed.
12. The method of claim 11 including step for sending to the client that submitted the job a new estimated completion time.
13. The method of claim 11 wherein the notifying indicates reason for the failure.
14. The method of claim 11 wherein the step for detecting includes step for monitoring the size of an output file of the application program.
15. The method of claim 11 wherein the step for detecting includes step for monitoring reading of an input file of the application program.
16. The method of claim 11 wherein the step for assigning the job to another farm system includes step for determining an estimated completion time for each of a plurality of farm systems wherein the job is assigned to the farm system with the earliest estimated completion time.
17. The method of claim 16 wherein the step for determining an estimated completion time includes step for determining a start time, a computing resource load on the farm system if the job were to start at the start time, an execution time of the job on the farm system based on a job size and the computing resource load on the farm system at the start time, and a completion time based on the start time and execution time.
18. A method for recovering from failures in a farm system, the system comprising: detecting when an application program for a job has failed while executing on a farm system and detecting when the farm system has failed; when the farm system has failed, identifying all the jobs that were currently assigned to the farm system and assigning each job to another farm system; and when an application program for a job has failed while executing on a farm system, when the failure is not a result of improper input to the application program, assigning the job to another farm system and, when the failure is a result of improper input to the application program, notifying a client that submitted the job.
19. The method of claim 18 wherein the failure of the farm system is detected as a result of the farm system not responding.
20. The method of claim 18 wherein the failure of the farm system is a hardware failure of the farm system.
21. The method of claim 18 wherein the farm system indicates to a master farmer system that a failure has occurred.
22. The method of claim 18 wherein the failure is a failure of a software component of the farm system.
23. The method of claim 18 including sending to the client that submitted the job a new estimated completion time.
24. The method of claim 18 wherein the notifying indicates a reason for the failure.
25. The method of claim 18 wherein the detecting that an application program for a job has failed includes monitoring the size of an output file of the application program.
26. The method of claim 18 wherein the detecting that an application program for a job has failed includes monitoring reading of an input file of the application program.
27. The method of claim 18 wherein the assigning includes determining an estimated completion time for farm systems and assigning the job to the farm system with the earliest estimated completion time.
28. The method of claim 27 wherein the determining an estimated completion time includes determining a start time, a computing resource load on the farm system if the job were to start at the start time, an execution time of the job on the farm system based on a job size and the computing resource load on the farm system at the start time.
Cooperative Patent Classification codes for this invention. Click any code to explore related patents in that topic.
January 10, 2000
September 9, 2003
Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.