Method for graduated load sensitive task dispatching in computing system
First Claim
1. A method for detecting and reacting to changes in depth of one or more queues which store messages processed by tasks executing in a computer system, comprising:
- setting a high threshold of a depth of the queue to a first value;
setting a low threshold of a depth of the queue to a second value lower than the first value;
detecting when the depth of the queue equals or exceeds the high threshold;
raising the high threshold by a predetermined increment each time the depth of the queue equals or exceeds the high threshold; and
selectively adjusting the low threshold when the depth of the queue equals or exceeds the high threshold.
9 Assignments
0 Petitions
Accused Products
Abstract
A system and method for a dynamic response to trigger messages and high and low performance event messages supports a graduated dispatching of tasks for processing messages in a queue. As messages are enqueued, queue attributes are altered, including an override of the standard flip-flop behavior of the queue depth high and low event statuses. The alteration of the queue attributes creates a bracketing at the point at which the last event occurred with a pair of “tripwires.” The tripwires are continuously kept on either side of the queue depth at which the last performance event was generated. When the depth changes enough to cause the depth to cross one of the tripwires, the tripwires are moved, and dispatching of tasks for processing messages in the queue may be executed or any other logic deemed useful that is sensitive to queue depths.
42 Citations
25 Claims
-
1. A method for detecting and reacting to changes in depth of one or more queues which store messages processed by tasks executing in a computer system, comprising:
-
setting a high threshold of a depth of the queue to a first value;
setting a low threshold of a depth of the queue to a second value lower than the first value;
detecting when the depth of the queue equals or exceeds the high threshold;
raising the high threshold by a predetermined increment each time the depth of the queue equals or exceeds the high threshold; and
selectively adjusting the low threshold when the depth of the queue equals or exceeds the high threshold. - View Dependent Claims (2, 3, 4, 5, 6)
starting at least one task for processing one or more messages stored in the queue each time the depth of the queue equals or exceeds the high threshold.
-
-
3. A method according to claim 2, further comprising the steps of
reducing the value of the high threshold if the depth of the queue is equal to or less than the value of the low threshold; - and
reducing the value of the low threshold if the depth of the queue is equal to or less than the value of the low threshold.
- and
-
4. A method according to claim 1, further comprising:
starting at least one task for processing one or more messages stored in the queue each time the depth of the queue equals or exceeds the high threshold if the number of tasks currently processing the messages in the queue is less than a predetermined amount.
-
5. A method according to claim 1, further comprising stopping at least one task for processing one or more messages stored in the queue if the depth of the queue is equal to or less than the value of the low threshold.
-
6. A method according to claim 1, wherein the low threshold is raised when the depth of the queue equals or exceeds the high threshold and the high threshold is higher than a predetermined value.
-
7. A method for detecting and reacting to changes in depth of one or more queues which store messages processed by tasks executing in a computer system, comprising:
-
starting at least one task for processing one or more messages stored in a queue;
setting a high threshold of a depth of the queue to a first value;
setting a low threshold of a depth of the queue to a second value lower than the first value;
starting at least one additional task for processing the messages in the queue if the depth of the queue equals or exceeds the high threshold set to the first value; and
stopping at least one task for processing one or more messages stored in the queue if the depth of the queue is equal to or less than the value of the low threshold. - View Dependent Claims (8, 9, 10, 11, 13)
raising the value of the high threshold if the depth of the queue equals or exceeds the high threshold set to the first value.
-
-
9. A method according to claim 8, further comprising:
starting at least one additional task for processing the messages in the queue if the depth of the queue equals or exceeds the raised value of the high threshold.
-
10. A method according to claim 8, further comprising:
starting at least one additional task for processing the messages in the queue if the depth of the queue equals or exceeds the raised value of the high threshold and the number of tasks currently processing the messages in the queue is less than a predetermined amount.
-
11. A method according to claim 7, further comprising:
-
setting the high threshold to a third value lower than the first value if the depth of the queue is equal to or less than the low threshold set to the second value; and
setting the low threshold to a fourth value lower than the second value if the depth of the queue is equal to or less than the value of the low threshold.
-
-
13. A method according to claim 7, wherein the low threshold is raised when the depth of the queue equals or exceeds the high threshold and the high threshold is higher than a predetermined value.
-
12. A method according to clam 1, further comprising stopping at least one task for processing one or more messages stored in the queue if the depth of the queue is equal to or less than the value of the low threshold.
-
14. A computer system for detecting and reacting to changes in depth of one or more queues which store messages processed by tasks executing in the computer system, comprising:
-
means for setting a high threshold of a depth of the queue to a first value;
means setting a low threshold of a depth of the queue to a second value lower than the first value;
means for detecting when the depth of the queue equals or exceeds the high threshold;
means for raising the high threshold by a predetermined increment each time the depth of the queue equals or exceeds the high threshold; and
means for selectively adjusting the low threshold when the depth of the queue equals or exceeds the high threshold. - View Dependent Claims (15, 16, 17, 18, 19)
means for starting at least one task for processing one or more messages stored in the queue each time the depth of the queue equals or exceeds the high threshold.
-
-
16. A computer system according to claim 14, further comprising the step of:
means for starting at least one task for processing one or more messages stored in the queue each time the depth of the queue equals or exceeds the high threshold if the number of tasks currently processing the messages in the queue is less than a predetermined amount.
-
17. A computer system according to claim 14, further comprising:
-
means for reducing the value of the high threshold if the depth of the queue is equal to or less than the value of the low threshold; and
means for reducing the value of the low threshold if the depth of the queue is equal to or less than the value of the low threshold.
-
-
18. A computer system according to claim 14, further comprising means for stopping at least one task for processing one or more messages stored in the queue if the depth of the queue is equal to or less than the value of the low threshold.
-
19. A computer system according to claim 14, further comprising means for raising the low threshold when the depth of the queue equals or exceeds the high threshold and the high threshold is higher than a predetermined value.
-
20. A computer program stored on a computer readable medium for detecting and reacting to changes in depth of one or more queues which store messages processed by tasks executing in a computer system, the computer program configured to:
-
set a high threshold of a depth of the queue to a first value;
set a low threshold of a depth of the queue to a second value lower than the first value;
detect when the depth of the queue equals or exceeds the high threshold;
raise the high threshold by a predetermined increment each time the depth of the queue equals or exceeds the high threshold; and
selectively adjust the low threshold when depth of the queue equals or exceeds the high threshold. - View Dependent Claims (21, 22, 23, 24, 25)
start at least one task for processing one or more messages stored in the queue each time the depth of the queue equals or exceeds the high threshold.
-
-
22. A computer program according to claim 20, further configured to:
start at least one task for processing one or more messages stored in the queue each time the depth of the queue equals or exceeds the high threshold if the number of tasks currently processing the messages in the queue is less than a predetermined amount.
-
23. A computer program according to claim 20, further configured to:
-
reduce the value of the high threshold if the depth of the queue is equal to or less than the value of the low threshold; and
reduce the value of the low threshold if the depth of the queue is equal to or less than the value of the low threshold.
-
-
24. A computer program according to claim 20, further configured to:
stop at least one task for processing one or more messages stored in the queue if the depth of the queue is equal to or less than the value of the low threshold.
-
25. A computer program according to claim 20, further configured to:
raise the low threshold when the depth of the queue equals or exceeds the high threshold and the high threshold is higher than a predetermined value.
Specification