DEDUPLICATION OF OBJECTS BY FUNDAMENTAL DATA IDENTIFICATION
First Claim
1. A method for writing data to a storage device comprising a processor, a volatile memory, and a non-volatile memory, the storage device being in communication with a host, the method comprising:
- receiving, by the processor, a command to write host data to the non-volatile memory, the host data being associated with a host identification;
calculating, by the processor, a hash value associated with the host data;
adding, by the processor, an object entry in an object map associated with the hash value, the object entry comprising the host identification, the hash value, and a first record indicating how to convert the host data into standard data; and
identifying, by the processor, whether there is a dedup entry in a deduplication map associated with the hash value, the dedup entry comprising the hash value and a second record indicating how to convert the standard data into storable data; and
processing, by the processor, the host data for storage in the non-volatile memory as stored data based on the identification, the stored data being associated with and different from the host data.
1 Assignment
0 Petitions
Accused Products
Abstract
A method for writing data to a storage device including a processor, a volatile memory, and a non-volatile memory, the storage device being in communication with a host, the method includes receiving, by the processor, a command to write host data to the non-volatile memory, the host data being associated with a host identification, calculating, by the processor, a hash value associated with the host data, adding, by the processor, an object entry in an object map associated with the hash value, the object entry including the host identification and the hash value, and identifying, by the processor, whether there is a dedup entry in a deduplication map associated with the hash value, and writing, by the processor, stored data to the non-volatile memory based on the identification, the stored data being associated with and different from the host data.
-
Citations
23 Claims
-
1. A method for writing data to a storage device comprising a processor, a volatile memory, and a non-volatile memory, the storage device being in communication with a host, the method comprising:
-
receiving, by the processor, a command to write host data to the non-volatile memory, the host data being associated with a host identification; calculating, by the processor, a hash value associated with the host data; adding, by the processor, an object entry in an object map associated with the hash value, the object entry comprising the host identification, the hash value, and a first record indicating how to convert the host data into standard data; and identifying, by the processor, whether there is a dedup entry in a deduplication map associated with the hash value, the dedup entry comprising the hash value and a second record indicating how to convert the standard data into storable data; and processing, by the processor, the host data for storage in the non-volatile memory as stored data based on the identification, the stored data being associated with and different from the host data. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14)
-
-
15. A method for reading data from a storage device comprising a processor, a volatile memory, and a non-volatile memory, the storage device being in communication with a host, the method comprising:
-
receiving, by the processor, a command to read host data from the non-volatile memory, the host data being associated with a host identification; identifying, by the processor, an object entry in an object map associated with the host identification, the object entry comprising the host identification, a hash value, and a first record indicating how to convert the host data into standard data; identifying, by the processor, the hash value of the object entry; identifying, by the processor, a dedup entry in a deduplication map associated with the hash value, the dedup entry comprising the hash value and a second record indicating how to convert the standard data into stored data associated with the host data; retrieving, by the processor, the stored data from the non-volatile memory based on a physical address in the dedup entry; identifying, by the processor, whether the stored data is encrypted based on the dedup entry; identifying, by the processor, whether the stored data is compressed based on the dedup entry; identifying, by the processor, whether the host data is compressed based on the object entry; and generating, by the processor, the host data from the stored data based on whether the stored data is encrypted, the stored data is compressed, and the host data is compressed. - View Dependent Claims (16, 17, 18)
-
-
19. A method for deleting data from a storage device comprising a processor, a volatile memory, and a non-volatile memory, the storage device being in communication with a host, the method comprising:
-
receiving, by the processor, a command to delete host data from the non-volatile memory, the host data being associated with a host identification; identifying, by the processor, an object entry in an object map associated with the host identification, the object entry comprising the host identification, a hash value, and a first record indicating how to convert the host data into standard data; identifying, by the processor, the hash value of the object entry; identifying, by the processor, a dedup entry in a deduplication map associated with the hash value, the dedup entry comprising the hash value and a second record indicating how to convert the standard data into stored data associated with the host data; decrementing, by the processor, a count in the dedup entry; determining, by the processor, whether the count equals zero; and deleting, by the processor, one or more of the object entry and the dedup entry based on the count. - View Dependent Claims (20)
-
-
21. A deduplication system for writing data to a storage device in communication with a host, the deduplication system comprising:
-
a processor; and a processor memory local to the processor, wherein the processor memory has stored thereon instructions that, when executed by the processor, cause the processor to perform; receiving a command to write host data to a non-volatile memory, the host data being associated with a host identification; calculating a hash value associated with the host data; adding an object entry in an object map associated with the hash value, the object entry comprising the host identification, the hash value, and a first record indicating how to convert the host data into standard data; and identifying whether there is a dedup entry in a deduplication map associated with the hash value, the dedup entry comprising the hash value and a second record indicating how to convert the standard data into stored data; and processing the host data for storage in the non-volatile memory as stored data based on the identification, the stored data being associated with and different from the host data.
-
-
22. A deduplication system for reading data from a storage device in communication with a host, the deduplication system comprising:
-
a processor; and a processor memory local to the processor, wherein the processor memory has stored thereon instructions that, when executed by the processor, cause the processor to perform; receiving a command to read host data from a non-volatile memory, the host data being associated with a host identification; identifying an object entry in an object map associated with the host identification, the object entry comprising the host identification, a hash value, and a first record indicating how to convert the host data into standard data; identifying the hash value of the object entry; identifying a dedup entry in a deduplication map associated with the hash value, the dedup entry comprising the hash value and a second record indicating how to convert the standard data into stored data associated with the host data; retrieving the stored data from the non-volatile memory based on a physical address in the dedup entry; identifying whether the stored data is encrypted based on the dedup entry; identifying whether the stored data is compressed based on the dedup entry; identifying whether the host data is compressed based on the object entry; and generating the host data from the stored data based on whether the stored data is encrypted, the stored data is compressed, and the host data is compressed, the host data being different from the host data.
-
-
23. A deduplication system for deleting data from a storage device in communication with a host, the deduplication system comprising:
-
a processor; and a processor memory local to the processor, wherein the processor memory has stored thereon instructions that, when executed by the processor, cause the processor to perform; receiving a command to delete host data from a non-volatile memory, the host data being associated with a host identification; identifying an object entry in an object map associated with the host identification, the object entry comprising the host identification, a hash value, and a first record indicating how to convert the host data into standard data; identifying the hash value of the object entry; identifying a dedup entry in a deduplication map associated with the hash value, the dedup entry comprising the hash value and a second record indicating how to convert the standard data into stored data associated with the host data; decrementing a count in the dedup entry; determining whether the count equals zero; and deleting one or more of the object entry and the dedup entry based on the count.
-
Specification