# US 10,375,137 B2 · Variable checkpointing in a streaming application that includes tuple windows

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

- Number: US 10,375,137 B2
- Document ID: US10375137B2
- Status: Granted
- Kind: B2
- Application number: 15/633,191
- Filed: 2017-06-26
- Published: 2018-04-19
- Granted: 2019-08-06
- Earliest claimed: 2016-10-14
- Assignees: International Business Machines Corporation
- Applicants: International Business Machines Corporation
- Inventors: Alexander Cook; Manuel Orozco; Christopher R. Sabotta; John M. Santosuosso
- Web page: https://patentgrep.com/patent/US10375137B2

## CPC

- G06F 11/1461: {Backup scheduling policy}
- G06F 11/1466: {to make the backup process non-disruptive}
- G06F 16/24568: {Data stream processing; Continuous queries}
- G06F 16/9024: {Graphs; Linked lists (G06F16/9027 takes precedence)}
- H04L 43/045: for graphical visualisation of monitoring data
- H04L 65/80: Responding to QoS
- H04L 67/1097: for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
- G06F 11/1464: {for networked environments}
- 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

A variable checkpoint mechanism in a streams manager checkpoints a streaming application based on periodic time periods for checkpoints. The variable checkpoint mechanism can take a checkpoint early before a periodic time period ends or late after the periodic time period ends based on predicted size of one or more tuple windows in the streaming application. The time for taking the checkpoint can be selected based on multiple checkpoint timing criteria, which include storage requirement for the checkpoint and predicted backpressure in the flow graph. In this manner the checkpoint timing of the variable checkpoint mechanism can be adjusted real-time to minimize the negative impact of checkpointing on the performance of the streaming application.

## Claims

### Claim 1

An apparatus comprising:
at least one processor;
a memory coupled to the at least one processor;
a streams manager residing in the memory and executed by the at least one processor, the streams manager executing a streaming application that comprises a flow graph that includes a plurality of operators that process a plurality of data tuples, wherein the flow graph defines at least one tuple window that each comprises at least one of the plurality of data tuples; and
a checkpoint mechanism that uses a plurality of periodic time periods for taking checkpoints of at least one of the plurality of data tuples, and dynamically adjusts a time for taking a checkpoint of the at least one of the plurality of data tuples to be at a selected time different than at an end of one of the plurality of periodic time periods based on predicted size of the at least one tuple window in the streaming application.

### Claim 2 (depends on 1)

The apparatus of claim 1 wherein the predicted size of the at least one tuple window determines a storage requirement for taking the checkpoint.

### Claim 3 (depends on 1)

The apparatus of claim 1 wherein the checkpoint mechanism selects the selected time for taking the checkpoint based on the storage requirement for taking the checkpoint and based on predicted backpressure in at least one portion of the flow graph, wherein the checkpoint mechanism selects the selected time when the storage requirement for taking the checkpoint is at a minimum and there is no predicted backpressure in the at least one portion of the flow graph.

### Claim 4 (depends on 1)

The apparatus of claim 1 wherein a first of the at least one tuple window comprises a tuple window within one of the plurality of operators in the flow graph.

### Claim 5 (depends on 1)

The apparatus of claim 1 wherein a second of the at least one tuple window comprises a tuple window that spans multiple of the plurality of operators in the flow graph.

### Claim 6 (depends on 1)

The apparatus of claim 1 wherein each of the plurality of period time periods has a same duration.

### Claim 7 (depends on 1)

The apparatus of claim 1 further comprising a tuple window size prediction mechanism that predicts a size for each of the at least one tuple window at different points in time based on a historical performance log that indicates past performance of the streaming application including tuple window size.

### Claim 8

A computer-implemented method executed by at least one processor for running streaming applications, the method comprising:
executing a streams manager that executes a streaming application that comprises a flow graph that includes a plurality of processing elements that process a plurality of data tuples, wherein the flow graph defines at least one tuple window that each comprises at least one of the plurality of data tuples;
defining a plurality of periodic time periods for taking checkpoints of at least one of the plurality of data tuples; and
dynamically adjusting a time for taking a checkpoint of the at least one of the plurality of data tuples to be at a selected time different than at an end of one of the plurality of periodic time periods based on predicted size of the at least one tuple window in the streaming application.

### Claim 9 (depends on 8)

The method of claim 8 wherein the predicted size of the at least one tuple window determines a storage requirement for taking the checkpoint.

### Claim 10 (depends on 8)

The method of claim 8 wherein the checkpoint mechanism selects the selected time for taking the checkpoint based on the storage requirement for taking the checkpoint and based on predicted backpressure in at least one portion of the flow graph, wherein the checkpoint mechanism selects the selected time when the storage requirement for taking the checkpoint is at a minimum and there is no predicted backpressure in the at least one portion of the flow graph.

### Claim 11 (depends on 8)

The method of claim 8 wherein a first of the at least one tuple window comprises a tuple window within one of the plurality of operators in the flow graph.

### Claim 12 (depends on 8)

The method of claim 8 wherein a second of the at least one tuple window comprises a tuple window that spans multiple of the plurality of operators in the flow graph.

### Claim 13 (depends on 8)

The method of claim 8 wherein each of the plurality of period time periods has a same duration.

### Claim 14 (depends on 8)

The method of claim 8 further comprising a tuple window size prediction mechanism that predicts a size for each of the at least one tuple window at different points in time based on a historical performance log that indicates past performance of the streaming application including tuple window size.

### Claim 15

An article of manufacture comprising software stored on a computer readable storage medium, the software comprising: a streams manager that executes a streaming application that comprises a flow graph that includes a plurality of operators that process a plurality of data tuples, wherein the flow graph defines at least one tuple window that each comprises at least one of the plurality of data tuples; and a checkpoint mechanism that uses a plurality of periodic time periods for taking checkpoints of at least one of the plurality of data tuples, and dynamically adjusts a time for taking a checkpoint of the at least one of the plurality of data tuples to be at a selected time different than at an end of one of the plurality of periodic time periods based on predicted size of the at least one tuple window in the streaming application.

### Claim 16 (depends on 15)

The article of manufacture of claim 15 wherein the predicted size of the at least one tuple window determines a storage requirement for taking the checkpoint.

### Claim 17 (depends on 15)

The article of manufacture of claim 15 wherein the checkpoint mechanism selects the selected time for taking the checkpoint based on the storage requirement for taking the checkpoint and based on predicted backpressure in at least one portion of the flow graph, wherein the checkpoint mechanism selects the selected time when the storage requirement for taking the checkpoint is at a minimum and there is no predicted backpressure in the at least one portion of the flow graph.

### Claim 18 (depends on 15)

The article of manufacture of claim 15 wherein a first of the at least one tuple window comprises a tuple window within one of the plurality of operators in the flow graph.

### Claim 19 (depends on 15)

The article of manufacture of claim 15 wherein a second of the at least one tuple window comprises a tuple window that spans multiple of the plurality of operators in the flow graph.

### Claim 20 (depends on 15)

The article of manufacture of claim 15 further comprising a tuple window size prediction mechanism that predicts a size for each of the at least one tuple window at different points in time based on a historical performance log that indicates past performance of the streaming application including tuple window size.
