Patent ID: 8315984
Filing Date: 2012-11-20
Classification: G06F

Abstract:
1. A method for operating a computer data storage system, comprising: maintaining a logical arrangement of storage space including a block store, an index, and a hash table, wherein receiving at the computer data storage system a write request directed to a particular data container and comprising write data for storage to the block store of the logical arrangement of storage space; partitioning the write data of the write request, directed to the particular data container, into a plurality of write blocks; generating a first fingerprint of a write block of the plurality of write blocks; determining, before the write data of the write request is stored as the raw data to the block store, whether the generated first fingerprint of the write block of the write request matches a second fingerprint stored in the hash table and associated with a previously stored block stored at the block store as the raw data; and in response to determining that the generated first fingerprint matches the second fingerprint associated with the previously stored block, identifying a location of the previously stored block, based on the hash table, and updating a particular entry, in the index and associated with the particular data container, to reference a location and length of the previously stored block without storing the write block to the block store; and in response to determining that the generated first fingerprint does not match the second fingerprint associated with the previously stored block, storing the write block in the block store as part of the raw data, and updating the particular entry, in the index and associated with the data container, to reference the write block in the block store.