USING LOGICAL BLOCK ADDRESSES WITH GENERATION NUMBERS AS DATA FINGERPRINTS FOR NETWORK DEDUPLICATION
First Claim
Patent Images
1. A method, comprising:
- receiving, at a destination device, a write request identifying a source block address and a generation number, wherein a source device stores data associated with the write request at the source block address, the generation number indicating a number of times that data at the source block address has been modified;
determining whether the destination device already has a data block that matches the source block address and the generation number; and
processing, at the destination device, the write request by using the data block that matches the source block address and the generation number, without receiving the data associated with the write request from the source device, when it is determined that the destination device already has the data block that matches the source block address and the generation number.
1 Assignment
0 Petitions
Accused Products
Abstract
The technique introduced here involves using a block address and a corresponding generation number as a “fingerprint” to uniquely identify a sequence of data within a given storage domain. Each block address has an associated generation number which indicates the number of times that data at that block address has been modified. This technique can be employed, for example, to determine whether a given storage server already has the data, and to avoid sending the data to that storage server over a network if it already has the data. It can also be employed to maintain cache coherency among multiple storage nodes.
-
Citations
20 Claims
-
1. A method, comprising:
-
receiving, at a destination device, a write request identifying a source block address and a generation number, wherein a source device stores data associated with the write request at the source block address, the generation number indicating a number of times that data at the source block address has been modified; determining whether the destination device already has a data block that matches the source block address and the generation number; and processing, at the destination device, the write request by using the data block that matches the source block address and the generation number, without receiving the data associated with the write request from the source device, when it is determined that the destination device already has the data block that matches the source block address and the generation number. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A method, comprising:
-
determining, at a source device, that a data block stored by a source device should be stored by a destination device, wherein the source device and destination device communicate over a network; Identifying, at the source device, a source block address of the data block and a generation number of the block address, the generation number indicating a number of times that data at the block address has been modified; Sending, from the source device to the destination device, the source block address and the generation number of the data block; and Receiving, from the destination device, an instruction not to send the data block because the destination device already has a data block that matches the source block address and the generation number. - View Dependent Claims (10, 11, 12, 13)
-
-
14. A storage server, comprising:
-
a network interface through which to communicate over a network; a storage interface through which to communicate with a non-volatile mass storage device; a receiving component configured to receive, via the network interface, a write request including a source block address and a generation number, wherein a source device stores data associated with the write request at the source block address, and the generation number indicates a number of times that data at the source block address has been modified; a determining component configured to determine whether storage server already has a data block that matches the source block address and the generation number; and a processing component configured to process the write request by copying the data block that matches the source block address and the generation number to a data block in the non-volatile mass storage device via the storage interface, without receiving the data associated with the write request from the source device, if the storage server already has the data block that matches the source block address and the generation number. - View Dependent Claims (15, 16, 17, 18, 19, 20)
-
Specification