Efficient queriability of version histories in a repository
First Claim
1. A computer-implemented method comprising:
- determining a version history for a particular version of a resource identified by a unique identifier, including;
accessing a version history data table;
wherein the version history data table includes a plurality of rows;
wherein each particular row of the plurality of rows represents one and only one link between successive versions of said resource;
wherein each particular row of the plurality of rows does not represent a particular version of said resource;
wherein said resource is stored in a database, said database supporting versioning of resources,wherein each row of the plurality of rows is associated with a row identifier that uniquely identifies said row, and each row represents;
a predecessor identifier, wherein the predecessor identifier is a unique identifier of a version that immediately precedes, in said version history of said resource, the link corresponding to this row, anda successor identifier, wherein the successor identifier is a unique identifier of a version that immediately succeeds, in said version history of said resource, the link corresponding to this row,a predecessor rowset, wherein the predecessor rowset comprises the row identifier of each of one or more corresponding rows, in said version history data table, in which the predecessor identifier in this row is the successor identifier in a corresponding row of said one or more corresponding rows, anda successor rowset, wherein the successor rowset comprises the row identifier of each of one or more corresponding rows, in said version history data table, in which the successor identifier in this row is the predecessor identifier in a corresponding row of said one or more corresponding rows; and
based on the unique identifier of said particular version of said resource, locating in said version history data table one or more rows in which the unique identifier of said particular version of said resource is one of either the predecessor identifier or the successor identifier;
wherein the steps of accessing and locating are performed by one or more computing devices.
1 Assignment
0 Petitions
Accused Products
Abstract
Efficient evaluation of resource version history queries is enabled by using a data container storing records corresponding to links between successive versions of a resource. The records include: (a) a record identifier, (b) a predecessor identifier, (c) a successor identifier, (d) a predecessor rowset, which comprises the record identifier of each record in which the predecessor identifier in this record is the successor identifier, and (e) a successor rowset, which comprises the record identifier of each record in which the successor identifier in this record is the predecessor identifier. Depending on the nature of a request, a record is identified in which a particular version is identified by either the predecessor identifier or the successor identifier. Either the predecessor or successor rowsets are recursively read, while the predecessor or successor identifiers corresponding to each record read are added to a result set, thereby forming the ancestor or descendant version history.
157 Citations
17 Claims
-
1. A computer-implemented method comprising:
-
determining a version history for a particular version of a resource identified by a unique identifier, including; accessing a version history data table; wherein the version history data table includes a plurality of rows; wherein each particular row of the plurality of rows represents one and only one link between successive versions of said resource; wherein each particular row of the plurality of rows does not represent a particular version of said resource; wherein said resource is stored in a database, said database supporting versioning of resources, wherein each row of the plurality of rows is associated with a row identifier that uniquely identifies said row, and each row represents; a predecessor identifier, wherein the predecessor identifier is a unique identifier of a version that immediately precedes, in said version history of said resource, the link corresponding to this row, and a successor identifier, wherein the successor identifier is a unique identifier of a version that immediately succeeds, in said version history of said resource, the link corresponding to this row, a predecessor rowset, wherein the predecessor rowset comprises the row identifier of each of one or more corresponding rows, in said version history data table, in which the predecessor identifier in this row is the successor identifier in a corresponding row of said one or more corresponding rows, and a successor rowset, wherein the successor rowset comprises the row identifier of each of one or more corresponding rows, in said version history data table, in which the successor identifier in this row is the predecessor identifier in a corresponding row of said one or more corresponding rows; and based on the unique identifier of said particular version of said resource, locating in said version history data table one or more rows in which the unique identifier of said particular version of said resource is one of either the predecessor identifier or the successor identifier; wherein the steps of accessing and locating are performed by one or more computing devices. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A computer-readable storage medium storing a data structure in which data is stored, wherein each particular row of one or more rows in said data structure represents one and only one link between successive versions of a resource stored in a database that supports versioning of resources, wherein each particular row of the one or more rows does not represent a particular version of said resource, wherein each row is associated with a row identifier that uniquely identifies the row, and wherein said data structure comprises:
-
a first field for storing a predecessor identifier, wherein the predecessor identifier is a unique identifier of a version that immediately precedes the link corresponding to this row; a second field for storing a successor identifier, wherein the successor identifier is a unique identifier of a version that immediately succeeds the link corresponding to this row; a third field for storing a predecessor rowset, wherein the predecessor rowset comprises the row identifier of each of one or more corresponding predecessor rows, in said data structure, in which the predecessor identifier in this row is the successor identifier in a corresponding row of said one or more corresponding predecessor rows; and a fourth field for storing a successor rowset, wherein the successor rowset comprises the row identifier of each of one or more corresponding successor rows, in said data structure, in which the successor identifier in this row is the predecessor identifier in a corresponding row of said one or more corresponding successor rows.
-
-
10. A computer-readable storage medium storing instruction for including instructions for performing the steps of:
determining a version history for a particular version of a resource identified by a unique identifier, including; accessing a version history data table; wherein the version history data table includes a plurality of rows; wherein each particular row of the plurality of rows represents one and only one link between successive versions of said resource; wherein each particular row of the plurality of rows does not represent a particular version of said resource; wherein said resource is stored in a database, said database supporting versioning of resources, wherein each row of the plurality of rows is associated with a row identifier that uniquely identifies said row, and each row represents; a predecessor identifier, wherein the predecessor identifier is a unique identifier of a version that immediately precedes, in said version history of said resource, the link corresponding to this row, and a successor identifier, wherein the successor identifier is a unique identifier of a version that immediately succeeds, in said version history of said resource, the link corresponding to this row, a predecessor rowset, wherein the predecessor rowset comprises the row identifier of each of one or more corresponding rows, in said version history data table, in which the predecessor identifier in this row is the successor identifier in a corresponding row of said one or more corresponding rows, and a successor rowset, wherein the successor rowset comprises the row identifier of each of one or more corresponding rows, in said version history data table, in which the successor identifier in this row is the predecessor identifier in a corresponding row of said one or more corresponding rows; and based on the unique identifier of said particular version of said resource, locating in said version history data table one or more rows in which the unique identifier of said particular version of said resource is one of either the predecessor identifier or the successor identifier. - View Dependent Claims (11, 12, 13, 14, 15, 16, 17)
Specification