US 9,811,560 B2
Version control based on a dual-range validity model
Andrea Di Blas, Irvine, CA (US); Benjamin Schlegel, Redwood City, CA (US); Sam Idicula, Santa Clara, CA (US); Sabina Petride, Tracy, CA (US); Kantikiran Pasupuleti, Foster City, CA (US); and Nipun Agarwal, Saratoga, CA (US)
Assigned to Oracle International Corporation, Redwood Shores, CA (US)
Filed by Oracle International Corporation, Redwood Shores, CA (US)
Filed on Aug. 12, 2015, as Appl. No. 14/824,920.
Prior Publication US 2017/0046384 A1, Feb. 16, 2017
Int. Cl. G06F 7/00 (2006.01); G06F 17/30 (2006.01)
CPC G06F 17/30448 (2013.01) [G06F 17/30345 (2013.01); G06F 17/30353 (2013.01)] 20 Claims
OG exemplary drawing
 
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.