# US 2014/0156707 A1 · Streaming system performance optimization

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

- Number: US 2014/0156707 A1
- Document ID: US20140156707A1
- Status: Published application
- Kind: A1
- Application number: 13/705,952
- Filed: 2012-12-05
- Published: 2014-06-05
- Earliest claimed: 2012-12-05
- Assignees: Hewlett-Packard Development Company, L.P.
- Applicants: Hewlett-Packard Development Company, L.P.
- Inventors: Matthias Sax; Maria G. CASTELLANOS; Meichun HSU; Qiming CHEN
- Web page: https://patentgrep.com/patent/US20140156707A1

## CPC

- G06F 16/9024: {Graphs; Linked lists (G06F16/9027 takes precedence)}
- G06F 9/5066: {Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs (mappping at compile time, see G06F8/451)}
- G06F 9/451: Execution arrangements for user interfaces
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

According to an example, a dataflow directed acyclic graph including nodes and edges connecting the nodes. Parameters for the nodes are calculated, and the parameters may include batch size and a degree of parallelism.

## Claims

### Claim 1

A performance optimization system to optimize processing in a streaming system, the performance optimization system comprising:
a data storage to store a dataflow directed acyclic graph comprising nodes and edges connecting the nodes, wherein the nodes process tuples and the edges send the tuples from one node to another node;
a parameter determination module executed by a processor to calculate parameters for the nodes to minimize average latency for the tuples, wherein the parameters include batch size and a degree of parallelism (dop); and
a parameter execution module to provide the parameters for the nodes to the streaming system, wherein the streaming system is to execute a dataflow for the dataflow directed acyclic graph according to the parameters for the nodes.

### Claim 2 (depends on 1)

The performance optimization system according to claim 1, wherein the nodes comprise producers generating the tuples and consumers receiving the tuples, wherein to calculate the parameters, the parameter determination module is to:
for each of the producers, determine, if batching is to be performed to reduce actual processing time, and determine a batch size if the batching is to be performed.

### Claim 3 (depends on 2)

The performance optimization system according to claim 2, wherein the parameter determination module is to determine whether an input latency is smaller than a processing time to determine whether the batching is to be performed, and to calculate the batch size to reduce actual processing time by reducing shipping time.

### Claim 4 (depends on 2)

The performance optimization system according to claim 2, wherein the batch size is calculated based on the shipping time and pure processing time of tuples processed and shipped by the producer to a consumer connected to the producer by one of the edges.

### Claim 5 (depends on 2)

The performance optimization system according to claim 2, wherein to calculate the parameters, including the dop, the parameter determination module is to:
determine the dop for each of the consumers based on an output rate of tuples sent from a producer to the consumer and a pure processing time of the tuples at the consumer.

### Claim 6 (depends on 5)

The performance optimization system according to claim 5, wherein the dop for each consumer is larger than the output rate multiplied by the pure processing time of the consumer.

### Claim 7 (depends on 1)

The performance optimization system according to claim 1, wherein the nodes comprise producers generating the tuples and consumers receiving the tuples, and to calculate parameters for the nodes, the parameter determination module is to determine batch sizes for the producers based on shipping times, pure processing times and input rates, wherein
each shipping time is
t.arrive−t.create, wherein t.arrive is a timestamp indicating a time when a tuple arrives at a consumer, and t.create is a timestamp indicating a time when the tuple is newly created at a producer sending the tuple to the consumer,
each pure processing time is t.delete−t.start, wherein t.delete is a timestamp indicating when the tuple is deleted responsive to being completely processed at the consumer, and t.start is a timestamp indicating when the consumer starts processing the tuple, and
input rate is equal to an output rate of the producer.

### Claim 8 (depends on 1)

The performance optimization system according to claim 1, wherein the nodes comprise producers generating the tuples, consumers receiving the tuples, and at least one source that is a producer which does not receive tuples from another node in the dataflow directed acyclic graph, and
to calculate the parameters, the parameter determination module is to calculate parameters starting at the at least source node and continue to calculate the parameters throughout a topology of the dataflow directed acyclic graph from the producers to the consumers, wherein the calculated parameters for the consumers are based on the calculated parameters for the producers.

### Claim 9 (depends on 1)

The performance optimization system according to claim 1, comprising a user interface to display the dataflow and the parameters for the dataflow before and after optimizing the dataflow by the parameter determination module.

### Claim 10

A non-transitory computer readable medium including machine readable instructions executable by a processor to:
receive a dataflow directed acyclic graph comprising nodes and edges connecting the nodes, wherein the nodes comprise producers and consumers processing tuples, and the edges send the tuples from the producers to the consumers;
calculate parameters for the nodes to minimize average latencies for the tuples, wherein the parameters include batch size and a degree of parallelism (dop); and
send the parameters to a streaming system to process the dataflow according to the parameters.

### Claim 11 (depends on 10)

The non-transitory computer readable medium according to claim 10, wherein the instructions to calculate parameters for the nodes comprise instructions to:
determine, for each producer, if batching is to be performed to reduce actual processing time, and a batch size if the batching is to be performed.

### Claim 12 (depends on 11)

The non-transitory computer readable medium according to claim 11, wherein the instructions to determine whether the batching is to be performed comprise instructions to determine whether the batching is to be performed to reduce actual processing time by reducing shipping time.

### Claim 13 (depends on 10)

The non-transitory computer readable medium according to claim 10, wherein the instructions to calculate parameters, including the dop, comprise instructions to:
determine the dop for each of the consumers based on an output rate of tuples sent from a producer to the consumer and a pure processing time of the tuples at the consumer.

### Claim 14 (depends on 13)

The non-transitory computer readable medium according to claim 13, wherein the dop for each consumer is larger than the output rate multiplied by the pure processing time of the consumer.

### Claim 15

A method comprising:
receiving a dataflow directed acyclic graph comprising nodes and edges connecting the nodes, wherein the nodes comprise producers and consumers processing tuples, and the edges send the tuples from the producers to the consumers;
determining, by a processor, for each producer, whether batching is to be performed to reduce actual processing time, and a batch size if the batching is to be performed; and
determining a dop for each of the consumers based on an output rate of tuples sent from a producer to the consumer and a pure processing time of the tuples at the consumer.
