Copy-on-write versioning of documents
First Claim
1. A method for versioning of data objects comprising performing a machine-executed operation involving instructions, wherein the machine-executed operation is at least one of:
- A) sending the instructions over transmission media;
B) receiving the instructions over transmission media;
C) storing the instructions onto a machine-readable storage medium; and
D) executing the instructions;
wherein the instructions, when executed by one or more processors, cause;
storing one or more version values in a version accumulator structure, wherein each of the one or more version values indicates a different version of a data object;
wherein the data object includes, and is decomposable into, a plurality of nodes;
storing one or more copies of each node of the plurality of nodes, wherein each copy of the one or more copies is associated with a version range which does not overlap with any other version range that is associated with any other copy of the one or more copies;
receiving a first request to perform a change to the data object, wherein the change involves a particular node of the plurality of nodes, and wherein the first request specifies an effective version value for the change;
performing the change based on the effective version value, wherein performing the change does not include making a complete copy of the data object that reflects the change;
receiving a second request to retrieve a certain version of the data object; and
retrieving the certain version of the data object based on version ranges associated with the one or more copies of each node of the plurality of nodes.
1 Assignment
0 Petitions
Accused Products
Abstract
Approach for versioning of documents is described. A version accumulator structure stores one or more version values indicating different versions of a data object. The data object is decomposable into a plurality of nodes. One or more copies of each node of the plurality of nodes are stored, where the one or more copies are associated with non-overlapping version ranges. A first request to perform a change to the data object is received. The first request specifies an effective version value for the change, which involves a particular node. The change is performed based on the effective version value and without making a deep copy of the data object. A second request to retrieve a certain version of the data object is received. The certain version is retrieved based on the version ranges associated with the one or more copies of each node of the plurality of nodes.
-
Citations
22 Claims
-
1. A method for versioning of data objects comprising performing a machine-executed operation involving instructions, wherein the machine-executed operation is at least one of:
-
A) sending the instructions over transmission media; B) receiving the instructions over transmission media; C) storing the instructions onto a machine-readable storage medium; and D) executing the instructions; wherein the instructions, when executed by one or more processors, cause; storing one or more version values in a version accumulator structure, wherein each of the one or more version values indicates a different version of a data object; wherein the data object includes, and is decomposable into, a plurality of nodes; storing one or more copies of each node of the plurality of nodes, wherein each copy of the one or more copies is associated with a version range which does not overlap with any other version range that is associated with any other copy of the one or more copies; receiving a first request to perform a change to the data object, wherein the change involves a particular node of the plurality of nodes, and wherein the first request specifies an effective version value for the change; performing the change based on the effective version value, wherein performing the change does not include making a complete copy of the data object that reflects the change; receiving a second request to retrieve a certain version of the data object; and retrieving the certain version of the data object based on version ranges associated with the one or more copies of each node of the plurality of nodes. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22)
-
Specification