Patent ID: 8533189

Claim:
In a computing system, a method for creating a synthetic full backup of a file system, the method comprising: performing a first backup of file system data to create a first backup dataset at a first time, wherein the performing the first backup includes storing the first backup dataset on one or more computer storage media; subsequent to performing the first backup, performing a second backup of the file system at a second time to create a second backup dataset and store it on one or more computer storage media after changes to the file system, such that the first full backup dataset is out of date, the second backup dataset being a partial backup including only portions of the file system changed since the first backup at the first time, wherein performing the second backup comprises differentiating whether to perform a full or partial backup of files within the file system based on file size, wherein differentiating comprises: for all files within the file system, determining whether the files exceed a predetermined size, and: for all files determined to have a size exceeding a predetermined size, copying only changed extents within such files, such that only changes within a file, rather than an entire file, are included in the second backup dataset; and for all files determined to have a size less than the predetermined size, copying the entire contents of such files, such that the entire files, rather than merely changes to files, are included in the second backup data set; and merging the first backup dataset with the second backup dataset to create a third backup dataset, such that the third backup dataset comprises a full backup of the file system which is the equivalent of a full backup at the second time, wherein merging the first backup dataset with the second backup dataset comprises setting pointers to a first entry in each dataset involved in the merge, determining a most recent dataset entry to insert into the third backup by advancing each pointer until an entry associated with the each pointer is equal to or greater than a pointer associated with a pointer to the most recent dataset, and thereafter advancing each pointer as necessary to insert entries from each dataset involved in the merge into the third backup dataset; wherein performing the first backup of the file system comprises copying the file system data onto online storage; and wherein the file system data comprises objects each associated with metadata, and copying the file system data onto online storage is performed by obtaining metadata associated with each object and copying the object and its associate metadata to the online storage.