System and method for adjusting a number of processing modules based on processing load
First Claim
1. A computer-readable non-transitory medium encoded with a workflow application comprising modules executable by a processor and configured to process a plurality of work items in a workflow, the workflow application comprising:
- a queue storage module to receive a plurality of work items from a remote computer and to store each of the plurality of work items in one of a plurality of queues based on a state of each work item in the workflow;
a queue selection module to determine a retrieval priority for each of the plurality of queues and to retrieve at least one work item from each of the plurality of queues according to the retrieval priority for storage in a workflow data structure; and
an adaptive processing module to selectively adjust a number of processing modules each configured to process work items stored in the workflow data structure by;
activating at least one processing module when an actual processing load is greater than a maximum threshold load level; and
deactivating at least one processing module when the actual processing load is less than a minimum threshold load level,wherein the maximum threshold load level is ninety percent (90%) of a maximum processing capacity and the minimum threshold load level is twenty-five percent (25%) of processing capacity.
10 Assignments
0 Petitions
Accused Products
Abstract
Systems and methods improve the equitable distribution the processing capacity of a computing device processing work items retrieved from multiple queues in a workflow system. A retrieval priority is determined for each of the plurality of queues and work items are retrieved from each of the multiple queues according to the retrieval priority. The retrieved work items are then stored in a central data structure. Multiple processing components process the work items stored in the central data structure. The number of processing components is selectively adjusted to maximize efficiency.
-
Citations
34 Claims
-
1. A computer-readable non-transitory medium encoded with a workflow application comprising modules executable by a processor and configured to process a plurality of work items in a workflow, the workflow application comprising:
-
a queue storage module to receive a plurality of work items from a remote computer and to store each of the plurality of work items in one of a plurality of queues based on a state of each work item in the workflow; a queue selection module to determine a retrieval priority for each of the plurality of queues and to retrieve at least one work item from each of the plurality of queues according to the retrieval priority for storage in a workflow data structure; and an adaptive processing module to selectively adjust a number of processing modules each configured to process work items stored in the workflow data structure by; activating at least one processing module when an actual processing load is greater than a maximum threshold load level; and deactivating at least one processing module when the actual processing load is less than a minimum threshold load level, wherein the maximum threshold load level is ninety percent (90%) of a maximum processing capacity and the minimum threshold load level is twenty-five percent (25%) of processing capacity. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A system for processing work items in a workflow, the system comprising:
-
a plurality of queues each comprising a plurality of work items; and a computing device comprising a workflow application comprising modules executable by the computing device and configured to process a plurality of work items in a workflow, the workflow application comprising; a queue selection module to determine a retrieval priority for each of the plurality of queues and to retrieve at least one work item from each of the plurality of queues according to the retrieval priority for storage in a workflow data structure; and an adaptive processing module to selectively adjust a number of processing modules each configured to process work items stored in the workflow data structure by; activating at least one processing module when an actual processing load is greater than a maximum threshold load level; and deactivating at least one processing module when the actual processing load is less than a minimum threshold load level, wherein the maximum threshold load level is ninety percent (90%) of a maximum processing capacity and the minimum threshold load level is a twenty-five percent (25%) of processing capacity. - View Dependent Claims (11, 12, 13, 14, 15, 16, 17, 18, 19)
-
-
20. A system for processing work items in a workflow, the system comprising:
-
a workflow data structure each comprising a plurality of work items; and a computing device comprising a workflow application comprising modules executable by the computing device to process the plurality of work items, the workflow application comprising; a plurality of processing modules each configured to process a different one of work items stored in the workflow data structure; and an adaptive processing module to selectively adjust a number of the plurality of processing modules by; activating at least one processing module when an actual processing load is greater than a maximum threshold load level; and deactivating at least one processing module when the actual processing load is less than a minimum threshold load level, wherein the maximum threshold load level is ninety percent (90%) of a maximum processing capacity and the minimum threshold load level is twenty-five percent (25%) of processing capacity. - View Dependent Claims (21, 22, 23)
-
-
24. A method for processing a plurality of work items in a workflow at a processor, the method comprising:
-
receiving a plurality of work items at the processor; storing each of the plurality of work items in one of a plurality of queues based on a state of each work item in the workflow; determining a retrieval priority for each of the plurality of queues at the processor; retrieving at least one work item from each of the plurality of queues according to the retrieval priority for storage in a workflow data structure; and selectively adjusting, by an adaptive processing module, an amount of processing capacity of the processor to process the work items stored in the workflow data structure by; increasing the amount of processing capacity by increasing an amount of processing modules to a higher number when an actual processing load is greater than a maximum threshold load level; and decreasing the amount of processing capacity by decreasing the amount of processing modules to a lower number when the actual processing load is less than a minimum threshold load level, wherein the maximum threshold load level is ninety percent (90%) of a maximum processing capacity and the minimum threshold load level is twenty-five percent (25%) of processing capacity. - View Dependent Claims (25, 26, 27, 28, 29, 30, 31)
-
-
32. A computer-readable non-transitory medium encoded with a workflow application comprising modules executable by a processor and configured to process a plurality of work items in a workflow, the workflow application comprising:
-
a queue storage module to receive a plurality of work items from a remote computer and to store each of the plurality of work items in one of a plurality of queues based on a state of each work item in the workflow; a queue selection module to determine a retrieval priority for each of the plurality of queues and to retrieve at least one work item from each of the plurality of queues according to the retrieval priority for storage in a workflow data structure; a set of processing modules to process the work items stored in the workflow data structure, wherein an initial number of the processing modules are used to process the work items; and an adaptive processing module to; retrieve threshold load level data from a memory; monitor an actual processing load required to process the work items; compare the actual processing load to the threshold load level data; increase the initial number of processing modules to a higher number when the actual processing load is greater than the maximum threshold load level data; and decrease the initial number of processing modules to a lower number when the actual processing load is less than the minimum threshold load level data, wherein the maximum threshold load level data is ninety percent (90%) of a maximum processing capacity of the processing modules and the minimum threshold load level data is twenty-five percent (25%) of processing capacity of the processing modules.
-
-
33. A system for processing work items in a workflow, the system comprising:
-
a plurality of queues each comprising a plurality of work items; and a computing device comprising a workflow application comprising modules executable by the computing device and configured to process a plurality of work items in a workflow, the workflow application comprising; a queue selection module to determine a retrieval priority for each of the plurality of queues and to retrieve at least one work item from each of the plurality of queues according to the retrieval priority for storage in a workflow data structure; a set of processing modules to process the work items stored in the workflow data structure, wherein an initial number of the processing modules are used to process the work items; and an adaptive processing module to; retrieve threshold load level data from a memory; monitor an actual processing load required to process the work items; compare the actual processing load to the threshold load level data; increase the initial number of processing modules to a higher number of processing modules when the actual processing load is greater than the maximum threshold load level data; and decrease the initial number of processing modules to a lower number of processing modules when the actual processing load is less than the minimum threshold load level data, wherein the maximum threshold load level data is ninety percent (90%) of a maximum processing capacity of the processing modules and the minimum threshold load level data is twenty-five percent (25%) of processing capacity of the processing modules.
-
-
34. A method for processing a plurality of work items in a workflow at a processor, the method comprising:
-
receiving a plurality of work items at the processor; storing each of the plurality of work items in one of a plurality of queues based on a state of each work item in the workflow; calculating queue priority factors for each of the plurality of queues at the processor; weighting each of the queue priority factors for each of the plurality of queues to determine a retrieval priority at the processor; retrieving at least one work item from each of the plurality of queues according to the retrieval priority for storage in a workflow data structure; processing the work items stored in the workflow data structure at an initial number of processing modules; retrieving threshold load level data from a memory; monitoring an actual processing load required to process the work items; comparing the actual processing load to the threshold load level data; increasing, by an adaptive processing module, the initial number of processing modules to a higher number of processing modules when the actual processing load is greater than the maximum threshold load level data; and decreasing, by the adaptive processing module, the initial number of processing modules to a lower number of processing modules when the actual processing load is less than the minimum threshold load level data, wherein the maximum threshold load level data is ninety percent (90%) of a maximum processing capacity of the processing modules and the minimum threshold load level data is twenty-five percent (25%) of processing capacity of the processing modules.
-
Specification