# US 9,298,788 B1 · Checkpointing in distributed streaming platform for real-time applications

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

- Number: US 9,298,788 B1
- Document ID: US9298788B1
- Status: Granted
- Kind: B1
- Application number: 13/928,351
- Filed: 2013-06-26
- Granted: 2016-03-29
- Earliest claimed: 2013-03-11
- Assignees: DataTorrent, Inc.
- Applicants: DataTorrent, Inc.
- Inventors: Amol J. Kekre; Phu D. Hoang; Chetan Narsude; Thomas Weise
- Web page: https://patentgrep.com/patent/US9298788B1

## CPC

- H04L 67/10: in which an application is distributed across nodes in the network (software deployment G06F8/60; multiprogramming arrangements G06F9/46)
- G06F 9/541: {via adapters, e.g. between incompatible applications}
- G06F 11/1402: {Saving, restoring, recovering or retrying}
- G06F 16/24568: {Data stream processing; Continuous queries}
- G06F 16/248: Presentation of query results
- G06F 16/252: {between a Database Management System and a front-end application}
- G06F 16/258: {Data format conversion from or to a database}
- G06F 16/951: Indexing; Web crawling techniques
- H04L 65/60: Network streaming of media packets
- H04L 65/765: {intermediate}
- H04L 67/55: Push-based network services
- G06F 11/00: Error detection; Error correction; Monitoring (error detection, correction or monitoring in information storage based on relative movement between record carrier and transducer G11B20/18; monitoring, i.e. supervising the progress of recording or reproducing G11B27/36; in static stores G11C29/00)
- 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)

## Abstract

Software for a distributed streaming platform receives a data stream for an application running on a distributed streaming platform over a networked cluster of servers. The software converts the data into a plurality of data tuples structured according to a schema. And the software repeatedly emits a specified number of the data tuples as a streaming window, which is separated from other streaming windows by a leading control tuple associated with an ordinal identifier for the streaming window and by a trailing control tuple associated with the same ordinal identifier. Then the software emits a checkpointing tuple following the trailing control tuple after a specified number of streaming windows. The checkpointing tuple causes checkpointing of an instance of an operator for the application when the checkpointing tuple is received by the instance.

## Claims

### Claim 1

A method, comprising:
receiving a data stream for an application running on a distributed streaming platform over a networked cluster of servers;
converting the data into a plurality of data tuples structured according to a schema;
repeatedly emitting a specified number of the data tuples as a streaming window, which is separated from other streaming windows by a leading control tuple associated with an ordinal identifier for the streaming window and by a trailing control tuple associated with the same ordinal identifier, wherein the streaming window is an atomic sequence of tuples that is associated with a recovery policy; and
emitting a checkpointing tuple following the trailing control tuple after a specified number of streaming windows, wherein the checkpointing tuple causes checkpointing of an instance of an operator for the application when the checkpointing tuple is received by the instance, wherein each of the operations is executed by one or more processors in real time or near real time rather than offline.

### Claim 2 (depends on 1)

The method of claim 1, wherein the recovery policy determines at least in part the specified number of streaming windows.

### Claim 3 (depends on 1)

The method of claim 1, wherein the recovery policy is one of at least once or exactly once.

### Claim 4 (depends on 1)

The method of claim 1, wherein checkpointing includes serializing the instance to persistent storage.

### Claim 5 (depends on 4)

The method of claim 4, wherein the persistent storage is Hadoop Distributed File System (HDFS) and wherein the serialization uses Kryo.

### Claim 6 (depends on 1)

The method of claim 1, wherein the data stream is accessed through a web Application Programming Interface.

### Claim 7 (depends on 1)

The method of claim 1, wherein the application uses one or more stream modes from the group of stream modes consisting of in-line, in-node, and in-rack.

### Claim 8 (depends on 7)

The method of claim 7, wherein the GUI is dashboard for decision support.

### Claim 9 (depends on 1)

The method of claim 1, wherein the data tuples are displayed in a graphical user interface (GUI) following removal of the control tuples.

### Claim 10

One or more computer-readable media persistently storing one or more programs, wherein the one or more programs, when executed, instructs one or more processors to perform the following operations:
receive a data stream for an application running on a distributed streaming platform over a networked cluster of servers;
convert the data into a plurality of data tuples structured according to a schema;
repeatedly emit a specified number of the data tuples as a streaming window, which is separated from other streaming windows by a leading control tuple associated with an ordinal identifier for the streaming window and by a trailing control tuple associated with the same ordinal identifier, wherein the streaming window is an atomic sequence of tuples that is associated with a recovery policy; and
emit a checkpointing tuple following the trailing control tuple after a specified number of streaming windows, wherein the checkpointing tuple causes checkpointing of an instance of an operator for the application when the checkpointing tuple is received by the instance, wherein each of the operations is executed in real time or near real time rather than offline.

### Claim 11 (depends on 10)

The computer-readable media of claim 10, wherein the recovery policy determines at least in part the specified number of streaming windows.

### Claim 12 (depends on 10)

The computer-readable media of claim 10, wherein the recovery policy is one of at least once or exactly once.

### Claim 13 (depends on 10)

The computer-readable media of claim 10, wherein checkpointing includes serializing the instance to persistent storage.

### Claim 14 (depends on 10)

The computer-readable media of claim 10, wherein the persistent storage is Hadoop Distributed File System (HDFS) and wherein the serialization uses Kryo.

### Claim 15 (depends on 10)

The computer-readable media of claim 10, wherein the data stream is accessed through a web Application Programming Interface.

### Claim 16 (depends on 10)

The computer-readable media of claim 10, wherein the application uses one or more stream modes from the group of stream modes consisting of in-line, in-node, and in-rack.

### Claim 17 (depends on 10)

The computer-readable media of claim 10, wherein the data tuples are displayed in a graphical user interface (GUI) following removal of the control tuples.

### Claim 18 (depends on 10)

The computer-readable media of claim 10, wherein the GUI is dashboard for decision support.

### Claim 19

A method, comprising:
receiving a data stream for an application running on a distributed streaming platform over a networked cluster of servers, wherein the application uses one or more stream modes from the group of stream modes consisting of in-line, in-node, and in-rack;
converting the data into a plurality of data tuples structured according to a schema;
repeatedly emitting a specified number of the data tuples as a streaming window, which is separated from other streaming windows by a leading control tuple associated with an ordinal identifier for the streaming window and by a trailing control tuple associated with the same ordinal identifier, wherein the streaming window is an atomic sequence of tuples that is associated with a recovery policy; and
emitting a checkpointing tuple following the trailing control tuple after a specified number of streaming windows, wherein the checkpointing tuple causes checkpointing of an instance of an operator for the application when the checkpointing tuple is received by the instance, wherein each of the operations is executed by one or more processors in real time or near real time rather than offline.

### Claim 20 (depends on 19)

The method of claim 19, wherein checkpointing includes serializing the instance to persistent storage.
