Patent ID: 8244932

Claim:
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, and in response, dynamically performing at least one of: controlling data flow between the upstream processing element and the current processing element; allocating the computing resource to the current processing element in response to the input data flow rate of the upstream processing element wherein dynamically allocating the computing resource is based on an input buffer occupancy of the upstream processing element; and determining a maximum input rate of the at least one downstream processing element according to: r max , j ⁡ ( n ) = [ ρ j ⁡ ( n ) - ∑ k = 0 K ⁢ λ k ⁢ { b j ⁡ ( n - k ) - b 0 } - ∑ l - 1 L ⁢ μ l ⁢ { r max , j ⁡ ( n - l ) - ρ j ⁡ ( n - l ) } ] + where r max,j (n) is a maximum admissible input rate at a time step n, ρ j (n) is a processing rate of processing element p j in an interval [nΔt,(n+1)Δt)], λ k , b 0 , and μ l are constants, b j (n) is an occupancy of an input buffer of processing element j at nΔt, and wherein K and L are positive integers.