Patent ID: 8041888
Filing Date: 2011-10-18
Classification: G06F

Abstract:
1. A method for operating a data storage system, comprising: creating a writable virtual disk (vdisk) at a selected time, the writable vdisk referencing changes in data stored in the data storage system after the writable vdisk was created; maintaining a backing store, the backing store referencing data stored in the data storage system which has not been changed since the writable vdisk was created; loading blocks of the writable vdisk into a memory, the loaded writable vdisk blocks including a writable vdisk indirect block having a plurality of fields, each writable vdisk indirect block field storing a valid pointer to a writable vdisk data block or an invalid pointer representing one of a plurality of holes, where each hole instructs the data storage system to examine a corresponding virtual block number pointer in the backing store; loading blocks of the backing store into the memory, the loaded backing store blocks including a backing store indirect block having a plurality of fields, each backing store indirect block field corresponding to a writable vdisk indirect block field, one or more backing store indirect block fields having a pointer to a backing store data block; searching each field of the writable vdisk indirect block for a hole; and filling each hole in the writable vdisk by replacing each invalid pointer with a pointer to the backing store data block referenced by the corresponding backing store indirect block field to update the writable vdisk to reference both the data which is unchanged since the writable vdisk was created and the data which has been changed since the writable vdisk was created.