×

Hash-based snapshots

  • US 9,239,841 B2
  • Filed: 07/16/2013
  • Issued: 01/19/2016
  • Est. Priority Date: 07/16/2013
  • Status: Active Grant
First Claim
Patent Images

1. A system configured to provide hash-based snapshot services for a virtual storage, the system comprising a processor and memory coupled with the processor, wherein the memory is configured to provide the processor with instructions formaintaining, by a hash-based snapshot module executing on the system, a file system of the virtual storage, wherein the file system is associated with a plurality of data blocks, the virtual storage is supported by a hash-storage having a hash base-file and a hash-database, the hash-database is configured for storing the plurality of data blocks, and the hash base-file includes hash codes generated by applying a hash function to the plurality of data blocks;

  • accessing, by the hash-based snapshot module, the file system using hash codes contained in the hash base-file to identify corresponding data blocks stored in the hash-database;

    creating, by the hash-based snapshot module, a first snapshot for the file system, wherein the first snapshot is associated with a first hash snapshot file copied based on the hash base-file wherein the first hash snapshot file contains a first plurality of hash entities each of which is associated with a corresponding one of the plurality of data blocks;

    accessing, by the hash-based snapshot module, the first snapshot using hash codes contained in the first hash snapshot file to identify corresponding data blocks stored in the hash-database;

    in response to a read request to retrieve a first data block from the first snapshot locating a first hash entity from the first plurality of hash entities based on the first data block'"'"'s address and locating the first data block in the hash-database based on a first hash code and a first collision count retrieved from the first hash entity; and

    in response to an update request to write a second data block to the first snapshot, locating a second hash entity from the first plurality of hash entities based on the second data block'"'"'s address, generating a second hash code for the second hash entity by applying the hash function to the second data block'"'"'s data, generating a second collision count for the second hash entity based on a number of data blocks stored in the hash-database having corresponding hash codes that are identical to the second hash code and storing the second data block along with the second hash code and the second collision count in the hash-database.

View all claims
  • 2 Assignments
Timeline View
Assignment View
    ×
    ×