Dynamic stabilization for a stream processing system
First Claim
1. A method on a current processing element for dynamically stabilizing a stream processing system, the method comprising:
- receiving at least one computing resource allocation target;
determining that a plurality of downstream processing elements are communicatively coupled to at least one upstream processing element, wherein each of the downstream processing elements in the plurality of downstream processing elements consumes data packets produced by the upstream processing element received on an output stream associated with the upstream processing element, wherein each of the downstream processing elements and the upstream processing element are each associated with at least one input buffer, wherein each downstream processing element processes data packets as they arrive in the input buffer associated therewith;
determining that an input data flow rate of the upstream processing element varies;
dynamically allocating the computing resource to a current processing element in response to the input data flow rate of the upstream processing element, wherein the allocating the computing resource is based on;
an input buffer occupancy of the current processing element;
at least one long-term averaged CPU goal of the current processing element; and
a maximum input rate of the at least one downstream processing element.
1 Assignment
0 Petitions
Accused Products
Abstract
Disclosed are a method, upstream processing node, and computer readable medium for dynamically stabilizing a stream processing system. The method includes receiving at least one computing resource allocation target. The method further includes determining that an input data flow rate of at least one upstream processing element varies. The computing resource is dynamically allocated to the upstream processing element in response to the input rate of the upstream processing element varying. Data flow is dynamically controlled between the upstream processing element and at least one downstream processing element.
-
Citations
21 Claims
-
1. A method on a current processing element for dynamically stabilizing a stream processing system, the method comprising:
-
receiving at least one computing resource allocation target; determining that a plurality of downstream processing elements are communicatively coupled to at least one upstream processing element, wherein each of the downstream processing elements in the plurality of downstream processing elements consumes data packets produced by the upstream processing element received on an output stream associated with the upstream processing element, wherein each of the downstream processing elements and the upstream processing element are each associated with at least one input buffer, wherein each downstream processing element processes data packets as they arrive in the input buffer associated therewith; determining that an input data flow rate of the upstream processing element varies; dynamically allocating the computing resource to a current processing element in response to the input data flow rate of the upstream processing element, wherein the allocating the computing resource is based on; an input buffer occupancy of the current processing element; at least one long-term averaged CPU goal of the current processing element; and a maximum input rate of the at least one downstream processing element. - View Dependent Claims (2, 3, 4, 5, 6, 7, 19)
-
-
8. An upstream processing node in a distributed stream processing system, the upstream processing node comprising:
-
at least one upstream processing element; a processing element monitor communicatively coupled to the upstream processing element adapted to; determine that a plurality of downstream processing element are communicatively coupled to the upstream processing element, wherein each of the downstream processing elements in the plurality of downstream processing elements consumes data packets produced by the upstream processing element received on an output stream associated with the upstream processing element, wherein each of the downstream processing elements and the upstream processing element are each associated with at least one input buffer, wherein each downstream processing element processes data packets as they arrive in the input buffer associated therewith; and determine that an input data flow rate of the upstream processing element varies; a scheduler including; a meta-scheduler communicatively coupled to the upstream processing element for determining computing resource allocation targets; and a CPU scheduler communicatively coupled to the upstream processing element and the meta-scheduler adapted to dynamically perform allocating the computing resource to the upstream processing element in response to the input data flow rate of the upstream processing element, wherein the allocating the computing resource is based on; an input buffer occupancy of the upstream processing element; at least one long-term averaged CPU goal of the upstream processing element; and a maximum input rate of the at least one downstream processing element. - View Dependent Claims (9, 10, 11, 12, 20)
-
-
13. A computer program product for dynamically stabilizing a stream processing system, the computer program product comprising:
-
a storage medium readable by a processing circuit and storing instructions for execution by the processing circuit for performing a method comprising; receiving at least one computing resource allocation target; determining that a plurality of downstream processing elements are communicatively coupled to at least one upstream processing element, wherein each of the downstream processing elements in the plurality of downstream processing elements consumes data packets produced by the upstream processing element received on an output stream associated with the upstream processing element, wherein each of the downstream processing elements and the upstream processing element are each associated with at least one input buffer, wherein each downstream processing element processes data packets as they arrive in the input buffer associated therewith; determining that an input data flow rate of the upstream processing element varies; dynamically allocating the computing resource to the current processing element in response to the input data flow rate of the upstream processing element, wherein the allocating the computing resource is based on; an input buffer occupancy of the current processing element; at least one long-term averaged CPU goal of the current processing element; and
a maximum input rate of the at least one downstream processing element. - View Dependent Claims (14, 15, 16, 17, 18, 21)
-
Specification