Distributing and executing tasks in peer-to-peer distributed computing
First Claim
Patent Images
1. A method for coordinating a job submission in a distributed computing framework, comprising:
- receiving an identification of a code to be executed from a job submitter;
uploading said code to be executed to said code repository;
creating a job repository corresponding to said job submission;
receiving one or more tasks from a job submitter; and
storing each of said one or more tasks in a task repository linked to said job repository.
1 Assignment
0 Petitions
Accused Products
Abstract
The present invention utilizes peer groups in a distributed architecture to decentralize its task dispatching and post-processing functions and to provide the ability to manage and run many different applications simultaneously, in an efficient and reliable manner. Jobs may be submitted to a task dispatcher or to a monitor which distributes the jobs to task dispatchers. Through a series of processes, the task dispatchers may then distribute the jobs to workers. This allows work to be distributed without utilizing a centralized server.
48 Citations
50 Claims
-
1. A method for coordinating a job submission in a distributed computing framework, comprising:
-
receiving an identification of a code to be executed from a job submitter;
uploading said code to be executed to said code repository;
creating a job repository corresponding to said job submission;
receiving one or more tasks from a job submitter; and
storing each of said one or more tasks in a task repository linked to said job repository. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A method for coordinating a job in a distributed computing framework, comprising:
-
receiving a poll from an idle worker, said poll including information regarding resources available from said idle worker;
polling a repository for tasks to be performed on available codes;
distributing one or more of said tasks to said worker, said one or more tasks chosen based on said information;
receiving a result of a task execution from said worker; and
updating said repository with information about task completion. - View Dependent Claims (10, 11, 12, 13, 14, 15, 19)
-
-
16. A method for coordinating execution of a task by an idle worker in a distributed computing framework, comprising:
-
polling a task dispatcher to inform said task dispatcher that said worker is idle and provide information regarding resources available from said worker;
receiving one or more tasks from said task dispatcher;
executing said one or more tasks; and
returning results of said execution to said task dispatcher. - View Dependent Claims (18, 20, 21)
-
-
17. The method of claim 17, wherein said information regarding resources includes information regarding codes cached by said worker.
-
22. An apparatus for coordinating a job submission in a distributed computing framework, comprising:
-
a code to be executed identification receiver;
a code to be executed code repository uploader coupled to said code to be executed identification receiver;
a job repository creator coupled to said code to be executed identification receiver;
a job submitter task receiver; and
a task repository storer coupled to said job submitter task receiver and to said job repository creator. - View Dependent Claims (23)
-
-
24. An apparatus for coordinating a job in a distributed computing framework, comprising:
-
an idle worker poll receiver;
a repository poller coupled to said idle worker poll receiver;
a worker task distributor coupled to said repository poller;
a task execution result receiver; and
a repository information updater coupled to said task execution result receiver. - View Dependent Claims (25)
-
-
26. An apparatus for coordinating execution of a task by an idle worker in a distributed computing framework, comprising:
-
a task dispatcher poller;
a task receiver;
a task executor coupled to said task receiver; and
an execution result returner coupled to said task executor.
-
-
27. An apparatus for coordinating a job submission in a distributed computing framework, comprising:
-
means for receiving an identification of a code to be executed from a job submitter;
means for uploading said code to be executed to said code repository;
means for creating a job repository corresponding to said job submission;
means for receiving one or more tasks from a job submitter; and
means for storing each of said one or more tasks in a task repository linked to said job repository. - View Dependent Claims (28, 29, 30, 31, 32, 33, 34)
-
-
35. An apparatus for coordinating a job in a distributed computing framework, comprising:
-
means for receiving a poll from an idle worker, said poll including information regarding resources available from said idle worker;
means for polling a repository for tasks to be performed on available codes;
means for distributing one or more of said tasks to said worker, said one or more tasks chosen based on said information;
means for receiving a result of a task execution from said worker; and
means for updating said repository with information about task completion. - View Dependent Claims (36, 37, 38, 39, 40, 41)
-
-
42. An apparatus for coordinating execution of a task by an idle worker in a distributed computing framework, comprising:
-
means for polling a task dispatcher to inform said task dispatcher that said worker is idle and provide information regarding resources available from said worker;
means for receiving one or more tasks from said task dispatcher;
means for executing said one or more tasks; and
means for returning results of said execution to said task dispatcher. - View Dependent Claims (43, 44, 45, 46, 47)
-
-
48. A program storage device readable by a machine, tangibly embodying a program of instructions executable by the machine to perform a method for coordinating a job submission in a distributed computing framework, the method comprising:
-
receiving an identification of a code to be executed from a job submitter;
uploading said code to be executed to said code repository;
creating a job repository corresponding to said job submission;
receiving one or more tasks from a job submitter; and
storing each of said one or more tasks in a task repository linked to said job repository.
-
-
49. A program storage device readable by a machine, tangibly embodying a program of instructions executable by the machine to perform a method for coordinating a job in a distributed computing framework, the method comprising:
-
receiving a poll from an idle worker, said poll including information regarding resources available from said idle worker;
polling a repository for tasks to be performed on available codes;
distributing one or more of said tasks to said worker, said one or more tasks chosen based on said information;
receiving a result of a task execution from said worker; and
updating said repository with information about task completion.
-
-
50. A program storage device readable by a machine, tangibly embodying a program of instructions executable by the machine to perform a method for coordinating execution of a task by an idle worker in a distributed computing framework, the method comprising:
-
polling a task dispatcher to inform said task dispatcher that said worker is idle and provide information regarding resources available from said worker;
receiving one or more tasks from said task dispatcher;
executing said one or more tasks; and
returning results of said execution to said task dispatcher.
-
Specification