CA2422887C

System and method for providing fine-grained temporal database access

Abstract

A system and method for selectively viewing temporal row data in a consistent read-implemented database are described. Committed transactions effecting row data changes to a database are tracked and a stored system change number is assigned upon each committed transaction. A queried selection of row data values from the database is performed as of a query time occurring prior to the commit time of at least one committed transaction. The ordered row data values contained in the rollback segments storing a transaction identifier for at least one committed transaction are retrieved.

CA2422887C, drawing sheet 1
Sheet 1 of 15

Term

Term ended

Expired 28 September 2021, 5 years ago.

  1. Priority
  2. Filed
  3. Granted
  4. Expired
  5. Today

43 claims: 17 independent, 26 dependent

  1. 1
    CA 02422887 2007-08-14 What is claimed is:1. A system for providing fine-grained temporal database access in a consistent read environment, comprising: a database engine tracking transactions committed to the database as successive 5 consistent versions, each committed transaction generating a further consistent version of the database at a journaled commit time;a rollback mechanism storing transaction table entries for each uncommitted transaction, each transaction table entry storing retained data values reflecting database changes;10 a consistent read mechanism maintaining the transaction table entries for a userdefinable retention period following the commit time of each transaction and presenting a logical view of the database as of a query time occurring prior to the commit time of at least one transaction by accessing the retained data values stored in the transaction table entries for the at least one transaction. 15
  2. 3
    A system for providing fine-grained temporal database access in a consistent read environment, comprising:a database engine tracking transactions committed to the database as successive consistent versions, each committed transaction generating a further consistent version of the database at a journaled commit time;-14CA 02422887 2007-08-14 a rollback mechanism storing transaction table entries for each uncommitted transaction, each transaction table entry storing retained data values reflecting database changes;a consistent read mechanism maintaining the transaction table entries for a retention 5 period following the commit time of each transaction and presenting a logical view of the database as of a query time occurring prior to the commit time of at least one transaction by accessing the retained data values stored in the transaction table entries for the at least one transaction;the rollback mechanism storing the retained data values into transaction table entries 10 for each individual row within the database effected by an uncommitted transaction.
  3. 5
    A system for providing fine-grained temporal database access in a consistent read environment, comprising:a database engine tracking transactions committed to the database as successive consistent versions, each committed transaction generating a further consistent version of the database at a journaled commit time;20 a rollback mechanism storing transaction table entries for each uncommitted transaction, each transaction table entry storing retained data values reflecting database changes;a consistent read mechanism maintaining the transaction table entries for a retention period following the commit time of each transaction and presenting a logical view of 25 the database as of a query time occurring prior to the commit time of at least one transaction by accessing the retained data values stored in the transaction table entries -15CA 02422887 2007-08-14 for the at least one transaction;the rollback mechanism organizing the transaction table entries as a linked data structure comprising undo entries each storing at least part of the retained data values;and the consistent read mechanism traversing the linked data structure and selectively 5 retrieving the retained data values stored substantially contemporaneous to the query time.
  4. 9
    A method for providing fine-grained temporal database access in a consistent read environment, comprising:transitioning a database into successive consistent versions by tracking transactions committed to the database, each committed transaction generating a further consistent 20 version of the database at a journaled commit time;storing transaction table entries for each uncommitted transaction, each transaction table entry storing retained data values reflecting database changes;maintaining the transaction table entries for a user-definable retention period following the commit time of each transaction;and -16CA 02422887 2007-08-14 presenting a logical view of the database as of a query time occurring prior to the commit time of at least one transaction by accessing the retained data values stored in the transaction table entries for the at least one transaction.
  5. 11
    A method for providing fine-grained temporal database access in a consistent 10 read environment, comprising:transitioning a database into successive consistent versions by tracking transactions committed to the database, each committed transaction generating a further consistent version of the database at a journaled commit time;storing transaction table entries for each uncommitted transaction, each transaction 15 table entry storing retained data values reflecting database changes;maintaining the transaction table entries for a retention period following the commit time of each transaction;presenting a logical view of the database as of a query time occurring prior to the commit time of at least one transaction by accessing the retained data values stored in 20 the transaction table entries for the at least one transaction;and storing the retained data values into transaction table entries for each individual row within the database effected by an uncommitted transaction.
  6. 13
    A method for providing fine-grained temporal database access in a consistent 5 read environment, comprising:transitioning a database into successive consistent versions by tracking transactions committed to the database, each committed transaction generating a further consistent version of the database at a journaled commit time;storing transaction table entries for each uncommitted transaction, each transaction 10 table entry storing retained data values reflecting database changes;maintaining the transaction table entries for a retention period following the commit time of each transaction;presenting a logical view of the database as of a query time occurring prior to the commit time of at least one transaction by accessing the retained data values stored in 15 the transaction table entries for the at least one transaction;organizing the transaction table entries as a linked data structure comprising undo entries each storing at least part of the retained data values;and traversing the linked data structure and selectively retrieving the retained data values stored substantially contemporaneous to the query time. 20
  7. 17
    A computer-readable storage medium containing instructions for execution by a computer for providing fine-grained temporal database access in a consistent read environment, comprising:transitioning a database into successive consistent versions by tracking transactions 10 committed to the database, each committed transaction generating a further consistent version of the database at a journaled commit time;storing transaction table entries for each uncommitted transaction, each transaction table entry storing retained data values reflecting database changes;maintaining the transaction table entries for a user-definable retention period 15 following the commit time of each transaction;and presenting a logical view of the database as of a query time occurring prior to the commit time of at least one transaction by accessing the retained data values stored in the transaction table entries for the at least one transaction.
  8. 19
    A computer-readable storage medium containing instructions for execution by -19CA 02422887 2007-08-14 a computer for providing fine-grained temporal database access in a consistent read environment, comprising:transitioning a database into successive consistent versions by tracking transactions committed to the database, each committed transaction generating a further consistent 5 version of the database at a journaled commit time;storing transaction table entries for each uncommitted transaction, each transaction table entry storing retained data values reflecting database changes;maintaining the transaction table entries for a retention period following the commit time of each transaction;10 presenting a logical view of the database as of a query time occurring prior to the commit time of at least one transaction by accessing the retained data values stored in the transaction table entries for the at least one transaction;and storing the retained data values into transaction table entries for each individual row within the database effected by an uncommitted transaction. 15
  9. 21
    A computer-readable storage medium containing instructions for execution by 20 a computer for providing fine-grained temporal database access in a consistent read environment, comprising:transitioning a database into successive consistent versions by tracking transactions committed to the database, each committed transaction generating a further consistent version of the database at a journaled commit time;-20CA 02422887 2007-08-14 storing transaction table entries for each uncommitted transaction, each transaction table entry storing retained data values reflecting database changes;maintaining the transaction table entries for a retention period following the commit time of each transaction;5 presenting a logical view of the database as of a query time occurring prior to the commit time of at least one transaction by accessing the retained data values stored in the transaction table entries for the at least one transaction;organizing the transaction table entries as a linked data structure comprising undo entries each storing at least part of the retained data values;and 10 traversing the linked data structure and selectively retrieving the retained data values stored substantially contemporaneous to the query time.
  10. 23
    A system for selectively viewing temporal row data in a consistent readimplemented database, comprising:a database engine tracking committed transactions effecting row data changes to a database, assigning a stored system change number upon each committed transaction, 20 and transitioning the database into successive consistent versions responsive to each committed transaction at a journaled commit time;a storage storing rollback segments for uncommitted transactions, each rollback segment storing a transaction identifier and transaction table entries containing ordered row data values reflecting the database changes;-21CA 02422887 2007-08-14 a rollback mechanism maintaining the transaction table entries for a user-definable retention period following the commit time of each committed transaction;a consistent read mechanism performing a queried selection of row data values from the database as of a query time occurring prior to the commit time of at least one 5 committed transaction and retrieving the ordered row data values contained in the rollback segments storing a transaction identifier for the at least one committed transaction.
  11. 26
    A method for selectively viewing temporal row data in a consistent read15 implemented database, comprising:tracking committed transactions effecting row data changes to a database and assigning a stored system change number upon each committed transaction;storing rollback segments for uncommitted transactions, each rollback segment storing a transaction identifier and transaction table entries containing ordered row data values 20 reflecting the database changes;transitioning the database into successive consistent versions responsive to each committed transaction at a journaled commit time;-22CA 02422887 2007-08-14 maintaining the transaction table entries for a user-definable retention period following the commit time of each committed transaction;performing a queried selection of row data values from the database as of a query time occurring prior to the commit time of at least one committed transaction;and 5 retrieving the ordered row data values contained in the rollback segments storing a transaction identifier for the at least one committed transaction.
  12. 29
    A computer-readable storage medium holding code for selectively viewing temporal row data in a consistent read-implemented database, comprising:15 tracking committed transactions effecting row data changes to a database and assigning a stored system change number upon each committed transaction;storing rollback segments for uncommitted transactions, each rollback segment storing a transaction identifier and transaction table entries containing ordered row data values reflecting the database changes;20 transitioning the database into successive consistent versions responsive to each committed transaction at a journaled commit time;maintaining the transaction table entries for a user-definable retention period -23CA 02422887 2007-08-14 following the commit time of each committed transaction;performing a queried selection of row data values from the database as of a query time occurring prior to the commit time of at least one committed transaction;and retrieving the ordered row data values contained in the rollback segments storing a 5 transaction identifier for the at least one committed transaction.
  13. 32
    A system for performing a logical select operation on temporal row data stored in a consistent read-implemented database, comprising:a record of database operations comprising transactions effecting row data changes 15 that have been committed into a database;stored rollback segments for uncommitted transactions, each rollback segment storing a transaction identifier and information pertaining to effecting or restoring the database changes, including addresses for undo entries containing row data values reflecting the database changes;20 a database engine transitioning the database into successive consistent database versions responsive to each committed transaction at a journaled commit time and assigning a system change number to the database version upon each committed transaction;-24CA 02422887 2007-08-14 a rollback mechanism retaining the transaction table entries for a user-definable retention period following the commit time of each committed transaction;a query engine executing a logical select operation on the database for row data values as of a query time occurring prior to the commit time of at least one committed 5 transaction;and a consistent read mechanism retrieving the ordered row data values stored in the undo entries by referencing the undo block at each address included in the interested transaction entry with the transaction identifier for the at least one committed transaction. 10
  14. 33
    A method for performing a logical select operation on temporal row data stored in a consistent read-implemented database, comprising:maintaining a record of database operations comprising transactions effecting row data changes that have been committed into a database;storing rollback segments for uncommitted transactions, each rollback segment storing 15 a transaction identifier and information pertaining to effecting or restoring the database changes, including addresses for undo entries containing row data values reflecting the database changes;transitioning the database into successive consistent database versions responsive to each committed transaction at a journaled commit time and assigning a system change 20 number to the database version upon each committed transaction;retaining the transaction table entries for a user-definable retention period following the commit time of each committed transaction;executing a logical select operation on the database for row data values as of a query time occurring prior to the commit time of at least one committed transaction;and -25I CA 02422887 2007-08-14 retrieving the ordered row data values stored in the undo entries by referencing the undo block at each address included in the interested transaction entry with the transaction identifier for the at least one committed transaction.
  15. 34
    A method for processing data, comprising:5 receiving a query requesting temporal access of data and specifying a time prior to a commit time of a transaction that modified the data;reconstructing the data as of the time prior to the commit time of the transaction that modified the data;and completing processing the query based on the reconstructed data. 10
  16. 39
    A system for processing data, comprising:20 a database server configured to receive a query requesting temporal access of data and specifying a time prior to a commit time of a transaction that modified the data;-26CA 02422887 2007-08-14 a rollback mechanism configured to reconstruct the data as of the time prior to the commit time of the transaction that modified the data;and a query engine configured to complete processing the query based on the reconstructed data. 5
  17. 43
    A method for processing data, comprising:receiving a query requesting access of data existing as of a time specified by the query;wherein the time specified is a wall clock time or a time interval relative to a current wall clock time and prior to a commit time that modified the data;obtaining the data as of the time;and completing 15 processing the query based on the obtained data.
Independent claims17