IP Library Granted Patent US 9,438,656
Granted Patent B2
US 9,438,656 · App. 13/347,848 · Granted Sep 6, 2016

Triggering window conditions by streaming features of an operator graph

Inventors: Michael J. Branson (Rochester, MN); John M. Santosuosso (Rochester, MN); Brandon W. Schulz (Rochester, MN)
Assignee: INTERNATIONAL BUSINESS MACHINES CORPORATION
H04L65/608G06F9/54G01C21/3415G06F17/30516
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,438,656
App. No.
13/347,848
Granted
Sep 6, 2016
Kind
B2
Abstract

In a stream computing application, data may be transmitted between operators using tuples. However, the receiving operator may not evaluate these tuples as they arrive but instead wait to evaluate a group of tuples—i.e., a window. A window is typically triggered when a buffer associated with the receiving operator reaches a maximum window size or when a predetermined time period has expired. Additionally, a window may be triggered by a monitoring a tuple rate—i.e., the rate at which the operator receives the tuples. If the tuple rate exceeds or falls below a threshold, a window may be triggered. Further, the number of exceptions, or the rate at which an operator throws exceptions, may be monitored. If either of these parameters satisfies a threshold, a window may be triggered, thereby instructing an operator to evaluate the tuples contained within the window.

Claims (35)

1. A computer program product for processing data, the computer program product comprising:

a non-transitory computer-readable storage medium having computer-readable program code embodied therewith, the computer-readable program code comprising computer-readable program code configured to:

receive streaming data tuples to be processed by a plurality of operators, the operators processing at least a portion of the received data tuples;

establish an operator graph of the plurality of operators, the operator graph defining at least one execution path in which a first operator of the plurality of operators is configured to receive data tuples from at least one upstream operator and transmit data tuples to at least one downstream operator;

measure a current rate at which data tuples pass from the upstream operator to the first operator during a period of time; and

trigger a data window in at least one operator of the plurality of operators based on the current rate, the window comprising a set of data tuples to be processed by the at least one operator.

2. The computer program product of claim 1 , wherein, after the data window is triggered, the at least one operator performs an operation using the set data tuples in the data window.

3. The computer program product of claim 1 , wherein the current rate is a ratio of a number of data tuples transmitted during a predefined period of time, and wherein triggering the data window is further based on whether the current rate exceeds or falls below a predefined threshold.

4. The computer program product of claim 1 , further comprising computer-readable program code configured to:

determine a historical rate at which data tuples pass from the upstream operator to the first operator;

compare the historical rate to the current rate to determine whether a threshold is met; and

if the threshold is met, trigger the data window.

5. The computer program product of claim 1 , wherein at least two upstream operators pass data tuples to the first operator, further comprising computer-readable program code configured to:

measure a plurality of rates at which the at least two upstream operators pass data to the first operator, wherein the current rate is one of the plurality of rates; and

trigger the data window in the at least one operator based on the plurality of rates.

6. The computer program product of claim 5 , wherein triggering the data window is further based on whether the plurality of rates exceeds or falls below one or more thresholds, the thresholds are based on one of:

a predefined threshold, and

a difference between at least one historical rate and the plurality of rates.

7. The computer program product of claim 1 , wherein the at least one operator on which the data window is triggered is the first operator.

8. A system for processing data, comprising:

at least two compute nodes, each compute node comprising at least one computer processor, wherein the at least two compute nodes are configured to host at least one of a plurality of operators that process streaming data tuples, the operators processing at least a portion of the received data tuples,

wherein the plurality of operators establish an operator graph, the operator graph defining at least one execution path in which a first operator of the plurality of operators is configured to receive data tuples from at least one upstream operator and transmit data tuples to at least one downstream operator; and

a window activator that is configured to measure a current rate at which data tuples pass from the upstream operator to the first operator during a period of time and trigger a data window in at least one operator of the plurality of operators based on the current rate, the window comprising a set of data tuples to be processed by the at least one operator.

9. The system of claim 8 , wherein, after the data window is triggered, the at least one operator performs an operation using the set data tuples in the data window.

10. The system of claim 8 , wherein the current rate is a ratio of a number of data tuples transmitted during a predefined period of time, and wherein triggering the data window is further based on whether the current rate exceeds or falls below a predefined threshold.

11. The system of claim 8 , wherein the window activator is configured to:

determine a historical rate at which data tuples pass from the upstream operator to the first operator;

compare the historical rate to the current rate to determine whether a threshold is met; and

if the threshold is met, trigger the data window.

12. The system of claim 8 , wherein at least two upstream operators pass data tuples to the first operator, wherein the window activator is configured to:

measure a plurality of rates at which the at least two upstream operators pass data to the first operator, wherein the current rate is one of the plurality of rates; and

trigger the data window in the at least one operator based on the plurality of rates.

13. The system of claim 12 , wherein triggering the data window is further based on whether the plurality of rates exceeds or falls below one or more thresholds, the thresholds are based on one of:

a predefined threshold, and

a difference between at least one historical rate and the plurality of rates.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 11, 2012
From: BRANSON, MICHAEL J.; SANTOSUOSSO, JOHN M.; SCHULZ, BRANDON W.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 027514/0288 →
Continuity (1)
Related Publication 20130179585A1 · Jul 11, 2013