IP Library › Granted Patent US 11,650,976
Granted Patent B2
US 11,650,976 · App. 17/727,346 · Granted May 16, 2023

Pattern matching using hash tables in storage system

Inventors: John Colgrove (Los Altos, CA); Joseph S. Hasbani (Mountain View, CA); John Hayes (Mountain View, CA); Ethan Miller (Santa Cruz, CA); Cary Sandvig (Isle La Motte, VT)
Assignee: PURE STORAGE, INC.
G06F16/2365G06F3/067G06F3/0608G06F3/0619G06F3/0637G06F3/0641G06F3/0689G06F16/1748G06F16/1752G06F16/9017
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,650,976
App. No.
17/727,346
Granted
May 16, 2023
Kind
B2
Abstract

A system and method for managing tables in a storage system is described.

Claims (35)

1. A system comprising:

a storage device;

a first fingerprint table and a second fingerprint table, the first table configured to store entries corresponding to data stored in the storage device which has been deemed to be more likely to be successfully deduplicated than other data in the storage device, the second fingerprint table configured to store entries corresponding to data stored in the storage device which has been deemed to be less likely to be successfully deduplicated than other data in the storage device.

2. The system as recited in claim 1 , further comprising:

a storage controller coupled to the storage device, the storage controller configured to:

maintain attributes corresponding to usage of data objects storage in the storage device;

read the attributes corresponding to the objects, responsive to detecting an event, and modify one of the first fingerprint table or the second fingerprint table.

3. The system as recited in claim 2 , wherein the attributes comprise at least one of, access, data age, device performance, device heath, error correction use data, deduplication rate, or read shift voltage.

4. The system as recited in claim 2 , wherein the event comprises one of a garbage collection operation, a health binning operation, a block calibration operation, a device access operation and a wear levelling operation.

5. The system as recited in claim 1 , wherein the data includes patterns.

6. The system as recited in claim 1 , wherein the system is a flash system.

7. The system as recited in claim 1 , wherein the entries comprise hashes.

8. A method comprising:

selecting a first table for storage of an entry corresponding to data stored in a data storage medium, responsive to determining the data being more likely to be successfully deduplicated than other data in the storage device; and

selecting a second table for storage of an entry corresponding to data stored in a data storage medium, responsive to determining the data being less likely to be successfully deduplicated than other data in the storage device.

9. The method of claim 8 , wherein a storage controller is coupled to the storage device, the storage controller configured to:

maintain attributes corresponding to usage of data objects storage in the storage device;

read the attributes corresponding to the objects, responsive to detecting an event, and

modify one of the first fingerprint table or the second fingerprint table.

10. The method of claim 9 , wherein the attributes comprise at least one of, access, data age, device performance, device heath, error correction use data, deduplication rate, or read shift voltage.

11. The method of claim 9 , wherein the event comprises one of a garbage collection operation, a health binning operation, a block calibration operation, a device access operation and a wear levelling operation.

12. The method of claim 8 , wherein the data includes patterns.

13. The method of claim 8 , wherein the first entry comprises a hash.

14. A non-transitory computer readable storage medium comprising program instructions, wherein said program instructions are executable to:

selecting a first table for storage of an entry corresponding to data stored in a data storage medium, responsive to determining the data being more likely to be successfully deduplicated than other data in the storage device; and

selecting a second table for storage of an entry corresponding to data stored in a data storage medium, responsive to determining the data being less likely to be successfully deduplicated than other data in the storage device.

15. The non-transitory computer readable storage medium of claim 14 , wherein a storage controller is coupled to the storage device, the storage controller configured to:

maintain attributes corresponding to usage of data objects storage in the storage device;

read the attributes corresponding to the objects, responsive to detecting an event, and

modify one of the first fingerprint table or the second fingerprint table.

16. The non-transitory computer readable storage medium of claim 15 , wherein the attributes comprise at least one of, access, data age, device performance, device heath, error correction use data, deduplication rate, or read shift voltage.

17. The non-transitory computer readable storage medium of claim 15 , wherein the event comprises one of a garbage collection operation, a health binning operation, a block calibration operation, a device access operation and a wear levelling operation.

18. The non-transitory computer readable storage medium of claim 14 , wherein the data includes patterns.

19. The non-transitory computer readable storage medium of claim 14 , wherein the entry comprises a hash.

20. The non-transitory computer readable storage medium of claim 14 , wherein the data storage medium is flash storage.

Continuity (6)
Continuation 16114027 · Aug 27, 2018
Continuation 15803510 · Nov 3, 2017
Continuation 14751099 · Jun 25, 2015
Continuation 14083152 · Nov 18, 2013
Continuation 13273858 · Oct 14, 2011
Related Publication 20220245129A1 · Aug 4, 2022