IP Library Granted Patent US 10,789,003
Granted Patent B1
US 10,789,003 · App. 16/367,900 · Granted Sep 29, 2020

Selective deduplication based on data storage device controller status and media characteristics

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 10,789,003
App. No.
16/367,900
Granted
Sep 29, 2020
Kind
B1
Abstract

Systems and methods are disclosed for determining whether data to be written to a memory should be deduplicated. In some implementations, a method is provided. The method includes determining whether data to be written to a memory should be deduplicated based, at least in part, on status information of a controller and media characteristics of the memory, wherein the status information of the controller indicates a level of resources available for a deduplication operation. In response to determining that the data should be deduplicated, determining whether the data is duplicative based on the type of memory the data is being written to.

Claims (48)

1. An apparatus comprising:

a memory; and

a controller configured to:

determine whether data to be written to the memory should be deduplicated based, at least in part, on status information of the controller and media characteristics of the memory, wherein the status information of the controller indicates a level of resources available for a deduplication operation; and

in response to determining that the data should be deduplicated, determine whether the data is duplicative.

2. The apparatus of claim 1 , wherein to determine whether the data is duplicative, the controller is further configured to:

calculate a fingerprint for the data based, at least in part, on a type of the memory;

compare the fingerprint to values in a metadata table; and

further determine whether the data is duplicative responsive to the fingerprint matching a value in the metadata table.

3. The apparatus of claim 2 , wherein the controller is further configured to write the data to the memory responsive to the fingerprint not matching any values in the metadata table.

4. The apparatus of claim 2 , wherein the memory has an access time for a unit of data that is less than the time required to calculate a fingerprint for the unit of data, and wherein to calculate the fingerprint for the data, the controller is further configured to calculate a weak fingerprint for the data.

5. The apparatus of claim 4 , wherein to further determine whether the data is duplicative, the controller is further configured to:

compare the data to stored data from the memory;

responsive to determining that the data matches any of the stored data, update a logical to physical table with the weak fingerprint for the data; and

responsive to determining that the data does not match any of the stored data, write the data to the memory.

6. The apparatus of claim 2 , wherein the memory has an access time for a unit of data that is greater than the time required to calculate a fingerprint for the unit of data, and wherein to calculate the fingerprint for the data, the controller is further configured to:

calculate a strong fingerprint when a workload deduplication ratio is above or equal to a threshold; and

calculate a weak fingerprint when the workload deduplication ratio is below the threshold.

7. The apparatus of claim 6 , wherein the workload deduplication ratio is below the threshold and wherein to further determine whether the data is duplicative, the controller is further configured to:

calculate a second strong fingerprint;

compare the second strong fingerprint to the values in the metadata table;

update a logical to physical table based on the strong fingerprint if the second strong fingerprint matches any of the values in the metadata table; and

write the data to the memory if the second strong, fingerprint does not match any of the values in the metadata table.

8. The apparatus of claim 1 , wherein the status information of the controller comprises CPU utilization, temperature data, bandwidth, number of input/output operations per second, latency, buffer utilization, and pre-fetch status of the controller.

9. The apparatus of claim 1 , wherein the media characteristics of the memory comprise a latency and a residual bit error rate (RBER) of the memory.

10. The apparatus of claim 1 , wherein the controller is further configured to: in response to determining; that the data should not be deduplicated, write the data to the memory.

11. The apparatus of claim 1 , wherein the controller is further configured to determine whether the data should be deduplicated based, further in part, on a workload status of the data to be written.

12. The apparatus of claim 1 , wherein the controller is further configured to utilize a machine learning algorithm to determine whether the data to be written to the memory should be deduplicated.

13. An apparatus comprising:

a memory including a first memory having an access time for a unit of data that is greater than the time required to calculate a fingerprint for the unit of data, and a second memory having an access time for a unit of data that is less than the time required to calculate a fingerprint for the unit of data; and

a controller configured to:

determine whether data to be written to the memory should be deduplicated based, at least in part, on status information of the controller and media characteristics of the memory, wherein the status information of the controller indicates a level of resources available for a deduplication operation; and

in response to determining that the data should be deduplicated, determine whether the data is duplicative based on whether the data to be written to the memory is to be written to the first memory or the second memory.

14. The apparatus of claim 13 , wherein to determine whether the data is duplicative, the controller is further configured to:

calculate a fingerprint for the data based, at least in part, on a type of the memory;

compare the fingerprint to values in a metadata table; and

further determine whether the data is duplicative responsive to the fingerprint matching a value in the metadata table.

15. The apparatus of claim 13 , wherein the status information of the controller comprises CPU utilization, temperature data, bandwidth, number of input/output operations per second, latency, buffer utilization, and pre-fetch status of the controller.

16. The apparatus of claim 13 , wherein the media characteristics of the memory comprise a latency and a residual bit error rate (RBER) of the memory.

17. A method comprising:

determining whether data to be written to a memory should be deduplicated based, at least in part, on status information of a controller and media characteristics of the memory, wherein the status information of the controller indicates a level of resources available for a reduplication operation; and

in response to determining that the data should be deduplicated, determining whether the data is duplicative.

18. The method of claim 17 , wherein determining whether the data is duplicative comprises:

calculating a fingerprint for the data based, at least in part, on a type of the memory;

comparing the fingerprint to values in a metadata table; and

further determining whether the data is duplicative responsive to the fingerprint matching a value in the metadata table.

19. The method of claim 18 , wherein the status information of the controller comprises CPU utilization, temperature data, bandwidth, number of input/output operations per second, latency, utilization, and pre-fetch status of the controller.

20. The method of claim 18 , wherein the media characteristics of the memory comprise a latency and a residual bit error rate (RBER) of the memory.

Assignments (10)
PARTIAL RELEASE OF SECURITY INTERESTS Recorded Apr 25, 2025
From: JPMORGAN CHASE BANK, N.A., AS AGENT
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 071382/0001 →
SECURITY AGREEMENT Recorded Apr 25, 2025
From: SANDISK TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 071050/0001 →
PATENT COLLATERAL AGREEMENT Recorded Aug 23, 2024
From: SANDISK TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS THE AGENT
Reel/Frame 068762/0494 →
CHANGE OF NAME Recorded Jun 27, 2024
From: SANDISK TECHNOLOGIES, INC.
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 067982/0032 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 29, 2024
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 067567/0682 →
PATENT COLLATERAL AGREEMENT - DDTL LOAN AGREEMENT Recorded Aug 21, 2023
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 067045/0156 →
PATENT COLLATERAL AGREEMENT - A&R LOAN AGREEMENT Recorded Aug 21, 2023
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 064715/0001 →
RELEASE OF SECURITY INTEREST AT REEL 052915 FRAME 0566 Recorded Feb 8, 2022
From: JPMORGAN CHASE BANK, N.A.
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 059127/0001 →
SECURITY INTEREST Recorded Feb 6, 2020
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS AGENT
Reel/Frame 052915/0566 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 28, 2019
From: SUN, CHAO; WANG, QINGBO; VUCINIC, DEJAN
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 048732/0373 →