# US 10,311,158 B2 · Streamlining tuple processing by delivering tuple attributes to associated operators

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

- Number: US 10,311,158 B2
- Document ID: US10311158B2
- Status: Granted
- Kind: B2
- Application number: 15/174,265
- Filed: 2016-06-06
- Published: 2017-12-07
- Granted: 2019-06-04
- Earliest claimed: 2016-06-06
- Assignees: International Business Machines Corporation
- Applicants: International Business Machines Corporation
- Inventors: Ryan K. Cradick; Cory J. Kleinheksel
- Web page: https://patentgrep.com/patent/US10311158B2

## CPC

- G06F 16/24568: {Data stream processing; Continuous queries}
- H04L 65/60: Network streaming of media packets
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

Streamlining a stream computing environment by distributing tuple attributes to associated operators in the environment involves receiving a stream of tuples for processing by one or more stream operators. A tuple in the stream of tuples is analyzed to identify one or more data attributes required by the one or more stream operators during processing. Each of the identified attributes is distributed to particular operators that require the identified attribute.

## Claims

### Claim 1

A method for processing a stream of tuples comprising:
receiving a stream of tuples for processing by one or more stream operators;
analyzing a tuple in the stream of tuples and identifying one or more data attributes of the tuple required by the one or more stream operators during processing, wherein the identifying one or more data attributes of the tuple comprises:
analyzing code modules of the one or more stream operators to determine data attributes required for computation and data attributes modified by the one or more stream operators; and
comparing data attributes of the tuple to the analysis of the code modules to identify the one or more data attributes;
distributing at least one of the identified attributes to local storage of particular stream operators of the one or more stream operators that require the identified attributes; and
processing the tuple through the one or more stream operators, wherein the distributed data attributes are processed at the particular stream operators from local storage upon receiving the processed tuple during propagation through the one or more stream operators.

### Claim 2 (depends on 1)

The method of claim 1, wherein distributing further comprises:
sending the identified attributes to a node hosting the particular operator.

### Claim 3 (depends on 2)

The method of claim 2, wherein the identified attributes are stored in local memory of the node.

### Claim 4 (depends on 1)

The method of claim 1, further comprising:
providing an indication that the tuple is no longer required and may be removed.

### Claim 5 (depends on 1)

The method of claim 1, further comprising:
detecting the identified attributes associated with removed tuples that are unnecessarily stored at the particular stream operators.

### Claim 6 (depends on 1)

The method of claim 1, wherein the stream operators are distributed across multiple networks.

### Claim 7

A system for processing a stream of tuples comprising:
a processor configured to:
receive a stream of tuples for processing by one or more stream operators;
analyze a tuple in the stream of tuples and identify one or more data attributes of the tuple required by the one or more stream operators during processing, wherein the identifying one or more data attributes of the tuple comprises:
analyzing code modules of the one or more stream operators to determine data attributes required for computation and data attributes modified by the one or more stream operators; and
compare data attributes of the tuple to the analysis of the code modules to identify the one or more data attributes;
distribute at least one of the identified attributes to local storage of particular stream operators of the one or more stream operators that require the identified attributes; and
process the tuple through the one or more stream operators, wherein the distributed data attributes are processed at the particular stream operators from local storage upon receiving the processed tuple during propagation through the one or more stream operators.

### Claim 8 (depends on 7)

The system of claim 7, wherein distributing at least one of the identified attributes further comprises:
sending the identified attributes to a node hosting the particular operator.

### Claim 9 (depends on 8)

The system of claim 8, wherein the identified attributes are stored in local memory of the node.

### Claim 10 (depends on 7)

The system of claim 7, wherein the processor is further configured to:
provide an indication that the tuple is no longer required and may be removed.

### Claim 11 (depends on 7)

The system of claim 7, wherein the processor is further configured to:
detect the identified attributes associated with removed tuples that are unnecessarily stored at the particular stream operators.

### Claim 12 (depends on 7)

The system of claim 7, wherein the stream operators are distributed across multiple networks.

### Claim 13

A computer program product for processing a stream of tuples, the computer program product comprising a computer readable storage medium having program instructions embodied therewith, the program instructions executable by a processor to cause the processor to:
receive a stream of tuples for processing by one or more stream operators;
analyze a tuple in the stream of tuples and identify one or more data attributes of the tuple required by the one or more stream operators during processing, wherein the identifying one or more data attributes of the tuple comprises:
analyzing code modules of the one or more stream operators to determine data attributes required for computation and data attributes modified by the one or more stream operators; and
comparing data attributes of the tuple to the analysis of the code modules to identify the one or more data attributes;
distribute at least one of the identified attributes to local storage of particular stream operators of the one or more stream operators that require the identified attributes; and
process the tuple through the one or more stream operators, wherein the distributed data attributes are processed at the particular stream operators from local storage upon receiving the processed tuple during propagation through the one or more stream operators.

### Claim 14 (depends on 13)

The computer program product of claim 13, wherein distributing at least one of the identified attributes further comprises:
storing the identified attributes in local memory of a node hosting the particular operator.

### Claim 15 (depends on 13)

The computer program product of claim 13, further comprising program instructions executable by the processor to cause the processor to:
provide an indication that the tuple is no longer required and may be removed.

### Claim 16 (depends on 13)

The computer program product of claim 13, further comprising program instructions executable by the processor to cause the processor to:
detect the identified attributes associated with removed tuples that are unnecessarily stored at the particular stream operators.

### Claim 17 (depends on 13)

The computer program product of claim 13, wherein the stream operators are distributed across multiple networks.
