Rolling incremental updates
First Claim
1. A computer implemented method for providing direct deltas between the current and other versions of a sequential dataset without storing a full file set for each version, the method comprising the steps of:
- maintaining, by at least one computer, multiple versions of the sequential dataset without storing the full file set for each version, said maintaining further comprising;
storing, by the at least one computer, the full file set for one version of the sequential dataset; and
storing, by the at least one computer, at least one set of patches from a group of patch sets consisting of;
forward patches between adjacent versions of the sequential dataset in a patch chain, the patch chain spanning from a first version of the sequential dataset to the current version of the sequential dataset, each forward patch comprising information for performing operations to modify an earlier version of the sequential dataset into an adjacent, later version of the sequential dataset; and
reverse patches between adjacent versions of the dataset in the patch chain, the patch chain spanning from the current version of the dataset to the first version of the dataset, each reverse patch comprising information for performing operations to modify a later version of the sequential dataset into an adjacent, earlier version of the sequential dataset;
receiving, by the at least one computer, new content for the sequential dataset;
building, by the at least one computer, a new current version of the sequential dataset that comprises the new content;
building, by the at least one computer, at least one specific patch from a group of specific patches consisting of;
a specific forward patch from an adjacent, previous version of the dataset to the new current version of sequential dataset, the specific forward patch comprising information for performing operations to modify the adjacent, previous version of the sequential dataset into the new current version of the sequential dataset; and
a specific reverse patch from the new current version of the sequential dataset to an adjacent, previous version of the dataset, the specific reverse patch comprising information for performing operations to modify the new current version of the sequential dataset into the adjacent, previous version of the sequential dataset;
storing, by the at least one computer, the at least one specific built patch in the patch chain;
receiving, by the at least one computer, a request from a specific client to associate a provided name with a specific version of the sequential dataset; and
responsive to the received request, associating, by the at least one computer, the received name with the specific version of the dataset for the specific client, thereby naming the specific version of the sequential dataset according to the client request.
2 Assignments
0 Petitions
Accused Products
Abstract
Multiple versions of a sequential dataset are maintained without storing the full file set for each version. A full file set for the current version is stored, as well as a chain of forward and/or reverse patches between adjacent versions. New content for the dataset is received, and a new current version is built that includes this new content. Patches between the new and immediately previous versions are built and stored. When a request is received from a client for an update to the current version, multiple patches of the chain are merged, from the client version of the dataset to the current version. This merging of patches creates a single direct delta, which comprises all operations for updating the client version to the current version. The direct delta is then transmitted to the client.
-
Citations
18 Claims
-
1. A computer implemented method for providing direct deltas between the current and other versions of a sequential dataset without storing a full file set for each version, the method comprising the steps of:
-
maintaining, by at least one computer, multiple versions of the sequential dataset without storing the full file set for each version, said maintaining further comprising; storing, by the at least one computer, the full file set for one version of the sequential dataset; and storing, by the at least one computer, at least one set of patches from a group of patch sets consisting of; forward patches between adjacent versions of the sequential dataset in a patch chain, the patch chain spanning from a first version of the sequential dataset to the current version of the sequential dataset, each forward patch comprising information for performing operations to modify an earlier version of the sequential dataset into an adjacent, later version of the sequential dataset; and reverse patches between adjacent versions of the dataset in the patch chain, the patch chain spanning from the current version of the dataset to the first version of the dataset, each reverse patch comprising information for performing operations to modify a later version of the sequential dataset into an adjacent, earlier version of the sequential dataset; receiving, by the at least one computer, new content for the sequential dataset; building, by the at least one computer, a new current version of the sequential dataset that comprises the new content; building, by the at least one computer, at least one specific patch from a group of specific patches consisting of; a specific forward patch from an adjacent, previous version of the dataset to the new current version of sequential dataset, the specific forward patch comprising information for performing operations to modify the adjacent, previous version of the sequential dataset into the new current version of the sequential dataset; and a specific reverse patch from the new current version of the sequential dataset to an adjacent, previous version of the dataset, the specific reverse patch comprising information for performing operations to modify the new current version of the sequential dataset into the adjacent, previous version of the sequential dataset; storing, by the at least one computer, the at least one specific built patch in the patch chain; receiving, by the at least one computer, a request from a specific client to associate a provided name with a specific version of the sequential dataset; and responsive to the received request, associating, by the at least one computer, the received name with the specific version of the dataset for the specific client, thereby naming the specific version of the sequential dataset according to the client request. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. At least one non-transitory computer readable storage medium storing a computer program product for providing direct deltas between the current and other versions of a sequential dataset without storing a full file set for each version, the computer program product comprising:
-
program code for maintaining multiple versions of the sequential dataset without storing the full file set for each version, said program code for maintaining further comprising; program code for storing the full file set for one version of the sequential dataset; and program code for storing at least one set of patches from a group of patch sets consisting of; forward patches between adjacent versions of the sequential dataset in a patch chain, the patch chain spanning from a first version of the sequential dataset to the current version of the sequential dataset, each forward patch comprising information for performing operations to modify an earlier version of the sequential dataset into an adjacent, later version of the sequential dataset; and reverse patches between adjacent versions of the dataset in the patch chain, the patch chain spanning from the current version of the dataset to the first version of the dataset, each reverse patch comprising information for performing operations to modify a later version of the sequential dataset into an adjacent, earlier version of the sequential dataset; program code for receiving new content for the sequential dataset; program code for building a new current version of the sequential dataset that comprises the new content; program code for building at least one specific patch from a group of specific patches consisting of; a specific forward patch from an adjacent, previous version of the dataset to the new current version of sequential dataset, the specific forward patch comprising information for performing operations to modify the adjacent, previous version of the sequential dataset into the new current version of the sequential dataset; and a specific reverse patch from the new current version of the sequential dataset to an adjacent, previous version of the dataset, the specific reverse patch comprising information for performing operations to modify the new current version of the sequential dataset into the adjacent, previous version of the sequential dataset; program code for storing the at least one specific built patch in the patch chain; program code for receiving a request from a specific client to associate a provided name with a specific version of the sequential dataset; and program code for, responsive to the received request, associating the received name with the specific version of the dataset for the specific client, thereby naming the specific version of the sequential dataset according to the client request. - View Dependent Claims (10, 11, 12, 13, 14, 15, 16)
-
-
17. A computer system for providing direct deltas between the current and other versions of a sequential dataset without storing a full file set for each version, the computer system comprising:
-
at least one processor; system memory; a portion configured for maintaining multiple versions of the sequential dataset without storing the full file set for each version, said portion configured for maintaining further comprising; a portion configured for storing the full file set for one version of the sequential dataset; and a portion configured for storing at least one set of patches from a group of patch sets consisting of; forward patches between adjacent versions of the sequential dataset in a patch chain, the patch chain spanning from a first version of the sequential dataset to the current version of the sequential dataset, each forward patch comprising information for performing operations to modify an earlier version of the sequential dataset into an adjacent, later version of the sequential dataset; and reverse patches between adjacent versions of the dataset in the patch chain, the patch chain spanning from the current version of the dataset to the first version of the dataset, each reverse patch comprising information for performing operations to modify a later version of the sequential dataset into an adjacent, earlier version of the sequential dataset; a portion configured for receiving new content for the sequential dataset; a portion configured for building a new current version of the sequential dataset that comprises the new content; a portion configured for building at least one specific patch from a group of specific patches consisting of; a specific forward patch from the adjacent, previous version of the dataset to the new current version of sequential dataset, the specific forward patch comprising information for performing operations to modify the adjacent, previous version of the sequential dataset into the new current version of the sequential dataset; and a specific reverse patch from the new current version of the sequential dataset to an adjacent, previous version of the dataset, the specific reverse patch comprising information for performing operations to modify the new current version of the sequential dataset into the adjacent, previous version of the sequential dataset; a portion configured for storing the at least one specific built patch in the patch chain; and a portion configured for receiving, by the at least one computer, a request from a specific client to associate a provided name with a specific version of the sequential dataset; a portion configured for, responsive to the received request, associating, by the at least one computer, the received name with the specific version of the dataset for the specific client, thereby naming the specific version of the sequential dataset according to the client request. - View Dependent Claims (18)
-
Specification