IP Library Granted Patent US 11,636,031
Granted Patent B2
US 11,636,031 · App. 17/360,791 · Granted Apr 25, 2023

Optimized inline deduplication

Inventors: John Colgrove (Los Altos, CA); John Hayes (Mountain View, CA); Ethan Miller (Santa Cruz, CA); Feng Wang (Los Altos, CA)
Assignee: PURE STORAGE, INC.
G06F12/0246G06F3/061G06F3/067G06F3/0608G06F3/0638G06F3/0665G06F12/0802G06F12/1009G06F2212/50G06F2212/7201
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 11,636,031
App. No.
17/360,791
Granted
Apr 25, 2023
Kind
B2
Abstract

Methods, computer systems, and computer readable medium are described. In a particular embodiment, a storage controller is configured to receive, from a host computing device, a request to perform a bulk array task and in response to receiving the request, store an indication relating old keys of a mapping table to new keys, wherein both the old keys and the new keys correspond to the request. The storage controller is also configured to convey a response indicating completing of the request without prior access of user data and update the mapping table to replace the old keys with the new keys.

Claims (56)

1. A method comprising:

receiving a request to write data to a storage system;

generating, based on the request, a hash value associated with the request to write data;

based upon a determination that a sub-portion of a deduplication data structure is cached, determining whether the generated hash value matches an entry in the cached sub-portion of the deduplication data structure, wherein the deduplication data structure also includes a non-cached sub-portion that is not searched; and

responsive to determining that the generated hash value matches an entry in the deduplication data structure, discarding the data and updating the entry in the deduplication data structure.

2. The method of claim 1 further comprising:

responsive to determining that the generated hash value does not match an entry in the deduplication data structure:

writing the data to the storage system; and

adding an entry to the deduplication data structure that includes the generated hash value.

3. The method of claim 1 wherein updating the entry in the deduplication data structure includes moving the entry to a highest level in the deduplication data structure.

4. The method of claim 2 wherein the added entry to the deduplication data structure is included in a highest level in the deduplication data structure.

5. The method of claim 1 further comprising:

responsive to determining that the generated hash value does not match an entry in the cached sub-portion of the deduplication data structure:

writing the data to the storage system; and

adding an entry to the cached sub-portion of the deduplication data structure that includes the generated hash value.

6. The method of claim 1 further comprising:

receiving a read request;

identifying a query value corresponding to a read request;

selecting, based on the query value, from a plurality of levels within a mapping table, the youngest level associated with the query value; and

searching the selected youngest level for an entry that maps the query value to a value corresponding to a location within the storage system.

7. A computing system comprising:

a storage controller coupled to at least one storage device, wherein the storage controller is configured for:

receiving a request to write data to a storage system;

generating, based on the request, a hash value associated with the request to write data;

based upon a determination that a sub-portion of the deduplication data structure is cached, determining whether the generated hash value matches an entry in the cached sub-portion of the deduplication data structure, wherein the deduplication data structure also includes a non-cached sub-portion that is not searched; and

responsive to determining that the generated hash value matches an entry in the deduplication data structure, discarding the data and updating the entry in the deduplication data structure.

8. The computing system of claim 7 wherein the storage controller is further configured for:

responsive to determining that the generated hash value does not match an entry in the deduplication data structure:

writing the data to the storage system; and

adding an entry to the deduplication data structure that includes the generated hash value.

9. The computing system of claim 7 wherein updating the entry in the deduplication data structure includes moving the entry to a highest level in the deduplication data structure.

10. The computing system of claim 8 wherein the added entry to the deduplication data structure is included in a highest level in the deduplication data structure.

11. The computing system of claim 7 wherein the storage controller is further configured for:

responsive to determining that the generated hash value does not match an entry in the cached sub-portion of the deduplication data structure:

writing the data to the storage system; and

adding an entry to the cached sub-portion of the deduplication data structure that includes the generated hash value.

12. The computing system of claim 7 wherein the storage controller is further configured for:

receiving a read request;

identifying a query value corresponding to a read request;

selecting, based on the query value, from a plurality of levels within a mapping table, the youngest level associated with the query value; and

searching the selected youngest level for an entry that maps the query value to a value corresponding to a location within the storage system.

13. A computer readable storage medium that is non-transitory storing program instruction executable by a processor for:

receiving a request to write data to a storage system;

generating, based on the request, a hash value associated with the request to write data;

based upon a determination that a sub-portion of the deduplication data structure is cached, determining whether the generated hash value matches an entry in the cached sub-portion of the deduplication data structure, wherein the deduplication data structure also includes a non-cached sub-portion that is not searched; and

responsive to determining that the generated hash value matches an entry in the deduplication data structure, discarding the data and updating the entry in the deduplication data structure.

14. The computer readable storage medium of claim 13 further comprising program instructions executable by a processor for:

responsive to determining that the generated hash value does not match an entry in the deduplication data structure:

writing the data to the storage system; and

adding an entry to the deduplication data structure that includes the generated hash value.

15. The computer readable storage medium of claim 13 wherein updating the entry in the deduplication data structure includes moving the entry to a highest level in the deduplication data structure.

16. The computer readable storage medium of claim 14 wherein the added entry to the deduplication data structure is included in a highest level in the deduplication data structure.

17. The computer readable storage medium of claim 13 further comprising program instructions executable by a processor for:

responsive to determining that the generated hash value does not match an entry in the cached sub-portion of the deduplication data structure:

writing the data to the storage system; and

adding an entry to the cached sub-portion of the deduplication data structure that includes the generated hash value.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 16, 2021
From: COLGROVE, JOHN; HAYES, JOHN; MILLER, ETHAN; WANG, FENG
To: PURE STORAGE, INC.
Reel/Frame 056884/0216 →
Continuity (8)
Continuation In Part 15255726 · Sep 2, 2016
Continuation 14477470 · Sep 4, 2014
Continuation 14312088 · Jun 23, 2014
Continuation 14160137 · Jan 21, 2014
Continuation 13289765 · Nov 4, 2011
Continuation 13208094 · Aug 11, 2011
Continuation 13208094 · Aug 11, 2011
Related Publication 20210334206A1 · Oct 28, 2021
Cited By (1)
US 12,717,713