Distributed resource management
First Claim
1. A method for processing data on a distributed system that includes a first node, a second node and a third node, the method comprising the steps of:
- establishing, on the third node, a first dedicated process pool containing one or more server processes;
using the one or more server processes contained in the first dedicated process pool to perform work for only client processes executing on the first node;
establishing, on the third node, a second dedicated process pool containing one or more server processes;
using the one or more server processes contained in the second dedicated process pool to perform work for only client processes executing on the second node;
in response to requests to perform work from client processes on the first node, assigning one or more server processes from the first dedicated process pool to perform the work; and
in response to requests to perform work from client processes on the second node, assigning one or more server processes from the second dedicated process pool to perform the work.
2 Assignments
0 Petitions
Accused Products
Abstract
An approach for managing resources in a distributed computing system includes establishing dedicated process pools on nodes where work is to be performed. Each dedicated process pool is associated with a particular remote node and includes one or more processes. The one or more processes in each dedicated process pool perform work on behalf of processes on the associated remote node. Each dedicated process pool is managed by processes on the associated remote node using local synchronization data maintained on the associated remote node. The assignment of particular processes to perform work on behalf of processes on the associated remote node is performed by the processes on the associated remote node. In addition, the spawning of additional processes or the termination of existing processes from a dedicated process pool is managed by the processes on the associated remote node.
93 Citations
32 Claims
-
1. A method for processing data on a distributed system that includes a first node, a second node and a third node, the method comprising the steps of:
-
establishing, on the third node, a first dedicated process pool containing one or more server processes;
using the one or more server processes contained in the first dedicated process pool to perform work for only client processes executing on the first node;
establishing, on the third node, a second dedicated process pool containing one or more server processes;
using the one or more server processes contained in the second dedicated process pool to perform work for only client processes executing on the second node;
in response to requests to perform work from client processes on the first node, assigning one or more server processes from the first dedicated process pool to perform the work; and
in response to requests to perform work from client processes on the second node, assigning one or more server processes from the second dedicated process pool to perform the work. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
assigning a first set of one or more server processes from the first dedicated process pool to perform work for a first request from the client processes on the first node; and
assigning a second set of one or more server processes from the first dedicated process pool to perform work for a second request from the client processes on the first node.
-
-
3. The method of claim 1, further including the steps of
determining whether the first dedicated process pool contains enough server processes to perform work requested by the client processes on the first node, and if the first dedicated process pool does not contain enough server processes to perform the work requested by the client processes on the first node, then increasing the number of server processes in the first dedicated process pool. -
4. The method of claim 3, further including the steps of
establishing first synchronization data on the first node, the first synchronization data identifying the one or more server processes in the first dedicated process pool and the status of the one or more server processes in the first dedicated process pool, and examining one or more entries in first synchronization data. -
5. The method of claim 1, further including the steps of
establishing first synchronization data on the first node, the first synchronization data identifying each server process in the first dedicated process pool and a status of each server process in the first dedicated process pool, and updating the first synchronization data to indicate which processes in the first dedicated process pool have been assigned to perform a particular piece of work. -
6. The method of claim 5, further including the step of after the particular piece of work has been performed, updating the first synchronization data to indicate that the one or more server processes that performed the piece of work are available to be assigned to perform other work for client processes on the first node.
-
7. The method of claim 5, further including the step of if the one or more server processes assigned to perform the work for the client processes on the first node prematurely terminate before the work has been performed, performing the steps of:
-
updating the first synchronization data to reflect that the one or more server processes assigned to perform the work for the client processes on the first node have prematurely terminated and are not longer available, assigning another one or more server processes from the first dedicated process pool to complete the work for the client processes on the first node, and updating the first synchronization data to reflect that the other one or more server processes from the first dedicated process pool have been assigned to perform the work for the client processes on the first node.
-
-
8. The method of claim 5, further including the step of after detecting that a particular server process in the first dedicated process pool has been idle for a predetermined amount of time, performing the steps of:
-
terminating the particular server process, and updating the first synchronization data to reflect that the particular server process has been terminated and is no longer available.
-
-
9. The method of claim 5, further including the step of after detecting that the client processes on the first node for whom the work is being performed have prematurely terminated, performing the steps of:
-
stopping the one or more server processes assigned to perform the work for the client processes on the first node from performing the first work, and updating the first synchronization data to reflect that the one or more server processes assigned to perform the work for the client processes on the first node are no longer performing the work and are available to perform work only for other client processes on the first node.
-
-
10. The method of claim 1, further including the steps of
establishing first synchronization data on the first node, the first synchronization data identifying the one or more server processes in the first dedicated process pool and their status, and establishing second synchronization data on the second node, the second synchronization data identifying the one or more server processes in the second dedicated process pool and their status. -
11. The method of claim 1, further including the steps of
establishing, on the first node, a third dedicated process pool containing one or more server processes, using the one or more server processes in the third dedicated process pool to perform work for only client processes executing on the third node, and in response to requests to perform work from client processes on the third node, assigning one or more server processes from the third dedicated process pool to perform the work. -
12. The method of claim 11, further including the step of establishing third synchronization data on the third node, the third synchronization data identifying the one or more server processes in the third dedicated process pool and their status.
-
13. A method for processing data on a distributed system that includes a first node, a second node and a third node, the method comprising the steps of:
-
establishing, on the first node, first synchronization data associated with client processes on the first node at identifies one or more server processes contained in a first dedicated process pool on a second node that are established to perform work only for the client processes on the first node, the first synchronization data also specifying which of the one or more server processes contained in the first dedicated process pool are currently performing work for the client processes on the first node and which of the client processes on the first node the one or more server processes contained in the fist dedicated process pool are performing work for; and
establishing, on the second node, second synchronization data associated with client processes on the second node that identifies one or more server processes contained in a second dedicated process pool on a the second node that are established to perform work only for the client processes on the second node, the second synchronization data also specifying which of the one or more server processes contained in the second dedicated process pool are currently performing work for the client processes on the second node and which of the client processes on the second node the one or more server processes contained in the second dedicated process pool are performing work for. - View Dependent Claims (14, 15)
assigning one or more server processes from the first dedicated process pool to perform the work requested by the client processes on the first node, and updating the first synchronization data to reflect that the one or more server processes from the first dedicated process pool have been assigned to perform the work requested by the client processes on the first node. -
15. The method of claim 14, further including the step of in response to the client processes on the second node requesting that work be performed by the one or more server processes contained in the second dedicated process pool, performing the steps of
assigning one or more server processes from the second dedicated process pool to perform the work requested by the client processes on the second node, and updating the second synchronization data to reflect that the one or more server processes from the second dedicated process pool have been assigned to perform the work requested by the client processes on the second node.
-
-
16. A distributed computing system for processing data, the distributed computing system comprising:
-
a first node with a first plurality of client processes executing thereon;
a second node with a second plurality of client processes executing thereon; and
a third node including;
a first dedicated process pool containing one or more server processes configured to perform work for only the first plurality of client processes, and a second dedicated process pool containing one or more server processes configured to perform work for only the second plurality of client processes. - View Dependent Claims (17)
first synchronization data maintained on the first node for maintaining an identity and status of the one or more server processes contained in the first dedicated process pool, and second synchronization data maintained on the second node for maintaining an identity and status of the one or more server processes contained in the second dedicated process pool.
-
-
18. A computer-readable medium carrying one or more sequences of one or more instructions for method processing data on a distributed system that includes a first node, a second node and a third node, the one or more sequences of one or more instructions including instructions which, when executed by one or more processors, cause the one or more processors to perform the steps of:
-
establishing, on the third node, a first dedicated process pool containing one or more server processes;
using the one or more server processes contained in the first dedicated process pool to perform work for only client processes executing on the first node;
establishing, on the third node, a second dedicated process pool containing one or more server processes;
using the one or more server processes contained in the second dedicated process pool to perform work for only client processes executing on the second node;
in response to requests to perform work from client processes on the first node, assigning one or more server processes from the first dedicated process pool to perform the work; and
in response to requests to perform work from client processes on the second node, assigning one or more server processes from the second dedicated process pool to perform the work. - View Dependent Claims (19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29)
assigning a first set of one or more server processes from the first dedicated process pool to perform work for a first request from the client processes on the first node; and
assigning a second set of one or more server processes from the first dedicated process pool to perform work for a second request from the client processes on the first node.
-
-
20. The computer-readable medium of claim 18, further including instructions for performing the steps of
determining whether the first dedicated process pool contains enough server processes to perform work requested by the client processes on the first node, and if the first dedicated process pool does not contain enough server processes to perform the work requested by the client processes on the first node, then increasing the number of server processes in the first dedicated process pool. -
21. The computer-readable medium of claim 20, further including instructions for performing the steps of
establishing first synchronization data on the first node, the first synchronization data identifying the one or more server processes in the first dedicated process pool and the status of the one or more server processes in the first dedicated process pool, and examining one or more entries in first synchronization data. -
22. The computer-readable medium of claim 18, further including instructions for performing the steps of
establishing first synchronization data on the first node, the first synchronization data identifying each server process in the first dedicated process pool and a status of each server process in the first dedicated process pool, and updating the first synchronization data to indicate which processes in the first dedicated process pool have been assigned to perform a particular piece of work. -
23. The computer-readable medium of claim 22, further including instructions for performing the step of after the particular piece of work has been performed, updating the first synchronization data to indicate that the one or more server processes that performed the piece of work are available to be assigned to perform other work for client processes on the first node.
-
24. The computer-readable medium of claim 22, further including instructions for performing the step of if the one or more server processes assigned to perform the work for the client processes on the first node prematurely terminate before the work has been performed, performing the steps of:
-
updating the first synchronization data to reflect that the one or more server processes assigned to perform the work for the client processes on the first node have prematurely terminated and are not longer available, assigning another one or more server processes from the first dedicated process pool to complete the work for the client processes on the first node, and updating the first synchronization data to reflect that the other one or more server processes from the first dedicated process pool have been assigned to perform the work for the client processes on the first node.
-
-
25. The computer-readable medium of claim 22, further including instructions for performing the step of after detecting that a particular server process in the first dedicated process pool has been idle for a predetermined amount of time, performing the steps of:
-
terminating the particular server process, and updating the first synchronization data to reflect that the particular server process has been terminated and is no longer available.
-
-
26. The computer-readable medium of claim 22, further including instructions for performing the step of after detecting that the client processes on the first node for whom the work is being performed have prematurely terminated, performing the steps of:
-
stopping the one or more server processes assigned to perform the work for the client processes on the first node from performing the first work, and updating the first synchronization data to reflect that the one or more server processes assigned to perform the work for the client processes on the first node are no longer performing the work and are available to perform work only for other client processes on the first node.
-
-
27. The computer-readable medium of claim 18, further including instructions for performing the steps of
establishing first synchronization data on the first node, the first synchronization data identifying the one or more server processes in the first dedicated process pool and their status, and establishing second synchronization data on the second node, the second synchronization data identifying the one or more server processes in the second dedicated process pool and their status. -
28. The computer-readable medium of claim 18, further including instructions for performing the steps of
establishing, on the first node, a third dedicated process pool containing one or more server processes, using the one or more server processes in the third dedicated process pool to perform work for only client processes executing on the third node, and in response to requests to perform work from client processes on the third node, assigning one or more server processes from the third dedicated process pool to perform the work. -
29. The computer-readable medium of claim 28, further including instructions for performing the step of establishing third synchronization data on the third node, the third synchronization data identifying the one or more server processes in the third dedicated process pool and their status.
-
30. A computer-readable medium carrying a one or more sequences of one or more instructions for processing data on a distributed system that includes a first node, a second node and a third node, the one or more sequences of one or more instructions including instructions which, when executed by one or more processors, cause the one or more processors to the steps of:
-
establishing, on the first node, first synchronization data associated with client processes on the first node that identifies one or more server processes contained in a first dedicated process pool on a second node that are established to perform work only for the client processes on the first node, the first synchronization data also specifying which of the one or more server processes contained in the first dedicated process pool are currently performing work for the client processes on the first node and which of the client processes on the first node the one or more server processes contained in the first dedicated process pool are performing work for; and
establishing, on the second node, second synchronization data associated with client processes on the second node that identifies one or more server processes contained in a second dedicated process pool on the second node that are established to perform work only for the client processes on the second node, the second synchronization data also specifying which of the one or more server processes contained in the second dedicated process pool are currently performing work for the client processes on the second node and which of the client processes on the second node the one or more server processes contained in the second dedicated process pool are performing work for. - View Dependent Claims (31, 32)
assigning one or more server processes from the first dedicated process pool to perform the work requested by the client processes on the first node, and updating the first synchronization data to reflect that the one or more server processes from the first dedicated process pool have been assigned to perform the work requested by the client processes on the first node. -
32. The computer-readable medium of claim 31, further comprising one or more additional instructions which, when executed by the one or more processes, cause the one or more processors to perform the step of in response to the client processes on the second node requesting that work be performed by the one or more server processes contained in the second dedicated process pool, performing the steps of
assigning one or more server processes from the second dedicated process pool to perform the work requested by the client processes on the second node, and updating the second synchronization data to reflect that the one or more server processes from the second dedicated process pool have been assigned to perform the work requested by the client processes on the second node.
-
Specification