Managing deduplication of stored data
First Claim
1. A method for managing data, the method comprising:
- receiving, at a data deduplication engine executing on at least one processor of a computer system, data stored in a data storage system in communication with the computer system,wherein the data storage system comprises at least one flash memory device that includes a flash memory controller and a flash memory;
computing, by the at least one processor, a first value corresponding to at least one portion of the received data;
determining, by the at least one processor, that the first value matches a second value stored in a collection of identifiers,each identifier corresponding to a particular portion of data stored in the flash memory of the flash memory device, each identifier comprising a computed value corresponding to the particular portion of data and including metadata indicating a location where the particular portion of data is being stored in the flash memory of the flash memory device;
determining, by the at least one processor, that a first virtual location of the flash memory contains a portion of data corresponding to an identifier that corresponds to the first value; and
based on the determination that the first value matches a second value stored in the collection of identifiers, and on the determination that the first virtual location contains the portion of data corresponding to the identifier that corresponds to the first value,communicating, by the at least one processor, to the flash memory controller of the flash memory device, a request to;
1) allocate the first virtual location of the flash memory to a first physical location of the flash memory, the first physical location being associated with at least a second virtual location of the flash memory, and2) remove an association between the first virtual location and a second physical location of the flash memory.
2 Assignments
0 Petitions
Accused Products
Abstract
In one aspect, in general, a method for managing data includes receiving, at a data deduplication engine of a computer system, data to be stored in a data storage system, computing a first value corresponding to at least one portion of the received data, determining that the first value matches a second value stored in a collection of identifiers, each identifier corresponding to a particular portion of data stored in the data storage system, each identifier comprising a computed value corresponding to the particular portion of data and including metadata indicating a location where the particular portion of data is being stored in the data storage system, and based on the determination that the first value matches a second value stored in the collection of identifiers, reallocating one or more physical locations from corresponding one or more virtual locations to different respective one or more virtual locations.
35 Citations
17 Claims
-
1. A method for managing data, the method comprising:
-
receiving, at a data deduplication engine executing on at least one processor of a computer system, data stored in a data storage system in communication with the computer system, wherein the data storage system comprises at least one flash memory device that includes a flash memory controller and a flash memory; computing, by the at least one processor, a first value corresponding to at least one portion of the received data; determining, by the at least one processor, that the first value matches a second value stored in a collection of identifiers, each identifier corresponding to a particular portion of data stored in the flash memory of the flash memory device, each identifier comprising a computed value corresponding to the particular portion of data and including metadata indicating a location where the particular portion of data is being stored in the flash memory of the flash memory device; determining, by the at least one processor, that a first virtual location of the flash memory contains a portion of data corresponding to an identifier that corresponds to the first value; and based on the determination that the first value matches a second value stored in the collection of identifiers, and on the determination that the first virtual location contains the portion of data corresponding to the identifier that corresponds to the first value, communicating, by the at least one processor, to the flash memory controller of the flash memory device, a request to; 1) allocate the first virtual location of the flash memory to a first physical location of the flash memory, the first physical location being associated with at least a second virtual location of the flash memory, and 2) remove an association between the first virtual location and a second physical location of the flash memory. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A method comprising:
-
at a data deduplication engine of a computer system in communication with a data storage system, wherein the data storage system comprises at least one flash memory device that includes a flash memory controller and a flash memory; computing a first value corresponding to at least one portion of data, and determining that the first value matches a second value stored in a collection of identifiers, each identifier corresponding to a particular portion of data stored in the data storage system, each identifier comprising a computed value corresponding to the particular portion of data and including metadata indicating a location where the particular portion of data is being stored in the data storage system; and based on the determination that the first value matches a second value stored in the collection of identifiers, sending a command to the flash memory controller of the flash memory device, the command comprising an identification of a first virtual location and a second virtual location, the command comprising instructions to associate the first and second virtual locations of the flash memory with a first physical location of the flash memory, and the command comprising instructions to remove an association between the first virtual location and a second physical location, wherein the first virtual location corresponds to a location indicated by a first identifier associated with the first value. - View Dependent Claims (11, 12)
-
-
13. A system comprising:
-
a data storage device comprising at least one flash memory device, the flash memory device including a flash memory controller and a flash memory; a data deduplication engine configured to; compute a first value corresponding to at least one portion of data, determine that the first value matches a second value stored in a collection of identifiers, each identifier corresponding to a particular portion of data stored in the flash memory, each identifier comprising a computed value corresponding to the particular portion of data and including metadata indicating a location where the particular portion of data is being stored in the flash memory, and based on the determination that the first value matches a second value stored in the collection of identifiers, send a command to the flash memory controller of the flash memory device, the command comprising an identification of a first virtual location and a second virtual location, the command comprising instructions to associate the first and second virtual locations of the flash memory with a first physical location of the flash memory the command comprising instructions to remove an association between the first virtual location and a second physical location, wherein the first virtual location corresponds to a location indicated by a first identifier associated with the first value. - View Dependent Claims (14, 15, 16, 17)
-
Specification