Decentralized load distribution to reduce power and/or cooling costs in an event-driven system
First Claim
1. A method of decentralized load distribution in an event-driven system, the method comprising the steps of:
- receiving a data flow to be processed by a plurality of tasks at a plurality of nodes in the event-driven system having stateful and stateless event processing components, wherein the plurality of tasks are selected from the group consisting of hierarchical tasks, wherein a hierarchical task is a task that is dependent on the output of another task, nonhierarchical tasks, wherein a nonhierarchical task is a task that is not dependent on the output of another task and mixtures thereof;
collecting statistics about each task hosted at each node and the characteristics of the each node including its heat characteristics;
creating a list of neighbor nodes, using the collected statistics, to which a task can be partially or wholly transferred;
selecting at least one task having a first temperature at a node for consideration to migrate, known as at least one target task, to a neighbor node, known as a target node, from the list of neighbor nodes, to distribute the system load of processing the at least one task and reduce cooling costs;
choosing the target node to which the at least one target task can be migrated wherein the target node has a second temperature;
migrating the at least one target task to the target node provided the migration will lower the first temperature and the second temperature is below a predetermined acceptable heat threshold; and
establishing a load exchange protocol at each node for governing the number of migrations of target tasks, wherein decentralized load migrations lead to overall system load distribution in the event-driven system and reduce cooling costs and wherein each node has the following load exchange constraints;
(i) during a first predetermined period of time, all target tasks are migrated either upstream or downstream and after a second predetermined period of time, the direction of the target task migration maybe switched;
(ii) if a target task is migrated to a target node, then any nearest neighbor downstream target tasks prior to the migration cannot be migrated for a predetermined amount of time;
(iii) after migration to a target node, a target task must remain at the target node for a predetermined amount of time; and
(iv) two nodes cannot migrate target tasks to a same target node at the same time.
1 Assignment
0 Petitions
Accused Products
Abstract
A computer-implemented method, computer program product and computer readable storage medium directed to decentralized load placement in an event-driven system so as to minimize energy and cooling related costs. Included are receiving a data flow to be processed by a plurality of tasks at a plurality of nodes in the event-driven system having stateful and stateless event processing components, wherein the plurality of tasks are selected from the group consisting of hierarchical tasks (a task that is dependent on the output of another task), nonhierarchical tasks (a task that is not dependent on the output of another task) and mixtures thereof. Nodes are considered for quiescing whose current tasks can migrate to other nodes while meeting load distribution and energy efficiency parameters and the expected duration of the quiesce provides benefits commensurate with the costs of quiesce and later restart. Additionally, tasks are considered for migrating to neighbor nodes to distribute the system load of processing the tasks and reduce cooling costs.
43 Citations
10 Claims
-
1. A method of decentralized load distribution in an event-driven system, the method comprising the steps of:
-
receiving a data flow to be processed by a plurality of tasks at a plurality of nodes in the event-driven system having stateful and stateless event processing components, wherein the plurality of tasks are selected from the group consisting of hierarchical tasks, wherein a hierarchical task is a task that is dependent on the output of another task, nonhierarchical tasks, wherein a nonhierarchical task is a task that is not dependent on the output of another task and mixtures thereof; collecting statistics about each task hosted at each node and the characteristics of the each node including its heat characteristics; creating a list of neighbor nodes, using the collected statistics, to which a task can be partially or wholly transferred; selecting at least one task having a first temperature at a node for consideration to migrate, known as at least one target task, to a neighbor node, known as a target node, from the list of neighbor nodes, to distribute the system load of processing the at least one task and reduce cooling costs; choosing the target node to which the at least one target task can be migrated wherein the target node has a second temperature; migrating the at least one target task to the target node provided the migration will lower the first temperature and the second temperature is below a predetermined acceptable heat threshold; and establishing a load exchange protocol at each node for governing the number of migrations of target tasks, wherein decentralized load migrations lead to overall system load distribution in the event-driven system and reduce cooling costs and wherein each node has the following load exchange constraints;
(i) during a first predetermined period of time, all target tasks are migrated either upstream or downstream and after a second predetermined period of time, the direction of the target task migration maybe switched;
(ii) if a target task is migrated to a target node, then any nearest neighbor downstream target tasks prior to the migration cannot be migrated for a predetermined amount of time;
(iii) after migration to a target node, a target task must remain at the target node for a predetermined amount of time; and
(iv) two nodes cannot migrate target tasks to a same target node at the same time. - View Dependent Claims (2, 3, 4, 5)
-
-
6. A computer program product comprising:
-
a nontransitory computer recordable storage medium having computer readable program code for decentralized load distribution in an event-driven system comprising; computer readable program code configured for receiving a data flow to be processed by a plurality of tasks at a plurality of nodes in the event-driven system having stateful and stateless event processing components, wherein the plurality of tasks are selected from the group consisting of hierarchical tasks, wherein a hierarchical task is a task that is dependent on the output of another task, nonhierarchical tasks, wherein a nonhierarchical task is a task that is not dependent on the output of another task, and mixtures thereof; computer readable program code configured for collecting statistics about each task hosted at each node and the characteristics of the each node including its heat characteristics; computer readable program code configured for creating a list of neighbor nodes, using the collected statistics, to which a task can be partially or wholly transferred; computer readable program code configured for selecting at least one task having a first temperature at a node for consideration to migrate, known as at least one target task, to a neighbor node, known as a target node, from the list of neighbor nodes, to distribute the system load of processing the at least one task and reduce cooling costs; computer readable program code configured for choosing the target node to which the at least one target task can be migrated wherein the target node has a second temperature; computer readable program code configured for migrating the at least one target task to the target node provided the migration will lower the first temperature and the second temperature is below a predetermined acceptable heat threshold; and
computer readable program code configured for establishing a load exchange protocol at each node for governing the number of migrations of target tasks, wherein decentralized load migrations lead to overall system load distribution in the event-driven system and reduce cooling costs and wherein each node has the following load exchange constraints;
(i) during a first predetermined period of time, all target tasks are migrated either upstream or downstream and after a second predetermined period of time, the direction of the target task migration maybe switched;
(ii) if a target task is migrated to a target node, then any nearest neighbor downstream target tasks prior to the migration cannot be migrated for a predetermined amount of time;
(iii) after migration to a target node, a target task must remain at the target node for a predetermined amount of time; and
(iv) two nodes cannot migrate target tasks to a same target node at the same time. - View Dependent Claims (7, 8, 9, 10)
-
Specification