# US 8,751,525 B2 · Time slider operator for temporal data aggregation

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

- Number: US 8,751,525 B2
- Document ID: US8751525B2
- Status: Granted
- Kind: B2
- Application number: 13/336,951
- Filed: 2011-12-23
- Published: 2013-06-27
- Granted: 2014-06-10
- Earliest claimed: 2011-12-23
- Assignees: Sap SE
- Applicants: Martin Kaufmann; Norman May; Andreas Tonder; Donald Kossmann
- Inventors: Martin Kaufmann; Norman May; Andreas Tonder; Donald Kossmann
- Web page: https://patentgrep.com/patent/US8751525B2

## CPC

- G06F 16/219: {Managing data history or versioning (querying versioned data G06F16/2474; querying temporal data G06F16/2477)}
- G06F 16/2322: {using timestamps}
- G06F 16/2365: {Ensuring data consistency and integrity}
- G06F 16/2477: {Temporal data queries}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Calculation of aggregated values in a history database table can be optimized using an approach in which an ordered history table is accessed. The ordered history table can include a sequential listing of commit identifiers associated with updates, insertions, and/or deletions to values in the database table. The ordered history table can be traversed in a single pass to calculate an aggregation function using an optimized algorithm. The optimized algorithm can enable calculation of an aggregated metric of the values based on a selected method for tracking invalidated values to their corresponding commit identifiers. The calculated metric is generated for a current version of the database table; and promoted.

## Claims

### Claim 1

A non-transitory computer program product storing instructions that, when executed by at least one programmable processor, cause the at least one programmable processor to perform operations comprising:
accessing an ordered history table of a database table, the ordered history table comprising a plurality of commit identifiers associated with one or more of updates, insertions, and deletions to values in the database table, the ordered history table comprising a sequential listing of the commit identifiers associated with first occurrences of changes to one or more of the values and a listing of the values corresponding to the sequential listing of the commit identifiers;
traversing the ordered history table in a single pass to calculate an aggregation function using an optimized algorithm, to generate an aggregated metric of the values based on a selected method for tracking invalidated values to their corresponding commit identifiers, the selected method comprising generating an invalidation index using the optimized algorithm, the invalidation index being generated by indexing a commit identifier column in the ordered history table to positions in the ordered history table at which values are invalidated either by deletion or by being updated to another value, the invalidation index listing positions within the ordered history table at which invalidation occurs and being appended as additional updates or deletes of the values occur;
generating the calculated metric for a current version of the database table based on traversing the ordered history table; and
promoting the calculated metric.

### Claim 2 (depends on 1)

A computer program product as in claim 1, wherein the promoting comprises one or more of storing the calculated metric, presenting the calculated metric via a user interface display, and sending an electronic message comprising the calculated metric.

### Claim 3 (depends on 1)

A computer program product as in claim 1, wherein the optimized algorithm further comprises one or more of generating a separate bitlist for each of the commit identifiers, and generating a previous version array.

### Claim 4 (depends on 3)

A computer program product as in claim 3, wherein the operations further comprise selecting the optimized algorithm dependent on the aggregation function from a plurality of algorithms, the selecting cmprising assessing one or more attributes of the database table in relation to a set of optimization criteria for each of the plurality of algorithms.

### Claim 5 (depends on 1)

A computer program product as in claim 1, wherein the traversing comprises one or more of incrementing a variable based on changes to the values at each commit identifiers, creating a chained list corresponding to each commit identifier, and creating a sorted list corresponding to each commit identifier.

### Claim 6 (depends on 1)

A computer program product as in claim 1, wherein the calculated metric comprises one or more of a sum, a count, an average, a minimum value, a maximum value, a median, a mode, and skewness.

### Claim 7 (depends on 1)

A computer program product as in claim 1, wherein the operations further comprise generating the ordered history table by sorting the history table sequentially by the commit identifiers.

### Claim 8

A system comprising:
at least one programmable processor; and a machine-readable medium storing instructions that, when executed by the at least one programmable processor, cause the at least one programmable processor to perform operations comprising:
accessing an ordered history table of a database table, the ordered history table comprising a plurality of commit identifiers associated with one or more of updates, insertions, and deletions to values in the database table, the ordered history table comprising a sequential listing of the commit identifiers associated with first occurrences of changes to one or more of the values and a listing of the values corresponding to the sequential listing of the commit identifiers;
traversing the ordered history table in a single pass to calculate an aggregation function using an optimized algorithm to generate an aggregated metric of the values based on a selected method for tracking invalidated values to their corresponding commit identifiers, the selected method includes generating an invalidation index using the optimized algorithm, the invalidation index being generated by indexing a commit identifier column in the ordered history table to positions in the ordered history table at which values are invalidated either by deletion or by being updated to another value, the invalidation index listing positions within the ordered history table at which invalidation occurs and being appended as additional updates or deletes of the values occur;
generating the calculated metric for a current version of the database table based on traversing the ordered history table; and
promoting the calculated metric.

### Claim 9 (depends on 8)

A system as in claim 8, wherein the promoting comprises one or more of storing the calculated metric, presenting the calculated metric via a user interface display, and sending an electronic message comprising the calculated metric.

### Claim 10 (depends on 8)

A system as in claim 8, wherein the optimized algorithm further comprises one or more of generating a separate bitlist for each of the commit identifiers, and generating a previous version array.

### Claim 11 (depends on 10)

A system as in claim 10, wherein the operations further comprise selecting the optimized algorithm from a plurality of algorithms, the selecting comprising assessing one or more attributes of the database table in relation to a set of optimization criteria for each of the plurality of algorithms.

### Claim 12 (depends on 8)

A system as in claim 8, wherein the traversing comprises one or more of incrementing a variable based on changes to the values at each commit identifiers, creating a chained list corresponding to each commit identifier, and creating a sorted list corresponding to each commit identifier.

### Claim 13 (depends on 8)

A system as in claim 8, wherein the calculated metric comprises one or more of a sum, a count, an average, a minimum value, a maximum value, a median, a mode, and a skewness.

### Claim 14

A computer-implemented method comprising:
accessing an ordered history table of a database table, the ordered history table comprising a plurality of commit identifiers associated with one or more of updates, insertions, and deletions to values in the database table, the ordered history table comprising a sequential listing of the commit identifiers associated with first occurrences of changes to one or more of the values and a listing of the values corresponding to the sequential listing of the commit identifiers;
traversing the ordered history table in a single pass to calculate an aggregation function using an optimized algorithm to generate an aggregated metric of the values based on a selected method for tracking invalidated values to their corresponding commit identifiers, wherein the selected method includes generating an invalidation index using the optimized algorithm, the invalidation index being generated by indexing a commit identifier column in the ordered history table to positions in the ordered history table at which values are invalidated either by deletion or by being updated to another value, the invalidation index listing positions within the ordered history table at which invalidation occurs and being appended as additional updates or deletes of the values occur;
generating the calculated metric for a current version of the database table based on traversing the ordered history table; and
promoting the calculated metric.

### Claim 15 (depends on 14)

A computer-implemented method as in claim 14, wherein the promoting comprises one or more of storing the calculated metric, presenting the calculated metric via a user interface display, and sending an electronic message comprising the calculated metric.

### Claim 16 (depends on 4)

A computer-implemented method as in claim 4, wherein the optimized algorithm further comprises one or more generating a separate bitlist for each of the commit identifiers and generating a previous version array.

### Claim 17 (depends on 16)

A computer-implemented method as in claim 16, further comprising selecting the optimized algorithm from a plurality of algorithms, the selecting comprising assessing one or more attributes of the database table in relation to a set of optimization criteria for each of the plurality of algorithms.

### Claim 18 (depends on 14)

A computer-implemented method as in claim 14, wherein the traversing comprises one or more of incrementing a variable based on changes to the values at each commit identifiers, creating a chained list corresponding to each commit identifier, and creating a sorted list corresponding to each commit identifier.

### Claim 19 (depends on 14)

A computer-implemented method as in claim 14, wherein the calculated metric comprises one or more of a sum, a count, an average, a minimum value, a maximum value, a median, a mode, and a skewness.

### Claim 20 (depends on 14)

A computer-implemented method as in claim 14, wherein at least one of the ordering, the traversing, the generating, and the promoting are performed by one or more programmable processors.
