# US 9,438,656 B2 · Triggering window conditions by streaming features of an operator graph

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 9,438,656 B2
- Document ID: US9438656B2
- Status: Granted
- Kind: B2
- Application number: 13/347,848
- Filed: 2012-01-11
- Published: 2013-07-11
- Granted: 2016-09-06
- Earliest claimed: 2012-01-11
- Assignees: International Business Machines Corporation
- Applicants: Michael J. Branson; John M. Santosuosso; Brandon W. Schulz
- Inventors: Michael J. Branson; John M. Santosuosso; Brandon W. Schulz
- Web page: https://patentgrep.com/patent/US9438656B2

## CPC

- H04L 65/65: Network streaming protocols, e.g. real-time transport protocol [RTP] or real-time control protocol [RTCP]
- G06F 9/54: Interprogram communication
- G01C 21/3415: {Dynamic re-routing, e.g. recalculating the route when the user deviates from calculated route or after detecting real-time traffic data or accidents}
- G06F 16/24568: {Data stream processing; Continuous queries}
- G06F 2201/81: Threshold
- H04L 43/0876: Network utilisation, e.g. volume of load or congestion level
- H04W 28/10: Flow control {between communication endpoints}
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- G01C: MEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY (measuring liquid level G01F; radio navigation, determining distance or velocity by use of propagation effects, e.g. Doppler effects, propagation time, of radio waves, analogous arrangements using other waves G01S)
- H04W: WIRELESS COMMUNICATION NETWORKS (broadcast communication H04H; communication systems using wireless links for non-selective communication, e.g. wireless extensions H04M1/72)

## 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

### Claim 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.

### Claim 2 (depends on 1)

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.

### Claim 3 (depends on 1)

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.

### Claim 4 (depends on 1)

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.

### Claim 5 (depends on 1)

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.

### Claim 6 (depends on 5)

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.

### Claim 7 (depends on 1)

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

### Claim 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.

### Claim 9 (depends on 8)

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.

### Claim 10 (depends on 8)

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.

### Claim 11 (depends on 8)

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.

### Claim 12 (depends on 8)

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.

### Claim 13 (depends on 12)

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.
