Back to results
US 12,008,254 B2Granted
Deduplication of storage device encoded data
AssigneeWestern Digital Technologies, Inc.
InventorsAriel Navon, Shay Benisty
Life of this patent
Estimating the term…
Abstract
Systems and methods for deduplication of storage device encoded data are described. The storage device may initiate a deduplication process and determine a encoded target data block and at least one encoded comparison data block. The storage device may compare the encoded target data block to the encoded comparison data blocks to determine similarity values. Based on the similarity values, the storage device may determine duplicate data units and eliminate extra duplicate data units.
Claims20
A system comprising:
- a storage device comprising:
- a storage medium configured to store host data blocks;
- and
- a storage device controller, comprising at least one processor and at least one memory, and configured to:
- store, to the storage medium and through an error correction code engine in a write path of the storage device, the host data blocks, wherein the stored host data blocks comprise a first encoded comparison data unit encoded by the error correction code engine in the write path;
- return, to a host system, previously-stored host data blocks responsive to decoding, through an error correction code engine in a read path of the storage device, the stored host data blocks from the storage medium;
- encode, using the error correction code engine in the write path, a target data unit to generate an encoded target data unit comprised of:
- an input host data block divided into a plurality of symbols;
- and
- at least one parity symbol generated using the plurality of symbols of the input host data block and an error correction code coding algorithm for the error correction code engine in the write path;
- retrieve, for a deduplication operation, the first encoded comparison data unit from the storage medium without decoding the first encoded comparison data unit using the error correction code engine in the read path of the storage device, wherein the first encoded comparison data unit comprises:
- a previously-stored host data block divided into a plurality of symbols;
- and
- at least one parity symbol generated prior to storage in the storage medium using the plurality of symbols of the previously-stored host data block and the error correction code coding algorithm for the error correction code engine in the write path;
- compare, responsive to encoding the target data unit and retrieving the first encoded comparison data unit and using a bit-by-bit exclusive-or comparison, each bit of the encoded target data unit to each corresponding bit of the first encoded comparison data unit;
- determine, based on a number of bits that are not equal between the encoded target data unit and the first encoded comparison data unit, a first similarity value;
- and
- eliminate, responsive to the first similarity value, at least one duplicate data unit selected from:
- the target data unit;
- and
- the first encoded comparison data unit in the storage medium.
18 more elements
A computer-implemented method, comprising:
- storing, by a storage device and through an error correction code engine in a write path of the storage device, host data blocks to a storage medium of the storage device, wherein the stored host data blocks comprise a first encoded comparison data unit encoded by the error correction code engine in the write path;
- returning, by the storage device and to a host system, previously-stored host data blocks responsive to decoding, through an error correction code engine in a read path of the storage device, the stored host data blocks from the storage medium;
- encoding, by the storage device and using the error correction code engine in the write path, a target data unit to generate an encoded target data unit comprised of:
- an input host data block divided into a plurality of symbols;
- and
- at least one parity symbol generated using the plurality of symbols of the input host data block and an error correction code coding algorithm for the error correction code engine in the write path;
- retrieving, by the storage device and for a deduplication operation, a first encoded comparison data unit from the storage medium of the storage device without decoding the first encoded comparison data unit using the error correction code engine in the read path of the storage device, wherein the first encoded comparison data unit comprises:
- a previously-stored host data block divided into a plurality of symbols;
- and
- at least one parity symbol generated prior to storage in the storage medium using the plurality of symbols of the previously-stored host data block and the error correction code coding algorithm for the error correction code;
- comparing, responsive to encoding the target data unit and retrieving the first encoded comparison data unit and using a bit-by-bit exclusive-or comparison, each bit of the encoded target data unit to each corresponding bit of the first encoded comparison data unit;
- determining, based on a number of bits that are not equal between the encoded target data unit and the first encoded comparison data unit, a first similarity value;
- and
- eliminating, responsive to the first similarity value, at least one duplicate data unit selected from:
- the target data unit;
- and
- the first encoded comparison data unit in the storage medium.
14 more elements
A storage device, comprising:
- a storage medium configured to store host data blocks;
- a storage device controller comprising:
- at least one processor;
- and
- at least one operating memory;
- means for storing, through an error correction code engine in a write path of the storage device, the host data blocks to the storage medium, wherein the stored host data blocks comprise a first encoded comparison data unit encoded by the error correction code engine in the write path;
- means for returning, to a host system, previously-stored host data blocks responsive to decoding, through an error correction code engine in a read path of the storage device, the stored host data blocks from the storage medium;
- means for encoding, using the error correction code engine in the write path, a target data unit to generate an encoded target data unit comprised of:
- an input host data block divided into a plurality of symbols;
- and
- at least one parity symbol generated using the plurality of symbols of the input host data block and an error correction code coding algorithm for the error correction code engine in the write path;
- means for retrieving, for a deduplication operation, a first encoded comparison data unit from the storage medium without decoding the first encoded comparison data unit using the error correction code engine in the read path of the storage device, wherein the first encoded comparison data unit comprises:
- a previously-stored host data block divided into a plurality of symbols;
- and
- at least one parity symbol generated prior to storage in the storage medium using the plurality of symbols of the previously-stored host data block and the error correction code coding algorithm for the error correction code engine in the write path;
- means for comparing, responsive to encoding the target data unit and retrieving the first encoded comparison data unit and using a bit-by-bit exclusive-or comparison, each bit of the encoded target data unit to each corresponding bit of the first encoded comparison data unit;
- means for determining, based on a number of bits that are not equal between the encoded target data unit and the first encoded comparison data unit, a first similarity value;
- and
- means for eliminating, responsive to the first similarity value, at least one duplicate data unit selected from:
- the target data unit;
- and
- the first encoded comparison data unit in the storage medium.
19 more elements
Dependencies are inferred from the claim text.