# US 10,311,061 B2 · Quality-driven processing of out-of-order data streams

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

- Number: US 10,311,061 B2
- Document ID: US10311061B2
- Status: Granted
- Kind: B2
- Application number: 14/935,009
- Filed: 2015-11-06
- Published: 2017-05-11
- Granted: 2019-06-04
- Earliest claimed: 2015-11-06
- Assignees: Sap SE
- Applicants: Sap SE
- Inventors: Yuanzhen Ji; Zbigniew Jerzak; Anisoara Nica; Gregor Hackenbroich
- Web page: https://patentgrep.com/patent/US10311061B2

## CPC

- G06F 16/24568: {Data stream processing; Continuous queries}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

The present disclosure involves systems, software, and computer implemented methods for providing quality-driven processing of out-of-order data streams based on a configurable quality metric. In one example, the method includes identifying a configurable quality metric defined by a user or application for executing continuous queries over a sliding window, the metric specifying a user requirement for the quality of the continuous query result. A quality threshold metric is calculated based on the configurable quality metric, the configurable quality metric associated with a size of an adaptation buffer for incoming tuples of the query. In response to receiving a signal indicating a new query result, a sliding window prior to a current time is identified. A runtime quality metric associated with the incoming tuples for the sliding window is measured, and the adaptation buffer is modified based on a difference between the quality threshold metric and the measured runtime quality metric.

## Claims

### Claim 1

A computerized method of processing data streams performed by one or more processors, the method comprising:
identifying, by the one or more processors, a configurable quality metric defined by a user or application for executing continuous queries associated with a data stream over a sliding window, the configurable quality metric specifying a user requirement for the quality of the continuous query result;
calculating, by the one or more processors, a quality threshold metric based on the identified configurable quality metric, the configurable quality metric associated with a size of an adaptation buffer for incoming tuples associated with the continuous query associated with the data stream;
in response to receiving a signal indicating a query result is generated, identifying, by the one or more processors, a sliding window prior to a current time;
measuring, by the one or more processors, a runtime quality metric associated with the incoming tuples for the identified sliding window; and
dynamically modifying, by the one or more processors, the adaptation buffer at query runtime based on a difference between the quality threshold metric and the measured runtime quality metric.

### Claim 2 (depends on 1)

The method of claim 1, wherein dynamically modifying the adaptation buffer comprises:
determining a change to a proportional parameter associated with an adaptation buffer based on the difference between the quality threshold metric and the measured runtime quality metric; and
modifying the adaptation buffer by applying the determined change to the proportional parameter to the adaptation buffer.

### Claim 3 (depends on 2)

The method of claim 2, further comprising continuously monitoring statistics related to the data stream associated with the incoming tuples for future adaptation of the proportional parameter associated with the adaptation buffer.

### Claim 4 (depends on 3)

The method of claim 3, the monitored statistics including an estimated tuple arrival rate and data characteristics associated with the data stream.

### Claim 5 (depends on 3)

The method of claim 3, further comprising repeating the measuring, determining, and modifying operations in response to each signal indicating a new query result is generated, wherein measuring the runtime quality metric associated with the incoming tuples for the identified sliding window is based on an updated set of monitored statistics obtained by the continuous monitoring.

### Claim 6 (depends on 3)

The method of claim 3, further comprising repeating the measuring, determining, and modifying operations in response to receiving a set of predefined query results or in response to passage of a predefined number of time units.

### Claim 7 (depends on 3)

The method of claim 3, wherein the proportional parameter is initially set to 1.

### Claim 8 (depends on 2)

The method of claim 2, wherein the size of the adaptation buffer is associated with a size parameter representing a maximum delay among previously received late tuple arrivals within a window, and wherein determining the change to the adaptation buffer based on a difference between the quality threshold metric and the measured runtime quality metric includes modifying an adaptation parameter defining a proportional change to the size parameter of the adaptation buffer, and wherein modifying the adaptation buffer comprises modifying the adaptation buffer size based on the determined modified adaptation parameter.

### Claim 9 (depends on 1)

The method of claim 1, wherein the configurable quality metric identifies a relative error, the relative error representing a specified threshold for relative errors in produced query results.

### Claim 10 (depends on 9)

The method of claim 9, wherein the relative error is translated into a window coverage threshold, the window coverage threshold representing an intermediate quality metric derived from the relative error, the window coverage threshold defining a minimum window associated with the buffer to satisfy the configurable quality metric.

### Claim 11 (depends on 1)

The method of claim 1, further comprising performing a warm-up period prior to calculating an initial quality threshold based on the identified configurable quality metric.

### Claim 12 (depends on 1)

The method of claim 1, wherein calculating the quality threshold metric comprises using the identified configurable quality metric as the quality threshold metric.

### Claim 13

A non-transitory, computer-readable medium storing computer-readable instructions executable by a computer, wherein the instructions instruct the computer to:
identify, by the computer, a configurable quality metric defined by a user or application for executing continuous queries associated with a data stream over a sliding window, the configurable quality metric specifying a user requirement for the quality of the continuous query result;
calculate, by the computer, a quality threshold metric based on the identified configurable quality metric, the configurable quality metric associated with a size of an adaptation buffer for incoming tuples associated with the continuous query associated with the data stream;
in response to receiving a signal indicating a query result is generated, identify, by the computer, a sliding window prior to a current time;
measure, by the computer, a runtime quality metric associated with the incoming tuples for the identified sliding window; and
dynamically modify, by the computer, the adaptation buffer at query runtime based on a difference between the quality threshold metric and the measured runtime quality metric.

### Claim 14 (depends on 13)

The medium of claim 13, wherein modifying the adaptation buffer comprises:
determining a change to a proportional parameter associated with an adaptation buffer based on the difference between the quality threshold metric and the measured runtime quality metric; and
modifying the adaptation buffer by applying the determined change to the proportional parameter to the adaptation buffer.

### Claim 15 (depends on 14)

The medium of claim 14, wherein the instructions instruct the computer to continuously monitoring statistics related to a data stream associated with the incoming tuples for future adaptation of the proportional parameter associated with the adaptation buffer.

### Claim 16 (depends on 15)

The medium of claim 15, the monitored statistics including an estimated tuple arrival rate and data characteristics associated with the data stream.

### Claim 17 (depends on 15)

The medium of claim 15, wherein the instructions instruct the computer to repeat the measuring, determining, and modifying operations in response to each signal indicating a new query result is generated, wherein measuring the runtime quality metric associated with the incoming tuples for the identified sliding window is based on an updated set of monitored statistics obtained by the continuous monitoring.

### Claim 18 (depends on 13)

The medium of claim 13, wherein the configurable quality metric identifies a relative error, the relative error representing a specified threshold for relative errors in produced query results.

### Claim 19 (depends on 18)

The medium of claim 18, wherein the relative error is translated into a window coverage threshold, the window coverage threshold represents an intermediate quality metric derived from the relative error, the window coverage threshold defining a minimum window associated with the buffer to satisfy the configurable quality metric.

### Claim 20

A system, comprising:
a memory;
at least one hardware processor interoperably coupled with the memory and configured to:;
identify, by the at least one hardware processor, a configurable quality metric defined by a user or application for executing continuous queries associated with a data stream over a sliding window, the configurable quality metric specifying a user requirement for the quality of the continuous query result;
calculate, by the at least one hardware processor, a quality threshold metric based on the identified configurable quality metric, the configurable quality metric associated with a size of an adaptation buffer for incoming tuples associated with the continuous query associated with the data stream;
in response to receiving a signal indicating a query result is generated, identify, by the at least one hardware processor, a sliding window prior to a current time;
measure, by the at least one hardware processor, a runtime quality metric associated with the incoming tuples for the identified sliding window; and
dynamically modify, by the at least one hardware processor, the adaptation buffer at query runtime based on a difference between the quality threshold metric and the measured runtime quality metric.
