Patent ID: 7480761

Claim:
A method for managing data comprising: storing data as a virtual disk image; and storing changes to a state of the virtual disk image on a removable flash memory device, the removable flash memory comprising a write-log for storing an entry for each sector written, a chunk cache that lists memory chunks currently residing in the portable memory device, and a fingerprint array that contains a fingerprint for each memory chunk; wherein the act of storing changes comprises buffering at least one write to the virtual disk image using the flash memory device, and caching at least one read from the virtual disk image using the flash memory device; and wherein the read from the virtual disk comprises: first inspecting the write-log for a sector number of a sector needed and returning the sector from the flash memory device if found; looking up, in the fingerprint array stored on the flash memory device, a chunk-fingerprint corresponding to the sector needed if the sector needed was not found inspecting the write log; looking up a chunk corresponding to the chunk fingerprint in the chunk cache and returning the sector from the flash memory device if the chunk is present on the flash memory device; looking up the chunk on a host system disk if the chunk was not present on the flash memory device and then returning the sector needed if present on the host system disk; and fetching the chunk from a remote disk if the chunk was not present on the host system disk and returning the sector needed from the remote disk; and caching the chunk on the flash memory device, further comprising flushing at least a portion of the buffered written data to a remote differencing disk.