IP Library Granted Patent US 9,733,836
Granted Patent B1
US 9,733,836 · App. 15/017,046 · Granted Aug 15, 2017

System and method for granular deduplication

Inventors: Amit Garg (Cupertino, CA); Timothy Stoakes (One Tree Hill, AU); Vikas Ratna (Fremont, CA)
Assignee: VIOLIN MEMORY INC.
G06F3/0608G06F3/065G06F3/067G06F3/0619G06F3/0641G06F3/0665
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,733,836
App. No.
15/017,046
Granted
Aug 15, 2017
Kind
B1
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.

Claims (23)

1. A method Of managing a memory system, comprising:

providing a memory system with a processor having a client interface, a buffer memory, and a storage memory;

allocating a logical unit (LUN) to the client, the LUN having a memory size, and QoS specification;

receiving a command from the client to write data to the LUN; and

determining if the QoS specification includes deduplication and:

if the QoS does not include deduplication, process the command 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:

if deduplication is possible, performing deduplication and creating metadata relating a user address to a physical location where a copy of the data that is written is stored; or,

if deduplication is not possible, storing undeduplicated data in a backing LUN associated with a deduplicated LUN, and

draining undeduplicated data stored in the backing LUN when deduplication is possible by performing deduplication.

2. A method of managing a memory system, comprising:

providing a memory system with a processor having a client interface, a buffer memory, and a storage memory;

maintaining a metadata relating a hash value to a location in the memory system where the data is stored;

associating a plurality of logical units (LUN), with a SIR (single instance repository), each LUN being exposed to a user and having a stub LUN (SL) relating a user logical block address (LBA) to a hash value of data or to a location in the memory system where the data is stored,

wherein hash values comprise hash values that are referenced by at least one of a plurality of LBAs in a LUN or by a plurality of LUNs; and

the hash values are garbage collected by:

determining whether the hash value is referenced by one or more LUNs and:

in accordance with a policy determined by user quality of service requirements (QoS),

evicting the hash value and associated stored data if the hash value is not referenced by any LUN; or

evicting the hash value and associated stored data if the hash value is not referenced by any LUN for more than one garbage collection cycle; or

evicting the hash value if the hash value is referenced by a LUN and the hash value has not been referenced for a predetermined period of time;

maintaining the hash value and associated stored data if the hash value is referenced by more than one LUN.

3. The method of claim 2 wherein, the metadata is stored in the SIR.

Assignments (5)
CORRECTIVE ASSIGNMENT TO REMOVE US PATENT NO. 9013874 PREVIOUSLY RECORDED UNDER REEL AND FRAME 064272/0249. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Sep 17, 2024
From: VSIP HOLDINGS LLC (F/K/A VIOLIN SYSTEMS LLC)
To: INNOVATIONS IN MEMORY LLC
Reel/Frame 068998/0780 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 13, 2023
From: VSIP HOLDINGS LLC (F/K/A VIOLIN SYSTEMS LLC)
To: INNOVATIONS IN MEMORY LLC
Reel/Frame 064272/0249 →
CHANGE OF NAME Recorded May 25, 2021
From: VIOLIN SYSTEMS LLC
To: VSIP HOLDINGS LLC
Reel/Frame 056366/0849 →
CHANGE OF NAME Recorded Dec 19, 2017
From: VIOLIN MEMORY, INC.
To: VIOLIN SYSTEMS LLC
Reel/Frame 044908/0680 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 19, 2016
From: GARG, AMIT; STOAKES, TIMOTHY; RATNA, VIKAS
To: VIOLIN MEMORY INC.
Reel/Frame 037773/0257 →
Continuity (1)
Provisional Application 62114849 · Feb 11, 2015