IP Library Granted Patent US 10,216,630
Granted Patent B1
US 10,216,630 · App. 15/716,325 · Granted Feb 26, 2019

Smart namespace SSD cache warmup for storage systems

Inventors: Pengju Shang (Milpitas, CA); Murthy Mamidi (San Jose, CA); Pranay Singh (San Ramon, CA); George Mathew (Belmont, CA); Englin Koay (Dublin, CA)
Assignee: EMC IP Holding Company LLC
G06F12/0804G06F12/0866G06F17/30082G06F17/30132G06F2212/1021G06F2212/222G06F2212/281
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,216,630
App. No.
15/716,325
Granted
Feb 26, 2019
Kind
B1
Abstract

In some embodiments, in response to receiving an indication to warm up a SSD cache, a system identifies namespace data of a file system to be warmed up separated from content data. The system identifies one or more namespace pages of the namespace data. For each of the one or more namespace pages, the system locks the namespace page in a read-only mode and determines if the namespace page is dirty. If the namespace page is dirty, the system releases the namespace page from the read-only mode without copying the namespace page to the SSD cache. If the page is clean (i.e., not dirty) then the system copies the namespace page to the SSD cache and releases the namespace page from the read-only mode to reduce cache misses of the namespace on the SSD cache.

Claims (64)

1. A computer-implemented method for solid state drive (SSD) cache warm up for a storage system, the method comprising:

in response to receiving an indication to warm up a SSD cache, identifying namespace data of a filesystem to be warmed up separated from content data;

identifying one or more namespace pages of the namespace data;

for each of the one or more namespace pages,

locking the namespace page in a read-only mode;

determining if the namespace page is dirty;

if the namespace page is dirty, releasing the namespace page from the read-only mode without copying the namespace page to the SSD cache; and

if the page is clean, copying the namespace page to the SSD cache and releasing the namespace page from the read-only mode to reduce cache misses of the namespace on the SSD cache.

2. The method of claim 1 , wherein identifying one or more namespace pages of the namespace data comprises:

determining a data capacity size of the one or more namespace pages;

determining a capacity size of a SSD cache to be warmed up; and

if the data capacity size of the one or more namespace pages is determined to be greater than the capacity size of the SSD cache to be warmed up,

ranking each of the one or more namespace pages based on a frequency of access relative to other namespace pages;

identifying the one or more namespace pages to be warmed up based on the ranking such that frequently accessed namespace pages have a higher priority to be warmed up.

3. The method of claim 1 , wherein receiving an indication to warm up the SSD cache comprises detecting a new SSD cache device added.

4. The method of claim 3 , wherein detecting a new SSD cache device added comprises receiving an indication of a SSD volume create event.

5. The method of claim 1 , wherein receiving an indication to warm up the SSD cache comprises receiving an indication to roll back a namespace, an indication to roll forward a namespace, an indication for a snapshot reversion for the filesystem, or an indication for a snapshot promotion for the filesystem.

6. The method of claim 1 , further comprising:

monitoring a cache miss rate for the SSD cache;

if a current cache miss rate is determined to be increasing in comparison to a previous cache miss rate by a first predetermined percentage, throttling the SSD cache warm up by delaying a time to warm up the SSD cache by a first predetermined time interval to minimize performance impact to the storage system; and

if the current cache miss rate is determined to be decreasing in comparison to a previous cache miss rate by a second predetermined percentage, reducing the delay to the time to warm up the SSD cache by a second predetermined time interval.

7. The method of claim 6 , wherein the cache miss rate for the SSD cache is monitored periodically at a predetermined time interval.

8. The method of claim 6 , wherein the current cache miss rate is compared to an average cache miss rate of previously monitored cache miss rates to determine if the current cache miss rate is increasing or decreasing.

9. A non-transitory machine-readable medium having instructions stored therein, which when executed by a processor, cause the processor to perform operations to sort data elements in a data array, the operations comprising:

in response to receiving an indication to warm up a SSD cache, identifying namespace data of a filesystem to be warmed up separated from content data;

identifying one or more namespace pages of the namespace data;

for each of the one or more namespace pages,

locking the namespace page in a read-only mode;

determining if the namespace page is dirty;

if the namespace page is dirty, releasing the namespace page from the read-only mode without copying the namespace page to the SSD cache; and

if the page is clean, copying the namespace page to the SSD cache and releasing the namespace page from the read-only mode to reduce cache misses of the namespace on the SSD cache.

10. The non-transitory machine-readable medium of claim 9 , wherein identifying one or more namespace pages of the namespace data comprises:

determining a data capacity size of the one or more namespace pages;

determining a capacity size of a SSD cache to be warmed up; and

if the data capacity size of the one or more namespace pages is determined to be greater than the capacity size of the SSD cache to be warmed up,

ranking each of the one or more namespace pages based on a frequency of access relative to other namespace pages;

identifying the one or more namespace pages to be warmed up based on the ranking such that frequently accessed namespace pages have a higher priority to be warmed up.

11. The non-transitory machine-readable medium of claim 9 , wherein receiving an indication to warm up the SSD cache comprises detecting a new SSD cache device added.

12. The non-transitory machine-readable medium of claim 11 , wherein detecting a new SSD cache device added comprises receiving an indication of a SSD volume create event.

13. The non-transitory machine-readable medium of claim 9 , wherein receiving an indication to warm up the SSD cache comprises receiving an indication to roll back a namespace, an indication to roll forward a namespace, an indication for a snapshot reversion for the filesystem, or an indication for a snapshot promotion for the filesystem.

14. The non-transitory machine-readable medium of claim 9 , further comprising:

monitoring a cache miss rate for the SSD cache;

if a current cache miss rate is determined to be increasing in comparison to a previous cache miss rate by a first predetermined percentage, throttling the SSD cache warm up by delaying a time to warm up the SSD cache by a first predetermined time interval to minimize performance impact to the storage system; and

if the current cache miss rate is determined to be decreasing in comparison to a previous cache miss rate by a second predetermined percentage, reducing the delay to the time to warm up the SSD cache by a second predetermined time interval.

15. The non-transitory machine-readable medium of claim 14 , wherein the cache miss rate for the SSD cache is monitored periodically at a predetermined time interval.

16. The non-transitory machine-readable medium of claim 14 , wherein the current cache miss rate is compared to an average cache miss rate of all previously monitored cache miss rates to determine if the current cache miss rate is increasing or decreasing.

17. A data processing system, comprising:

a processor; and

a memory coupled to the processor to store instructions, which when executed by the processor, cause the processor to perform operations, the operations including

in response to receiving an indication to warm up a SSD cache, identifying namespace data of a filesystem to be warmed up separated from content data;

identifying one or more namespace pages of the namespace data;

for each of the one or more namespace pages,

locking the namespace page in a read-only mode;

determining if the namespace page is dirty;

if the namespace page is dirty, releasing the namespace page from the read-only mode without copying the namespace page to the SSD cache; and

if the page is clean, copying the namespace page to the SSD cache and releasing the namespace page from the read-only mode to reduce cache misses of the namespace on the SSD cache.

18. The system of claim 17 , wherein identifying one or more namespace pages of the namespace data comprises:

determining a data capacity size of the one or more namespace pages;

determining a capacity size of a SSD cache to be warmed up; and

if the data capacity size of the one or more namespace pages is determined to be greater than the capacity size of the SSD cache to be warmed up,

ranking each of the one or more namespace pages based on a frequency of access relative to other namespace pages;

identifying the one or more namespace pages to be warmed up based on the ranking such that frequently accessed namespace pages have a higher priority to be warmed up.

19. The system of claim 17 , wherein receiving an indication to warm up the SSD cache comprises detecting a new SSD cache device added.

20. The system of claim 19 , wherein detecting a new SSD cache device added comprises receiving an indication of a SSD volume create event.

Assignments (10)
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 (050724/0466) 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; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO WYSE TECHNOLOGY L.L.C.)
Reel/Frame 060753/0486 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (044535/0109) Recorded May 20, 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; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO WYSE TECHNOLOGY L.L.C.)
Reel/Frame 060753/0414 →
RELEASE OF SECURITY INTEREST AT REEL 044535 FRAME 0001 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; WYSE TECHNOLOGY L.L.C.
Reel/Frame 058298/0475 →
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 →
PATENT SECURITY AGREEMENT (NOTES) Recorded Oct 15, 2019
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; WYSE TECHNOLOGY L.L.C.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 050724/0466 →
SECURITY AGREEMENT Recorded Mar 21, 2019
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 049452/0223 →
PATENT SECURITY AGREEMENT (CREDIT) Recorded Nov 29, 2017
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; WYSE TECHNOLOGY L.L.C.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 044535/0001 →
PATENT SECURITY AGREEMENT (NOTES) Recorded Nov 29, 2017
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; WYSE TECHNOLOGY L.L.C.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 044535/0109 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 27, 2017
From: SHANG, PENGJU; MAMIDI, MURTHY; SINGH, PRANAY; MATHEW, GEORGE; KOAY, ENGLIN
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 043719/0845 →
Cited By (3)
US 12,360,665 US 12,360,905 US 12,393,510