IP Library Granted Patent US 9,112,666
Granted Patent B2
US 9,112,666 · App. 14/023,655 · Granted Aug 18, 2015

Elastic auto-parallelization for stream processing applications based on measured throughput and congestion

Inventors: Bugra Gedik (Ankara, TR); Martin J. Hirzel (Ossining, NY); Scott A. Schneider (White Plains, NY); Kun-Lung Wu (Yorktown Heights, NY)
Assignee: INTERNATIONAL BUSINESS MACHINES CORPORATION
H04L5/0064G06F9/445H04L67/1002
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,112,666
App. No.
14/023,655
Granted
Aug 18, 2015
Kind
B2
Abstract

A method for adjusting a data parallel region of a stream processing application includes measuring congestion of each parallel channel of the data parallel region, measuring a total throughput of all the parallel channels, and adjusting the number of parallel channels based on the current measured congestion and throughput.

Claims (43)

1. A computer program product for adjusting a data parallel region of a stream processing application, the computer program product comprising a non-transitory computer readable storage medium having program code embodied therewith, the program code executable by a processor, to perform method steps comprising:

measuring congestion of each parallel channel of the data parallel region;

measuring a total throughput of all the parallel channels; and

adjusting the number of parallel channels based on the current measured congestion and throughput,

wherein each parallel channel comprises a same at least one software operator that performs an operation on a stream of data received from an input operator,

wherein measuring the congestion for a given channel comprises calculating a blocking period from a difference between a first time a send call across the channel provides a notification that the call will block and a second time the send call across the channel provides a notification that room is available.

2. The computer program product of claim 1 , wherein each parallel channel comprises a same sequence of software operators that perform operations, a first operator of each sequence receives an output of an input operator, and a last operator of each sequence provides an output to a same output operator.

3. The computer program product of claim 2 , where the first operator of a given sequence performs an operation on the output from the input operator and provides a result of the operation to a subsequent operator in the sequence.

4. The computer program product of claim 1 , wherein the congestion of a given channel indicates how utilized that channel is.

5. The computer program product of claim 1 , wherein the adjusting occurs during an adaptation period, and the throughput of a given channel is a number of tuples processed by the operators of the channel during the adaptation period.

6. The computer program product of claim 1 , wherein when the congestion for a current number of the channels exceeds a threshold, the adjusting comprises:

determining whether the congestion is remote by determining whether the congestion is attributed primarily to an application that is external to the operators;

decreasing the number of channels when it is determined that the congestion is remote;

determining whether the throughput at a next higher number of the channels is higher than the measured throughput when it is determined that the congestion is not remote;

increasing the number of channels when it is determined that the throughput at the next higher number of the channels is higher; and

maintaining the current number of channels when it is determined that the throughput at the next higher number of the channels is not higher.

7. The computer program product of claim 1 , wherein the adjusting is based only on historical measurements of the congestion and the throughput taken at workload levels within a certain threshold of a current workload level.

8. A computer program product for adjusting a data parallel region of a stream processing application, the computer program product comprising a non-transitory computer readable storage medium having program code embodied therewith, the program code executable by a processor, to perform method steps comprising:

measuring congestion of each parallel channel of the data parallel region;

measuring a total throughput of all the parallel channels; and

adjusting the number of parallel channels based on the current measured congestion and throughput,

wherein each parallel channel comprises a same at least one software operator that performs an operation on a stream of data received from an input operator,

wherein when the congestion for a current number of the channels is lower than a threshold, the adjusting comprises:

determining whether a previous lower number of the channels was congested;

decreasing the number of channels when it is determined that the previous lower number of the channels was not congested; and

maintaining the current number of channels when it is determined that the previous lower number of the channels was congested.

9. The computer program product of claim 8 , wherein each parallel channel comprises a same sequence of software operators that perform operations, a first operator of each sequence receives an output of an input operator, and a last operator of each sequence provides an output to a same output operator.

10. The computer program product of claim 9 , where the first operator of a given sequence performs an operation on the output from the input operator and provides a result of the operation to a subsequent operator in the sequence.

11. The computer program product of claim 9 , wherein the congestion of a given channel indicates how utilized that channel is.

12. The computer program product of claim 8 , wherein the adjusting occurs during an adaptation period, and the throughput of a given channel is a number of tuples processed by the operators of the channel during the adaptation period.

13. A computer program product for adjusting a data parallel region of a stream processing application, the computer program product comprising a non-transitory computer readable storage medium having program code embodied therewith, the program code executable by a processor, to perform method steps comprising:

measuring congestion of each parallel channel of the data parallel region;

measuring a total throughput of all the parallel channels; and

adjusting the number of parallel channels based on the current measured congestion and throughput,

wherein each parallel channel comprises a same at least one software operator that performs an operation on a stream of data received from an input operator,

wherein when the congestion of a current number of the channels exceeds a threshold, the adjusting comprises:

determining whether the congestion is remote by determining whether he the congestion is attributed primarily to an application that is external to the operators;

decreasing the number of channels when it is determined that the congestion is remote; and

increasing the number of channels when it is determined that the congestion is not remote and the throughput at a next higher number of the channels is unknown.

14. The computer program product of claim 8 , wherein each parallel channel comprises a same sequence of software operators that perform operations, a first operator of each sequence receives an output of an input operator, and a last operator of each sequence provides an output to a same output operator.

15. The computer program product of claim 13 , where the first operator of a given sequence performs an operation on the output from the input operator and provides a result of the operation to a subsequent operator in the sequence.

16. The computer program product of claim 14 , wherein the congestion of a given channel indicates how utilized that channel is.

17. The computer program product of claim 13 , wherein the adjusting occurs during an adaptation period, and the throughput of a given channel is a number of tuples processed by the operators of the channel during the adaptation period.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 26, 2013
From: GEDIK, BUGRA; HIRZEL, MARTIN J.; SCHNEIDER, SCOTT A.; WU, KUN-LUNG
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 031848/0328 →
Continuity (2)
Continuation 13903211 · May 28, 2013
Related Publication 20140359271A1 · Dec 4, 2014