IP Library › Granted Patent US 11,281,573
Granted Patent B2
US 11,281,573 · App. 16/672,071 · Granted Mar 22, 2022

Modification-frequency-based tiered data storage and garbage collection system

Inventors: Wei Dong (Shanghai, CN); Weilin Liu (Shanghai, CN)
Assignee: Dell Products L.P.
G06F12/0246G06F3/0611G06F3/0652G06F3/0653G06F3/0659G06F3/0679G06F2212/1044
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,281,573
App. No.
16/672,071
Filed
Nov 1, 2019
Granted
Mar 22, 2022
Kind
B2
Examiner
SAIN, GAUTAM
Art Unit
2135
USPC
711/103
Abstract

A modification-frequency-based tiered data storage garbage collection system includes a storage device coupled to a host engine. The storage device includes a data storage and garbage collection engine and storage subsystems. The data storage and garbage collection engine receives first modified data from the host engine that provides a modification to first current data stored in a first data storage element provided by one of the storage subsystems and grouped in a first superblock associated with a first data modification frequency range. The data storage and garbage collection engine then determines a first frequency of modification of the first current data and, based on that, writes the first modified data to a second data storage element provided by one of the storage subsystems and grouped in a second superblock associated with a second data modification frequency range that is different than the first data modification frequency range.

Claims (64)

1. A modification-frequency-based tiered data storage garbage collection system, comprising:

at least one first processor; and

a first non-transitory memory that is coupled to the at least one first processor and that includes first instructions that, when executed by the at least one first processor, cause the at least one first processor to provide a host engine; and

a storage device that includes:

a plurality of storage subsystems;

at least one second processor; and

a second non-transitory memory that is coupled to the at least one second processor and that includes second instructions that, when executed by the at least one second processor, cause the at least one second processor to provide a data storage and garbage collection engine that is coupled to the host engine and the plurality of storage subsystems, wherein the data storage and garbage collection engine is configured to:

receive, from the host engine, first data that is not associated with a Logical Block Address (LBA) in a Logical Block Address/Physical Allocation Address (LBA/PAA) table;

store, based on a type of the first data that is associated with a first data modification frequency range, the first data in a first data storage element that is provided by one of the plurality of storage subsystems and that is grouped in a first superblock that is associated with the first data modification frequency range, wherein the storage of the first data provides first stored data;

modify, following the storage of the first stored data, the first stored data to provide first modified data in the first data storage element;

receive, from the host engine, second modified data that provides a modification to the first modified data that is stored in the first data storage element;

determine, in response to receiving the second modified data, that the first modified data has been modified over at least two different time periods;

determine a first frequency of modification of the first modified data that identifies a number of times the first modified data has been modified over the at least two different time periods and that falls within a second data modification frequency range that is different than the first data modification frequency range; and

write, based on the first frequency of modification of the first modified data and in response to determining that the first modified data has been modified over the at least two time periods, the second modified data to a second data storage element that is provided by one of the plurality of storage subsystems and that is grouped in a second superblock that is different than the first superblock and that is associated with the second data modification frequency range.

2. The system of claim 1 , wherein the data storage and garbage collection engine is configured to:

track a frequency of modification of data stored in a plurality of data storage elements that are provided by the plurality of storage subsystems and grouped into a plurality of superblocks.

3. The system of claim 1 , wherein the second data modification frequency range is greater than the first data modification frequency range.

4. The system of claim 1 , wherein the second data modification frequency range is less than the first data modification frequency range.

5. The system of claim 4 , wherein the data storage and garbage collection engine is configured to:

determine that garbage collection operations should be performed;

identify the first superblock as including a fewest number of valid data storage elements;

write, in response to identifying the first superblock as including the fewest number of valid data storage elements, data included on any data storage element that is provided by the plurality of storage subsystems and grouped in the first superblock to a respective data storage element that is provided by one of the plurality of storage subsystems and grouped in a superblock that is different than the first superblock; and

erase, subsequent to writing the data to the respective data storage elements that are provided by the plurality of storage subsystems and grouped in the superblock that is different than the first superblock, each data storage element that is grouped in the first superblock.

6. The system of claim 1 , wherein the storage device is provided by a Solid State Drive (SSD) storage device.

7. An Information Handling System (IHS), comprising:

at least one processor; and

a first non-transitory memory that is coupled to the at least one processor and that includes instructions that, when executed by the at least one processor, cause the at least one processor to provide a data storage and garbage collection engine that is configured to:

receive, from a host engine, first data that is not associated with a Logical Block Address (LBA) in a Logical Block Address/Physical Allocation Address (LBA/PAA) table;

store, based on a type of the first data that is associated with a first data modification frequency range, the first data in a first data storage element that is provided by one of a plurality of storage subsystems and that is grouped in a first superblock that is associated with the first data modification frequency range, wherein the storage of the first data provides first stored data;

modify, following the storage of the first stored data, the first stored data to provide first modified data in the first data storage element;

receive, from the host engine, second modified data that provides a modification to the first modified data;

determine, in response to receiving the second modified data, that the first modified data has been modified over at least two different time periods;

determine a first frequency of modification of the first modified data that identifies a number of times the first modified data has been modified over the at least two different time periods and that falls within a second data modification frequency range that is different than the first data modification frequency range; and

write, based on the first frequency of modification of the first modified data and in response to determining that the first modified data has been modified over the at least two time periods, the second modified data to a second data storage element that is provided by one of the plurality of storage subsystems and that is grouped in a second superblock that is different than the first superblock and that is associated with the second data modification frequency range.

8. The IHS of claim 7 , wherein the data storage and garbage collection engine is configured to:

track a frequency of modification of data stored in a plurality of data storage elements that are provided by the plurality of storage subsystems and grouped into a plurality of superblocks.

9. The IHS of claim 8 , wherein the tracking the frequency of modification of the data includes maintaining the LBA/PAA table that updates the frequency of modification of data associated with each LBA.

10. The IHS of claim 7 , wherein the second data modification frequency range is greater than the first data modification frequency range.

11. The IHS of claim 7 , wherein the second data modification frequency range is less than the first data modification frequency range.

12. The IHS of claim 11 , wherein the data storage and garbage collection engine is configured to:

determine that garbage collection operations should be performed;

identify the first superblock as including a fewest number of valid data storage elements;

write, in response to identifying the first superblock as including the fewest number of valid data storage elements, data included on any data storage element that is provided by the plurality of storage subsystems and grouped in the first superblock to a respective data storage element that is provided by one of the plurality of storage subsystems and grouped in a superblock that is different than the first superblock; and

erase, subsequent to writing the data to the respective data storage elements that are provided by the plurality of storage subsystems and grouped in the superblock that is different than the first superblock, each data storage element that is grouped in the first superblock.

13. The IHS of claim 7 , wherein the plurality of storage subsystems are included in a Solid State Drive (SSD) storage device.

14. A method for performing garbage collection using a tiered data storage that is based on data modification frequency, comprising:

receiving, by a storage device from a host engine, first data that is not associated with a Logical Block Address (LBA) in a Logical Block Address/Physical Allocation Address (LBA/PAA) table;

storing, by the storage device and based on a type of the first data that is associated with a first data modification frequency range, the first data in a first data storage element that is provided by one of a plurality of storage subsystems and that is grouped in a first superblock that is associated with the first data modification frequency range, wherein the storage of the first data provides first stored data;

modifying, by the storage device following the storage of the first stored data, the first stored data to provide first modified data in the data storage element;

receiving, by the storage device from the host engine, second modified data that provides a modification to the first modified data, that is stored in the first data storage element;

determining, by the storage device in response to receiving the second modified data, that the first modified data has been modified over at least two different time periods;

determining, by the storage device, a first frequency of modification of the first modified data that identifies a number of times the first modified data has been modified over the at least two different time periods and that falls within a second data modification frequency range that is different than the first data modification frequency range; and

writing, by the storage device based on the first frequency of modification of the first modified data and in response to determining that the first modified data has been modified over the at least two time periods, the second modified data to a second data storage element that is provided by one of the plurality of storage subsystems and that is grouped in a second superblock that is different than the first superblock and that is associated with the second data modification frequency range.

15. The method of claim 14 , further comprising:

tracking, by the storage device, a frequency of modification of data stored in a plurality of data storage elements that are provided by the plurality of storage subsystems and grouped into a plurality of superblocks.

16. The method of claim 15 , wherein the tracking the frequency of modification of the data includes maintaining the LBA/PAA table that updates the frequency of modification of data associated with each LBA.

17. The method of claim 14 , wherein the second data modification frequency range is greater than the first data modification frequency range.

18. The method of claim 14 , wherein the second data modification frequency range is less than the first data modification frequency range.

19. The method of claim 18 , further comprising:

determining, by the storage device, that garbage collection operations should be performed;

identifying, by the storage device, the first superblock as including a fewest number of valid data storage elements;

writing, by the storage device in response to identifying the first superblock as including the fewest number of valid data storage elements, data included on any data storage element that is provided by the plurality of storage subsystems and grouped in the first superblock to a respective data storage element that is provided by one of the plurality of storage subsystems and grouped in a superblock that is different than the first superblock; and

erasing, storage device subsequent to writing the data to the respective data storage elements that are provided by the plurality of storage subsystems and grouped in the superblock that is different than_the first superblock, each data storage element that is grouped in the first superblock.

20. The method of claim 14 , wherein the storage device is provided by a Solid State Drive (SSD) storage device.

Assignments (9)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053546/0001) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC IP HOLDING COMPANY LLC
Reel/Frame 071642/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (051302/0528) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO WYSE TECHNOLOGY L.L.C.); SECUREWORKS CORP.
Reel/Frame 060438/0593 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053311/0169) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
Reel/Frame 060438/0742 →
RELEASE OF SECURITY INTEREST AT REEL 051449 FRAME 0728 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC; WYSE TECHNOLOGY L.L.C.; SECUREWORKS CORP.; EMC CORPORATION
Reel/Frame 058002/0010 →
SECURITY INTEREST Recorded Jun 5, 2020
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 053311/0169 →
SECURITY AGREEMENT Recorded Apr 22, 2020
From: CREDANT TECHNOLOGIES INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 053546/0001 →
SECURITY AGREEMENT Recorded Dec 31, 2019
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC; WYSE TECHNOLOGY L.L.C.; SECUREWORKS CORP.; EMC CORPORATION
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 051449/0728 →
PATENT SECURITY AGREEMENT (NOTES) Recorded Dec 16, 2019
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC; WYSE TECHNOLOGY L.L.C.; SECUREWORKS CORP.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 051302/0528 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 6, 2019
From: DONG, WEI; LIU, WEILIN
To: DELL PRODUCTS L.P.
Reel/Frame 050934/0566 →
Priority Claims (1)
CN 201910958904.8 · Oct 10, 2019 · national
Continuity (1)
Related Publication 20210109851A1 · Apr 15, 2021