IP Library Granted Patent US 9,811,571
Granted Patent B2
US 9,811,571 · App. 14/106,621 · Granted Nov 7, 2017

Bitemporal timeline index

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,811,571
App. No.
14/106,621
Granted
Nov 7, 2017
Kind
B2
Abstract

Data that includes a query of a temporal database is received from a remote application server. The query specifies at least one fact and a system time and an application time for the at least one fact. Thereafter, a bitemporal timeline index is accessed to identify data responsive to the query. The bitemporal timeline index includes a system time dimension and an application time dimension. Next, the identified data can be retrieved and provided to the remote application server. Related apparatus, systems, techniques and articles are also described.

Claims (54)

1. A method comprising:

receiving, from a remote application server, data comprising a query of a temporal database, the query specifying at least one fact and a system time and an application time for the at least one fact;

accessing a bitemporal timeline index to identify data responsive to the query, the bitemporal timeline index comprising:

a system timeline index comprising a system time dimension, the system time dimension comprising a system time that indicates when a data object is visible in the temporal database; and

an application timeline index comprising an application time dimension, the application time dimension comprising an application time that indicates when the data object is visible to a user;

storing updates to at least one of the application timeline index and the system timeline index in a delta store;

dynamically generating the application timeline index for a point in time specified by the query by merging the application timeline index with the corresponding delta store;

retrieving the identified data; and

providing the retrieved data to a remote application server.

2. A method as in claim 1 , wherein the bitemporal timeline index comprises an application timeline index for each point in system time.

3. A method as in claim 2 , wherein the application timeline index is built dynamically in response to receiving the query.

4. A method as in claim 3 , wherein the application timeline index is dynamically built by:

reverting back to a most recent checkpoint;

scanning a system timeline index between the checkpoint and a point specified by the query;

computing deltas for a most recent application timeline index based on the scanning; and

constructing the application timeline index using the checkpoint and the computed deltas.

5. A method as in claim 1 , wherein the query comprises a multiple time dimensions, and wherein there is a corresponding timeline index for each time dimension.

6. A method as in claim 1 , wherein the receiving, accessing, retrieving, and providing are implemented by at least one data processor forming part of at least one computing system.

7. A non-transitory computer program product storing instructions which, when executed by at least one data processor forming part of at least one computing system, results in operations comprising:

receiving, from a remote application server, data comprising a query of a temporal database, the query specifying at least one fact and a system time and an application time for the at least one fact;

accessing a bitemporal timeline index to identify data responsive to the query, the bitemporal timeline index comprising:

a system timeline index comprising a system time dimension, the system time dimension comprising a system time that indicates when a data object is visible in the temporal database; and

an application timeline index comprising an application time dimension, the application time dimension comprising an application time that indicates when the data object is visible to a user;

storing updates to at least one of the application timeline index and the system timeline index in a delta store;

dynamically generating the application timeline index for a point in time specified by the query by merging the application timeline index with the corresponding delta store;

retrieving the identified data; and

providing the retrieved data to a remote application server.

8. A computer program product as in claim 7 , wherein the bitemporal timeline index comprises an application timeline index for each point in system time.

9. A computer program product as in claim 8 , wherein the application timeline index is built dynamically in response to receiving the query.

10. A computer program product as in claim 9 , wherein the application timeline index is dynamically built by:

reverting back to a most recent checkpoint;

scanning a system timeline index between the checkpoint and a point specified by the query;

computing deltas for a most recent application timeline index based on the scanning; and

constructing the application timeline index using the checkpoint and the computed deltas.

11. A computer program product as in claim 7 , wherein the query comprises a multiple time dimensions, and wherein there is a corresponding timeline index for each time dimension.

12. A system comprising:

at least one application server comprising memory and at least one data processor; and

at least one database server comprising memory and at least one data processor;

wherein the at least one database server:

receives data comprising a query of data from the at least one application server, the query specifying at least one fact and a system time and an application time for the at least one fact;

accesses a bitemporal timeline index to identify data responsive to the query, the bitemporal timeline index comprising:

a system timeline index comprising a system time dimension, the system time dimension comprising a system time that indicates when a data object is visible in the temporal database; and

an application timeline index comprising an application time dimension, the application time dimension comprising an application time that indicates when the data object is visible to a user;

stores updates to at least one of the application timeline index and the system timeline index in a delta store;

dynamically generates the application timeline index for a point in time specified by the query by merging the application timeline index with the corresponding delta store;

retrieves the identified data; and

provides the retrieved data to a remote application server.

13. A system as in claim 12 , wherein:

the bitemporal timeline index comprises a plurality of application timeline indices corresponding to each point in system time; and

the application timeline index is built dynamically in response to receiving the query by:

reverting back to a most recent checkpoint;

scanning a system timeline index between the checkpoint and a point specified by the query;

computing deltas for a most recent application timeline index based on the scanning; and

constructing the application timeline index using the checkpoint and the computed deltas.

Assignments (2)
CHANGE OF NAME Recorded Aug 26, 2014
From: SAP AG
To: SAP SE
Reel/Frame 033625/0223 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 19, 2013
From: KAUFMANN, MARTIN; GOEL, ANIL KUMAR; GE, CHANG; KOSSMANN, DONALD
To: SAP AG
Reel/Frame 031819/0120 →