Claims
- 1. A method for assigning work granules from a plurality of work granule that are each currently unassigned, the method comprising the computer implemented steps of:determining which work granule of said plurality of work granules to assign to a process by examining said plurality of work granules, and determining that a particular work granule may be executed by a node at least as efficiently, under current conditions within a computer system, as any other work granule from said plurality of work granules; and in response to determining that a particular work granule may be executed by a node at least as efficiently, under current conditions within said computer system, as any other work granule from said plurality of work granules, assigning said work granule to said process.
- 2. The method of claim 1, wherein the step of determining that a particular work granule may be executed by a node at least as efficiently is performed based on a set of one or more factors, wherein a factor in said one or more factors is whether data that will be accessed during the execution of the particular work granule resides in cache memory that is local relative to said node.
- 3. The method of claim 1, wherein the step of determining that a particular work granule may be executed by a node at least as efficiently is performed based on a set of one or more factors, wherein a factor in said one or more factors includes whether data that will be accessed during execution of a particular work granule resides on a device that is local relative to said node.
- 4. The method of claim 1, wherein the step of determining that a particular work granule may be executed by a node at least as efficiently is performed based on a set of one or more factors, wherein a factor in said one or more factors is the relative size of said particular work granule to other work granules from said plurality of work granules.
- 5. The method of claim 1, wherein the step of determining that a particular work granule may be executed by a node at least as efficiently is performed based on a set of one or more factors, wherein a factor in said one or more factors is whether data that will be accessed during execution of said particular work granule resides on a first non-volatile storage device that is less busy than a second non-volatile storage device on which data resides that will be accessed during execution of another work granule from said plurality of work granules.
- 6. The method of claim 1, wherein the step of determining that a particular work granule may be executed by a node at least as efficiently is performed based on a set of one or more factors, wherein a factor in said one or more factors is whether data that will be accessed during execution of said particular work granule resides on a first non-volatile storage device and data that will be accessed during the execution of another work granule from said plurality of work granules resides in cache memory of another node.
- 7. The method of claim 6, wherein the step of determining that a particular work granule may be executed by a node at least as efficiently is performed based on a set of one or more factors, wherein a factor in said one or more factors is whethersaid data that will be accessed during the execution of said particular work granule resides on a non-volatile storage device and an updated version of said data that will be accessed during the execution of another work granule resides in cache memory while another version of said data that will be accessed during the execution of said other work granule resides on a non-volatile storage device.
- 8. The method of claim 1, wherein:said plurality of work granules includes a set of work granules that include said particular work granule, wherein during execution of each of said set of work granules a data partition will be accessed; and wherein the step of determining that a particular work granule may be executed by a node at least as efficiently is performed based on a set of one or more factors, wherein a factor in said one or more factors is whether said process resides on a node with one or more processes that are assigned work granules from said set of work granules before being assigned work granules not from said set of work granules.
- 9. The method of claim 1, further including the steps of:receiving a database statement that specifies an operation on data within a database; dividing said operation into parts to generate said plurality of work granules; and wherein the step of determining which work granule is performed in response to execution of said database statement.
- 10. A method for determining which work granule of a plurality of work granules to assign to a process running on a node of a computer system, the method comprising the steps of:identifying, for each work granule of said plurality of work granules before executing said each work granule, data that will be accessed during execution of said each work granule; determining that the data that will be accessed during the execution of a particular work granule from said plurality of work granules is accessed more efficiently by said process than data that will accessed during the execution of at least one other work granule from said plurality of work granules; and in response to determining that the data that will be accessed during the execution of a particular work granule from said plurality of work granules is accessed more efficiently by said process than the data that will accessed during the execution of at least one other work granule from said plurality of work granules, assigning said particular work granule to said process.
- 11. The method of claim 10, further including the steps of:receiving a database statement that specifies an operation on data within a database; dividing said operation into parts to generate said plurality of work granules; and wherein the step of determining is performed in response to execution of said database statement.
- 12. A computer-readable medium carrying one or more sequences of one or more instructions for assigning work granules from a plurality of work granules that are each currently unassigned, 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:determining which work granule of said plurality of work granules to assign to a process by examining said plurality of work granules, and determining that a particular work granule may be executed by a node at least as efficiently, under current conditions within a computer system, as any other work granule from said plurality of work granules; and in response to determining that a particular work granule may be executed by a node at least as efficiently, under current conditions within said computer system, as any other work granule from said plurality of work granules, assigning said work granule to said process.
- 13. The computer-readable medium of claim 12, wherein the step of determining that a particular work granule may be executed by a node at least as efficiently is performed based on a set of one or more factors, wherein a factor in said one or more factors is whether data that will be accessed during the execution of the particular work granule resides in cache memory that is local relative to said node.
- 14. The computer-readable medium of claim 12, wherein the step of determining that a particular work granule may be executed by a node at least as efficiently is performed based on a set of one or more factors, wherein a factor in said one or more factors includes whether data that will be accessed during execution of a particular work granule resides on a device that is local relative to said node.
- 15. The computer-readable medium of claim 12, wherein the step of determining that a particular work granule may be executed by a node at least as efficiently is performed based on a set of one or more factors, wherein a factor in said one or more factors is the relative size of said particular work granule to other work granules from said plurality of work granules.
- 16. The computer-readable medium of claim 12, wherein the step of determining that a particular work granule may be executed by a node at least as efficiently is performed based on a set of one or more factors, wherein a factor in said one or more factors is whether data that will be accessed during execution of said particular work granule resides on a first non-volatile storage device that is less busy than a second non-volatile storage device on which data resides that will be accessed during execution of another work granule from said plurality of work granules.
- 17. The computer-readable medium of claim 12, wherein the step of determining that a particular work granule may be executed by a node at least as efficiently is performed based on a set of one or more factors, wherein a factor in said one or more factors is whether data that will be accessed during execution of said particular work granule resides on a first non-volatile storage device and data that will be accessed during the execution of another work granule from said plurality of work granules resides in cache memory of another node.
- 18. The computer-readable medium of claim 12, further including sequences of instructions for performing the steps of:receiving a database statement that specifies an operation on data within a database; dividing said operation into parts to generate said plurality of work granules; and wherein the step of determining is performed in response to execution of said database statement.
- 19. A computer-readable medium for determining which work granule of a plurality of work granules to assign to a process running on a node of a computer system, the method comprising the steps of:identifying, for each work granule of said plurality of work granules before executing said each work granule, data that will be accessed during execution of said each work granule; determining that the data that will be accessed during the execution of a particular work granule from said plurality of work granules is accessed more efficiently by said process than data that will accessed during the execution of at least one other work granule from said plurality of work granules; and in response to determining that the data that will be accessed during the execution of a particular work granule from said plurality of work granules is accessed more efficiently by said process than the data that will accessed during the execution of at least one other work granule from said plurality of work granules, assigning said particular work granule to said process.
- 20. The computer-readable medium of claim 19, further including sequences of instructions for performing the steps of:receiving a database statement that specifies an operation on data within a database; dividing said operation into parts to generate said plurality of work granules; and wherein the step of determining is performed in response to execution of said database statement.
- 21. A computer system for assigning work granules from a plurality of work granules that are each currently unassigned, comprising:one or more processors; a memory coupled to the one or more processors, said computer system configured to perform the steps of: determining which work granule of said plurality of work granules to assign to a process by examining said plurality of work granules, and determining that a particular work granule may be executed by a node at least as efficiently, under current conditions within a computer system, as any other work granule from said plurality of work granules; and in response to determining that a particular work granule may be executed by a node at least as efficiently, under current conditions within said computer system, as any other work granule from said plurality of work granules, assigning said work granule to said process.
- 22. The computer system recited in claim 21, wherein the step of determining that a particular work granule may be executed by a node at least as efficiently is performed based on a set of one or more factors, wherein a factor in said one or more factors is whether data that will be accessed during the execution of the particular work granule resides in cache memory that is local relative to said node.
- 23. The computer system recited in claim 21, wherein the step of determining that a particular work granule may be executed by a node at least as efficiently is performed based on a set of one or more factors, wherein a factor in said one or more factors includes whether data that will be accessed during execution of a particular work granule resides on a device that is local relative to said node.
- 24. The computer system recited in claim 21, wherein the step of determining that a particular work granule may be executed by a node at least as efficiently is performed based on a set of one or more factors, wherein a factor in said one or more factors is the relative size of said particular work granule to other work granules from said plurality of work granules.
- 25. The computer system recited in claim 21, wherein the step of determining that a particular work granule may be executed by a node at least as efficiently is performed based on a set of one or more factors, wherein a factor in said one or more factors is whether data that will be accessed during execution of said particular work granule resides on a first non-volatile storage device that is less busy than a second non-volatile storage device on which data resides that will be accessed during execution of another work granule from said plurality of work granules.
- 26. The computer system recited in claim 21, wherein the step of determining that a particular work granule may be executed by a node at least as efficiently is performed based on a set of one or more factors, wherein a factor in said one or more factors is whether data that will be accessed during execution of said particular work granule resides on a first non-volatile storage device and data that will be accessed during the execution of another work granule from said plurality of work granules resides in cache memory of another node.
- 27. The computer system recited in claim 26, wherein the step of determining that a particular work granule may be executed by a node at least as efficiently is performed based on a set of one or more factors, wherein a factor in said one or more factors is whethersaid data that will be accessed during the execution of said particular work granule resides on a non-volatile storage device and an updated version of said data that will be accessed during the execution of another work granule resides in cache memory while another version of said data that will be accessed during the execution of said other work granule resides on a non-volatile storage device.
- 28. The computer system recited in claim 27, wherein:said plurality of work granules includes a set of work granules that include said particular work granule, wherein during execution of each of said set of work granules a data partition will be accessed; and wherein the step of determining that a particular work granule may be executed by a node at least as efficiently is performed based on a set of one or more factors, wherein a factor in said one or more factors is whether said process resides on a node with one or more processes that are assigned work granules from said set of work granules before being assigned work granules not from said set of work granules.
- 29. The computer system recited in claim 21, wherein the steps further include:receiving a database statement that specifies an operation on data within a database; dividing said operation into parts to generate said plurality of work granules; and wherein the step of determining which work granule is performed in response to execution of said database statement.
- 30. A computer system for assigning work granules from a plurality of work granules that are each currently unassigned, comprising:one or more processors; a memory coupled to the one or more processors, said computer system configured to perform the steps of: identifying, for each work granule of said plurality of work granules before executing said each work granule, data that will be accessed during execution of said each work granule; determining that the data that will be accessed during the execution of a particular work granule from said plurality of work granules is accessed more efficiently by said process than data that will accessed during the execution of at least one other work granule from said plurality of work granules; and in response to determining that the data that will be accessed during the execution of a particular work granule from said plurality of work granules is accessed more efficiently by said process than the data that will accessed during the execution of at least one other work granule from said plurality of work granules, assigning said particular work granule to said process.
- 31. The computer system recited in claim 30, wherein the steps further include:receiving a database statement that specifies an operation on data within a database; dividing said operation into parts to generate said plurality of work granules; and wherein the step of determining is performed in response to execution of said database statement.
- 32. A computer system for assigning work granules from a plurality of work granules that are each currently unassigned comprising:means for determining which work granule of said plurality of work granules to assign to a process by examining said plurality of work granules, and means for determining that a particular work granule may be executed by a node at least as efficiently, under current conditions within said computer system, as any other work granule from said plurality of work granules; and means for assigning said work granule to said process in response to determining that a particular work granule may be executed by a node at least as efficiently, under current conditions within said computer system, as any other work granule from said plurality of work granules.
- 33. A computer system for assigning work granules from a plurality of work granules that are each currently unassigned comprising:means for determining which work granule of said plurality of work granules to assign to a process by examining said plurality of work granules, and means for determining that a particular work granule may be executed by a node at least as efficiently, under current conditions within said computer system, as any other work granule from said plurality of work granules; and means for assigning said work granule to said process in response to determining that a particular work granule may be executed by a node at least as efficiently, under current conditions within said computer system, as any other work granule from said plurality of work granules.
Parent Case Info
This application is continuation of application Ser. No. 08/620,002 filed Mar. 21, 1996, now U.S. Pat. No. 5,892,945.
US Referenced Citations (14)
Continuations (1)
|
Number |
Date |
Country |
| Parent |
08/620002 |
Mar 1996 |
US |
| Child |
09/238670 |
|
US |