# US 10,872,075 B2 · Indexing flexible multi-representation storages for time series data

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

- Number: US 10,872,075 B2
- Document ID: US10872075B2
- Status: Granted
- Kind: B2
- Application number: 15/655,667
- Filed: 2017-07-20
- Published: 2019-01-24
- Granted: 2020-12-22
- Earliest claimed: 2017-07-20
- Assignees: Sap SE
- Applicants: Sap SE
- Inventors: Gordon Gaumnitz; Lars Dannecker
- Web page: https://patentgrep.com/patent/US10872075B2

## CPC

- G06F 16/2365: {Ensuring data consistency and integrity}
- G06F 16/2272: {Management thereof}
- G06F 16/24568: {Data stream processing; Continuous queries}
- G06F 16/2477: {Temporal data queries}
- G06F 16/27: Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Time series data may be represented with multiple representations, optionally using a variety of storage approaches, and the plurality of representations may be indexed using a representation index, which includes a start row identifier, a representation identifier, and an offset within the representation for each segment of one or more rows in the time series data column.

## Claims

### Claim 1

A computer-implemented method comprising:
representing raw time series data in a time series data column with a plurality of representations of the raw time series data, wherein each of the plurality of representations refers to a storage approach of the raw time series data, wherein the plurality of representations comprise at least two storage approaches, wherein the at least two storage approaches comprise at least two different compression formats in which the raw time series data is stored;
indexing the plurality of representations using a representation index, the representation index comprising, for each segment of the plurality of representations, a start row identifier, a representation identifier corresponding to a representation of the plurality of representations, an end row identifier, and an offset value, wherein the offset value indicates a relevant position within the representation of the plurality of representations where the segment begins, wherein each segment comprises one or more rows in the time series data column associated with the representation of the plurality of representations; and
accessing the representation index instead of the time series data column to perform a data operation on the raw time series data.

### Claim 2 (depends on 1)

The computer-implemented method of claim 1, wherein the accessing of the representation index comprises fetching, from the representation index, the start row identifier, the representation identifier, and the offset for each of one or more representations spanning a set of rows to be operated on, and accessing the one or more representations based on the start row identifier, the representation identifier, and the offset.

### Claim 3 (depends on 1)

The computer-implemented method of claim 1, wherein the at least two storage approaches differ in two or more of compression, storage type, and approximation error.

### Claim 4 (depends on 1)

The computer-implemented method of claim 1, wherein the data operation comprises an update and/or an insert of a value in the time series data column, and the method further comprises:
creating a copy of the representation index; and
adding one or more new lines to the copy of the representation index to reflect a new segment of one or more rows in the time series data column.

### Claim 5 (depends on 1)

The computer-implemented method of claim 1, wherein the data operation comprises a deletion of a value in the time series data column and the method further comprises:
creating a copy of the representation index; and
deleting one or more existing lines from the copy of the representation index to reflect deletion of an existing segment one or more existing rows.

### Claim 6 (depends on 1)

The computer-implemented method of claim 1, wherein the data operation comprises two concurrent data modification transactions, and the method further comprises:
creating a first copy of the representation index for a first transaction of the two concurrent data modification transactions;
adding at least one first new line to the representation index to reflect a first new segment of one or more rows in the time series data column and/or deleting at least one first existing line from the first copy of the representation index to reflect deletion of an existing first segment comprising one or more existing rows;
creating a second copy of the representation index for a second transaction of the two concurrent data modification transactions;
adding at least one second new line to the representation index to reflect a second new segment of one or more rows in the time series data column and/or deleting at least one second existing line from the second copy of the representation index to reflect deletion of an existing second segment comprising one or more existing rows.

### Claim 7 (depends on 6)

The computer-implemented method of claim 6, further comprising merging the first copy of the representation index and the second copy of the representation index.

### Claim 8 (depends on 6)

The computer-implemented method of claim 6, further comprising aborting the second transaction when an attempt to merge the first copy of the representation index and the second copy of the representation index results in a conflict.

### Claim 9 (depends on 1)

The computer-implemented method of claim 1, further comprising creating at least one new representation to replace two or more representations referenced by the representation index when the representation index exceeds a threshold number of lines.

### Claim 10

A computer program product comprising a non-transitory machine-readable medium storing instructions that, when executed by at least one programmable processor, cause the at least one programmable processor to perform operations comprising:
representing raw time series data in a time series data column with a plurality of representations of the raw time series data, wherein each of the plurality of representations refers to a storage approach of the raw time series data, wherein the plurality of representations comprise at least two storage approaches, wherein the at least two storage approaches comprise at least two different compression formats in which the raw time series data is stored;
indexing the plurality of representations using a representation index, the representation index comprising, for each segment of the plurality of representations, a start row identifier, a representation identifier corresponding to a representation of the plurality of representations, an end row identifier, and an offset value, wherein the offset value indicates a relevant position within the representation of the plurality of representations where the segment begins, wherein each segment comprises one or more rows in the time series data column associated with the representation of the plurality of representations; and
accessing the representation index instead of the time series data column to perform a data operation on the raw time series data.

### Claim 11 (depends on 10)

The computer program product of claim 10, wherein the accessing of the representation index comprises fetching, from the representation index, the start row identifier, the representation identifier, and the offset for each of one or more representations spanning a set of rows to be operated on, and accessing the one or more representations based on the start row identifier, the representation identifier, and the offset.

### Claim 12 (depends on 10)

The computer program product of claim 10, wherein the at least two storage approaches differ in two or more of compression, storage type, and approximation error.

### Claim 13 (depends on 10)

The computer program product of claim 10, wherein the data operation comprises an update and/or an insert of a value in the time series data column, and the method further comprises:
creating a copy of the representation index; and
adding one or more new lines to the copy of the representation index to reflect a new segment of one or more rows in the time series data column.

### Claim 14 (depends on 10)

The computer program product of claim 10, wherein the data operation comprises a deletion of a value in the time series data column and the method further comprises:
creating a copy of the representation index; and
deleting one or more existing lines from the copy of the representation index to reflect deletion of an existing segment one or more existing rows.

### Claim 15 (depends on 10)

The computer program product of claim 10, wherein the data operation comprises two concurrent data modification transactions, and the method further comprises:
creating a first copy of the representation index for a first transaction of the two concurrent data modification transactions;
adding at least one first new line to the representation index to reflect a first new segment of one or more rows in the time series data column and/or deleting at least one first existing line from the first copy of the representation index to reflect deletion of an existing first segment comprising one or more existing rows;
creating a second copy of the representation index for a second transaction of the two concurrent data modification transactions;
adding at least one second new line to the representation index to reflect a second new segment of one or more rows in the time series data column and/or deleting at least one second existing line from the second copy of the representation index to reflect deletion of an existing second segment comprising one or more existing rows.

### Claim 16 (depends on 15)

The computer program product of claim 15, wherein the operations further comprise merging the first copy of the representation index and the second copy of the representation index.

### Claim 17 (depends on 15)

The computer program product of claim 15, wherein the operations further comprise aborting the second transaction when an attempt to merge the first copy of the representation index and the second copy of the representation index results in a conflict.

### Claim 18 (depends on 10)

The computer program product of claim 10, wherein the operations further comprise creating at least one new representation to replace two or more representations referenced by the representation index when the representation index exceeds a threshold number of lines.

### Claim 19

A system comprising:
computer hardware configured to perform operations comprising:
representing raw time series data in a time series data column with a plurality of representations of the raw time series data, wherein each of the plurality of representations refers to a storage approach of the raw time series data, wherein the plurality of representations comprise at least two storage approaches, wherein the at least two storage approaches comprise at least two different compression formats in which the raw time series data is stored;
indexing the plurality of representations using a representation index, the representation index comprising, for each segment of the plurality of representations, a start row identifier, a representation identifier corresponding to a representation of the plurality of representations, an end row identifier, and an offset value, wherein the offset value indicates a relevant position within the representation of the plurality of representations where the segment begins, wherein each segment comprises one or more rows in the time series data column associated with the representation of the plurality of representations; and
accessing the representation index instead of the time series data column to perform a data operation on the raw time series data.

### Claim 20 (depends on 19)

A system as in claim 19, wherein the computer hardware comprises
a programmable processor; and
a machine-readable medium storing instructions that, when executed by the processor, cause the at least one programmable processor to perform at least some of the operations.
