IP Library Granted Patent US 11,036,417
Granted Patent B2
US 11,036,417 · App. 16/191,210 · Granted Jun 15, 2021

Methods and systems for object level de-duplication for solid state devices

Inventors: Mohammad R. Sadri (Santa Ana, CA); Siddharth Choudhuri (Santa Ana, CA)
Assignee: WESTERN DIGITAL TECHNOLOGIES, INC.
G06F3/0641G06F3/0608G06F3/0688G06F11/1453
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,036,417
App. No.
16/191,210
Granted
Jun 15, 2021
Kind
B2
Abstract

In one aspect, the present disclosure relates to a method of de-duplicating data in a solid state storage device. The method can include receiving a block of data to be written to a solid state storage device, wherein the block of data comprises header portion and a payload, wherein the header portion comprises context information; and determining whether the payload should be de-duplicated prior to storage, based on the context information stored within the header portion; if the payload is determined to be de-duplicated, de-duplicating the payload; and storing the de-duplicated payload to the solid state storage device.

Claims (46)

1. A method for providing object level de-duplication for solid state storage devices (SSDs), comprising:

receiving, at a solid state storage device (SSD), a block of data comprising a header portion and a payload, wherein the header portion comprises context information indicative that the payload comprises non-random data, and wherein the payload is received from a first location within memory of the SSD;

determining, by the SSD, that the payload should be de-duplicated prior to storage based solely on the context information stored within the header portion without analyzing the payload;

randomizing the non-random data of the payload;

de-duplicating, at the SSD, the payload comprising the randomized data; and

storing the de-duplicated payload to a second location within the memory of the SSD,

wherein the de-duplicating is performed when the SSD is moving the payload from the first location to the second location for garbage collection, and

wherein the header portion is provided by an application layer software program that had previously accessed the payload.

2. The method of claim 1 , wherein the context information is provided from hierarchical layers above the SSD.

3. The method of claim 1 , wherein the payload comprises a plurality of sub-objects.

4. The method of claim 3 , wherein the de-duplicating the payload comprises de-duplicating the payload based on a correlation between sub-objects of other payloads.

5. The method of claim 1 , further comprising, before storing, separating out the header portion from the payload and storing the header portion and the payload in separate locations on the SSD.

6. The method of claim 1 , further comprising deriving the context information from the header portion by analyzing the header portion in view of a known structure of the header portion without having an application layer software program embed additional contextual information into the header portion.

7. The method of claim 1 , wherein the context information is uniquely associated with the payload.

8. A solid state device (SSD) providing object level de-duplication, comprising:

a host interface for communicating to a host device;

one or more flash memories for storing data; and

a de-duplication engine comprising instructions stored in a non-transitory computer readable medium, wherein the instructions, when executed by a processor, are configured to cause:

receiving a block of data, wherein the block of data comprises a header portion and a payload, wherein the header portion comprises context information indicative of whether the payload comprises random data, and wherein the payload is received from a first location within the one or more flash memories;

determining the payload should be de-duplicated prior to storage based solely on the context information stored within the header portion without analyzing the payload;

randomizing data of the payload;

de-duplicating the payload comprising the randomized data; and

storing the de-duplicated payload to a second location within the one or more flash memories,

wherein the de-duplicating is performed when the SSD is moving the payload from the first location to the second location for garbage collection, and

wherein the header portion is provided by an application layer software program that had previously accessed the payload.

9. The solid state device of claim 8 , wherein the instructions are configured to determine that the payload should be de-duplicated based on the context information indicating that the payload is non-random.

10. The solid state device of claim 8 , wherein the context information is provided from hierarchical layers above the SSD.

11. The solid state device of claim 8 , wherein the payload comprises a plurality of sub-objects.

12. The solid state device of claim 11 , wherein the de-duplicating the payload comprises de-duplicating the payload based on a correlation between sub-objects of other payloads.

13. The solid state device of claim 8 , wherein the instructions are further configured to cause, before storing:

separating out the header portion from the payload and storing the header portion and the payload in separate locations on the SSD.

14. A solid state device (SSD) providing object level de-duplication, comprising:

means for communicating to a host device;

means for storing data;

means for receiving a block of data, wherein the block of data comprises a header portion and a payload, wherein the header portion comprises context information indicative of whether the payload comprises random data, and wherein the means for receiving comprises means for receiving the payload from a first location within the means for storing data;

means for determining the payload should be de-duplicated prior to storage based solely on the context information stored within the header portion without analyzing the payload;

means for randomizing data of the payload;

means for de-duplicating the payload comprising the randomized data; and

means for storing the de-duplicated payload to a second location within the means for storing data,

wherein the means for de-duplicating the payload comprises means for de-duplicating the payload when the SSD is moving the payload from the first location to the second location for garbage collection, and

wherein the header portion is provided by an application layer software program that had previously accessed the payload.

15. The solid state device of claim 14 , wherein the context information is provided from hierarchical layers above the SSD.

16. The solid state device of claim 14 , wherein the payload comprises a plurality of sub-objects.

17. The solid state device of claim 16 , wherein the means for de-duplicating the payload comprises means for de-duplicating the payload based on a correlation between sub-objects of other payloads.

18. The solid state device of claim 14 , further comprising means for separating out the header portion from the payload, and wherein the means for storing the de-duplicated payload comprises means for storing the header portion and the payload in separate locations on the means for storing data.

19. The solid state device of claim 14 , wherein the context information indicates that the payload is non-random.

Assignments (12)
SECURITY AGREEMENT (SUPPLEMENTAL) Recorded Nov 14, 2024
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 069411/0208 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 11, 2024
From: SANDISK TECHNOLOGIES, INC.
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 069168/0273 →
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 - A&R LOAN AGREEMENT Recorded Aug 21, 2023
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 064715/0001 →
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 →
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 Jan 18, 2019
From: HGST TECHNOLOGIES SANTA ANA, INC.
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 048063/0548 →
CHANGE OF NAME Recorded Jan 18, 2019
From: STEC, INC.
To: HGST TECHNOLOGIES SANTA ANA, INC.
Reel/Frame 048098/0566 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 18, 2019
From: SADRI, MOHAMMAD R.; CHOUDHURI, SIDDHARTH
To: STEC, INC.
Reel/Frame 048063/0544 →
Continuity (3)
Continuation 13303870 · Nov 23, 2011
Provisional Application 61416880 · Nov 24, 2010
Related Publication 20190079691A1 · Mar 14, 2019