Version control based on a dual-range validity model
First Claim
1. A method comprising:
- storing a plurality of version records describing versions of a data item, a version record of said plurality of version records;
describing any open transactions for a version of said data item;
specifying a commit timestamp for said data item at a database and a valid timestamp at least as great as said commit timestamp, said commit timestamp and said valid timestamp specifying a validity range;
specifying an expiration timestamp, said valid timestamp and said expiration timestamp specifying an unresolved range;
identifying a valid version of said data item for a query timestamp, said query timestamp corresponding to a query for particular data in said data item and falling within either said validity range or said unresolved range;
when said query timestamp is within said validity range and said particular data is uninvolved in said any open transactions, establishing said version as said valid version for said query timestamp,when said query timestamp is within said validity range and said particular data is involved in at least one open transaction of said any open transactions, requesting, from a transaction-oriented data server of said database, said valid version for said query timestamp, andwhen said query timestamp is within said unresolved range, requesting, from said transaction-oriented data server of said database, said valid version for said query timestamp,wherein said method is performed by one or more computing devices.
2 Assignments
0 Petitions
Accused Products
Abstract
Techniques related to version control based on a dual-range validity model are disclosed. In an embodiment, an online analytical processing (OLAP) server stores a plurality of version records describing versions of a data item. A version record may describe any open transactions for a version of the data item. The version record may specify a commit timestamp for the data item at a database and a valid timestamp at least as great as the commit timestamp. The commit timestamp and the valid timestamp may specify a validity range. The version record may also specify an expiration timestamp, which along with the valid timestamp may specify an unresolved range. The OLAP server may also identify a valid version of the data item for a query timestamp that corresponds to a query for particular data in the data item and that falls within either the validity range or the unresolved range.
-
Citations
20 Claims
-
1. A method comprising:
-
storing a plurality of version records describing versions of a data item, a version record of said plurality of version records; describing any open transactions for a version of said data item; specifying a commit timestamp for said data item at a database and a valid timestamp at least as great as said commit timestamp, said commit timestamp and said valid timestamp specifying a validity range; specifying an expiration timestamp, said valid timestamp and said expiration timestamp specifying an unresolved range; identifying a valid version of said data item for a query timestamp, said query timestamp corresponding to a query for particular data in said data item and falling within either said validity range or said unresolved range; when said query timestamp is within said validity range and said particular data is uninvolved in said any open transactions, establishing said version as said valid version for said query timestamp, when said query timestamp is within said validity range and said particular data is involved in at least one open transaction of said any open transactions, requesting, from a transaction-oriented data server of said database, said valid version for said query timestamp, and when said query timestamp is within said unresolved range, requesting, from said transaction-oriented data server of said database, said valid version for said query timestamp, wherein said method is performed by one or more computing devices. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. One or more non-transitory storage media storing sequences of instructions which, when processed by one or more computing devices, cause:
-
storing a plurality of version records describing versions of a data item, a version record of said plurality of version records; describing any open transactions for a version of said data item; specifying a commit timestamp for said data item at a database and a valid timestamp at least as great as said commit timestamp, said commit timestamp and said valid timestamp specifying a validity range; specifying an expiration timestamp, said valid timestamp and said expiration timestamp specifying an unresolved range; identifying a valid version of said data item for a query timestamp, said query timestamp corresponding to a query for particular data in said data item and falling within either said validity range or said unresolved range; when said query timestamp is within said validity range and said particular data is uninvolved in said any open transactions, establishing said version as said valid version for said query timestamp, when said query timestamp is within said validity range and said particular data is involved in at least one open transaction of said any open transactions, requesting, from a transaction-oriented data server of said database, said valid version for said query timestamp, and when said query timestamp is within said unresolved range, requesting, from said transaction-oriented data server of said database, said valid version for said query timestamp. - View Dependent Claims (9, 10, 11, 12, 13, 14)
-
-
15. A method of an online analytical processing (OLAP) server comprising:
-
storing a plurality of version records describing versions of a data item, a version record of said plurality of version records; describing any open transactions for a version of said data item; specifying a commit timestamp for said data item at a database and a valid timestamp at least as great as said commit timestamp, said commit timestamp and said valid timestamp specifying a validity range; specifying an expiration timestamp, said valid timestamp and said expiration timestamp specifying an unresolved range; identifying a valid version of said data item for a query timestamp, said query timestamp corresponding to a query for particular data in said data item and falling within either said validity range or said unresolved range; when said query timestamp is within said validity range and said particular data is uninvolved in said any open transactions, establishing said version as said valid version for said query timestamp, when said query timestamp is within said validity range and said particular data is involved in at least one open transaction of said any open transactions, requesting, from a transaction-oriented data server of said database, said valid version for said query timestamp, and when said query timestamp is within said unresolved range, requesting, from said transaction-oriented data server of said database, said valid version for said query timestamp. - View Dependent Claims (16, 17, 18, 19, 20)
-
Specification