System and method for granular deduplication
First Claim
1. A method of managing a memory system, comprising:
- providing a processor and storage memory;
allocating a logical unit (LUN) of a plurality of LUNs to a client;
receiving a command to write data to the allocated LUN;
determining if the allocated LUN is configured for deduplication;
if the allocated LUN is not configured for deduplication, process the command by storing the data in the storage memory and creating metadata referencing a storage location of the data that is written to the storage memory;
if the allocated LUN is configured for deduplication, performing deduplication of the data and creating metadata referencing the location where the deduplicated data is stored;
andstoring the metadata for the deduplicated data for a plurality of LUNs in a single instance repository (SIR), and storing a single instance of the deduplicated data in the storage memory.
4 Assignments
0 Petitions
Accused Products
Abstract
A method of managing a memory system is described, the memory system having a processor with a client interface, a buffer memory, and a storage memory. A LUN (logical unit) is exposed to the client, the LUN having a memory size, and QoS specification. When the processor receives a command from the client to write data to the LUN, determining if the QoS specification includes deduplication and: if the QoS does not include deduplication, processing the command by storing the data in the storage memory and creating metadata uniquely referencing a storage location of the data that is written; or if the QoS includes deduplication, determine if deduplication is possible while meeting a latency value as specified in the QoS specification and performing deduplication.
-
Citations
16 Claims
-
1. A method of managing a memory system, comprising:
-
providing a processor and storage memory; allocating a logical unit (LUN) of a plurality of LUNs to a client; receiving a command to write data to the allocated LUN; determining if the allocated LUN is configured for deduplication; if the allocated LUN is not configured for deduplication, process the command by storing the data in the storage memory and creating metadata referencing a storage location of the data that is written to the storage memory; if the allocated LUN is configured for deduplication, performing deduplication of the data and creating metadata referencing the location where the deduplicated data is stored; and storing the metadata for the deduplicated data for a plurality of LUNs in a single instance repository (SIR), and storing a single instance of the deduplicated data in the storage memory. - View Dependent Claims (2, 3, 4)
-
-
5. A method of managing a memory system, comprising:
-
providing a memory system with a processor having a client interface, buffer memory, and storage memory; allocating a logical unit (LUN) of a plurality of LUNs to the client, the allocated LUN having a QoS specification; receiving a command to perform an operation to the allocated LUN; determining if the QoS specification for the allocated LUN includes deduplication and; if the QoS specification does not include deduplication, process the command;
orif the QoS specification includes deduplication, determine if deduplication is possible while meeting the QoS specification and; if deduplication is possible, performing deduplication of the data and creating metadata referencing the storage location where the deduplicated data is stored;
or,if deduplication is not possible, storing the data in a backing LUN associated with the allocated LUN, and draining the data stored in the backing LUN when deduplication is possible by re-ingesting the data from the backing LUN and processing the commands in accordance with the QoS specification. - View Dependent Claims (6, 7, 8, 9, 10, 11)
-
-
12. The method of 7, wherein when a first command and a second command are determined to be overlapped:
-
comparing the first command and the second command to determine if the commands result in a same change in the data or metadata for the LBA; deleting one of the first command or the second command; and processing the remaining one of the first command and second command as a non-overlapped command.
-
-
13. A memory management system, comprising:
-
a storage memory; and a processor configured to; store metadata for deduplicated data for a plurality of logical units (LUNs) in a single instance repository (SIR); store a single instance of the deduplicated data in the storage memory; for each LUN of the plurality of LUNs; accept commands in an input buffer memory; maintain a status buffer memory identifying the logical block addresses (LBA) of each received command; determine if the LBA of the command is present in the status buffer memory; if the LBA of the command is present in the status buffer memory, determine that the command is an overlapped command; and if the LBA of the command is not present in the status buffer memory, determine that the command is not an overlapped command. - View Dependent Claims (14, 15, 16)
-
Specification