Efficient clustered persistence
AssigneeMicrosoft Technology Licensing, LLC
InventorsMarcus Eduardo Markiewicz, Tai T. Do
Life of this patent
Estimating the term…
Abstract
The systems and methods disclosed herein relate to using the clusters of a file to store versioning of a dataset. When the dataset is initially stored, a file is created that is twice the size of the dataset. The file may include one cluster (or a first set of clusters) that is marked as active and a second cluster (or a second set of clusters) that are marked inactive. The dataset is initially saved to the active cluster(s), and a version number is stored with the dataset. When the dataset is next saved, an application scans the file to determine whether there is (or are) an inactive cluster(s). If there is an inactive cluster(s) the second version of the dataset is saved to the inactive clusters. Both clusters are then marked active.
Claims20
A method for versioning a dataset through file clustering, the method comprising:
- creating a file comprising a plurality of clusters, the file configured to store two versions of each dataset;
- writing a first version of a first dataset to a first cluster of the plurality of clusters;
- writing a first version number of the first dataset to the first cluster;
- receiving a first instruction to save a second version of the first dataset;
- writing a second version of the first dataset to a second duster of the plurality of clusters;
- writing a second version number to the second cluster that corresponds to the second version of the first dataset;
- receiving a second instruction to save a third version of the first dataset;
- in response to receiving the second instruction to save the third version, determining whether the first cluster or the second cluster contains a least recent version of the dataset based on a comparison of the first version number with the second version number;
- in response to a determination that the first version number is older than the second version number, writing the third version of the first dataset to the first cluster resulting in an overwrite of the first version of the first dataset while retaining the second version of the first dataset in the second cluster;
- and
- writing a third version number to the first cluster corresponding to the third version of the first dataset.
A system for versioning a dataset through file clustering, the system comprising:
- a computer storage device storing computer-executable instructions;
- and
- a processor in communication with the computer storage device that, having executed the computer-executable instructions, configures the system to perform a plurality of operations comprising:
- creating a file comprising a plurality of clusters, the file configured to store two versions of each dataset;
- writing a first version of a first dataset to a first cluster of the plurality of clusters;
- writing a first version number of the first dataset to the first cluster;
- receiving a first instruction to save a second version of the first dataset;
- writing a second version of the first dataset to a second cluster of the plurality of clusters;
- writing a second version number to the second cluster that corresponds to the second version of the first dataset;
- receiving a second instruction to save a third version of the first dataset;
- in response to receiving the second instruction to save the third version, determining whether the first cluster or the second cluster contains a least recent version of the dataset based on a comparison of the first version number with the second version number;
- in response to a determination that the first version number is older than the second version number, writing the third version of the first dataset to the first cluster resulting in an overwrite of the first version of the first dataset while retaining the second version of the first dataset in the second cluster;
- and
- writing a third version number to the first cluster corresponding to the third version of the first dataset.
A computer storage device having computer-executable instructions stored thereon that, when executed by a processor;
- cause a computer to perform a plurality of operations comprising:
- creating a file comprising a plurality of clusters, the file configured to store two versions of each dataset;
- writing a first version of a first dataset to a first cluster of the plurality of clusters;
- writing a first version number of the first dataset to the first cluster;
- receiving a first instruction to save a second version of the first dataset;
- writing a second version of the first dataset to a second cluster of the plurality of clusters;
- writing a second version number to the second cluster that corresponds to the second version of the first dataset;
- receiving a second instruction to save a third version of the first dataset;
- in response to receiving the second instruction to save the third version, determining whether the first cluster or the second cluster contains a least recent version of the dataset based on a comparison of the first version number with the second version number;
- in response to a determination that the first version number is older than the second version number, writing the third version of the first dataset to the first cluster resulting in an overwrite of the first version of the first dataset while retaining the second version of the first dataset in the second cluster;
- and
- writing a third version number to the first cluster corresponding to the third version of the first dataset.
Dependencies are inferred from the claim text.