IP Library Granted Patent US 10,860,494
Granted Patent B2
US 10,860,494 · App. 16/514,291 · Granted Dec 8, 2020

Flushing pages from solid-state storage device

Inventors: Liam Li (Beijing, CN); Xinlei Xu (Beijing, CN); Jian Gao (Beijing, CN); Lifeng Yang (Beijing, CN); Changyu Feng (Beijing, CN)
Assignee: EMC IP Holding Company LLC
G06F12/0891G06F11/1076G06F12/0804G06F12/0868G06F12/0871G06F12/0882G06F12/1009G06F12/0897G06F2212/1024G06F2212/214G06F2212/217G06F2212/262G06F2212/466G06F2212/502
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,860,494
App. No.
16/514,291
Granted
Dec 8, 2020
Kind
B2
Abstract

Embodiments of the present disclosure relate to a method and device for flushing pages from a solid-state storage device. Specifically, the present disclosure discloses a method of flushing pages from a solid-state storage device comprising: determining a first number based on a period length of one flushing cycle and a period length required for building one flushing transaction, the first number indicating a maximum number of flushing transactions that can be built in the flushing cycle; and flushing pages from the solid-state storage device with an upper limit of the first number in the flushing cycle. The present disclosure also discloses a device for flushing pages from a solid-state storage device and a computer program product for implementing steps of a method of flushing pages from a solid-state storage device.

Claims (43)

1. A method of flushing pages from a solid-state storage device, comprising:

determining a limit number based on a response time of the solid-state storage device to one flushing transaction, the limit number indicating a maximum number of flushing transactions that can be executed in parallel in the solid-state storage device during the flushing cycle; and

during the flushing cycle, flushing the pages from the solid-state storage device with an upper limit of the limit number.

2. The method according to claim 1 , wherein the limit number is determined based on a response time to one flushing transaction of a RAID group to which the solid-state storage device belongs, the limit number indicating a maximum number of flushing transactions that can be executed in parallel in the RAID group to which the solid-state storage device belongs during the flushing cycle.

3. The method according to claim 2 , wherein the limit number is related to a depth of a RAID queue for the RAID group to which the solid-state storage device belongs.

4. The method according to claim 3 , wherein the solid-state storage device is one of a plurality of storage devices belong to respective RAID groups and having respective distinct RAID queue depths, and wherein the RAID queue depths of each RAID group indicate respective maximum numbers of flushing transactions that can be executed in parallel in the respective RAID groups during the flushing cycle.

5. The method according to claim 4 , wherein the RAID queue depths correspond to respective busy levels of the RAID groups including at least idle, normal and busy, the RAID queue depths decreasing with increasing busy level.

6. The method according to claim 5 , wherein a level of write/read IOs influences the busy levels of RAIDs, and the RAID queue depths are dynamically adjusted accordingly, the busy levels being assessed for a given flushing cycle and used to determine the respective RAID queue depths in a next flushing cycle.

7. The method according to claim 1 , wherein the limit number is a second limit number, and further comprising:

determining a first limit number based on a period length of one flushing cycle and a period length required for building one flushing transaction, the first limit number indicating a maximum number of flushing transactions that can be built in the flushing cycle; and

during the flushing cycle, flushing the pages from the solid-state storage device with an upper limit of a smaller one of the first and second limit numbers.

8. The method according to claim 7 , further comprising:

determining, based on a central processing unit (CPU) time, a start time and an end time of building the flushing transaction; and

determining, based on a difference between the start time and the end time, the period length required for building the flushing transaction.

9. The method according to claim 7 , wherein flushing the pages comprises:

in response to a page to be flushed being a clean page, invalidating metadata corresponding to the page; and

in response to the page to be flushed being a dirty page,

copying data of the page into a hard disk; and

invalidating the metadata corresponding to the page.

10. The method according to claim 9 , wherein copying the data of the page into the hard disk comprises:

determining a third limit number based on a response time of the hard disk to one flushing transaction, the third limit number indicating a maximum number of flushing transactions that can be executed in parallel in the hard disk during the flushing cycle; and

during the flushing cycle, flushing the page into the hard disk with an upper limit of the third limit number.

11. The method according to claim 10 , further comprising:

maintaining a first list and a second list in the solid-state storage device, the first list indicating clean pages, and the second list indicating dirty pages; and

performing the flushing of the pages using the first list and the second list.

12. The method according to claim 9 , wherein the flushing of the clean page precedes the flushing of the dirty page.

13. An electronic device comprising:

a processor; and

a memory coupled to the processor and storing instructions executable by the processor, the instructions, when being executed by the processor, causing the device to:

determine a limit number based on a response time of the solid-state storage device to one flushing transaction, the limit number indicating a maximum number of flushing transactions that can be executed in parallel in the solid-state storage device during the flushing cycle; and

during the flushing cycle, flush the pages from the solid-state storage device with an upper limit of the limit number.

14. The electronic device according to claim 13 , wherein the limit number is determined based on a response time to one flushing transaction of a RAID group to which the solid-state storage device belongs, the limit number indicating a maximum number of flushing transactions that can be executed in parallel in the RAID group to which the solid-state storage device belongs during the flushing cycle.

15. The electronic device according to claim 14 , wherein the limit number is related to a depth of a RAID queue for the RAID group to which the solid-state storage device belongs.

16. The electronic device according to claim 15 , wherein the solid-state storage device is one of a plurality of storage devices belong to respective RAID groups and having respective distinct RAID queue depths, and wherein the RAID queue depths of each RAID group indicate respective maximum numbers of flushing transactions that can be executed in parallel in the respective RAID groups during the flushing cycle.

17. The electronic device according to claim 16 , wherein the RAID queue depths correspond to respective busy levels of the RAID groups including at least idle, normal and busy, the RAID queue depths decreasing with increasing busy level.

18. The electronic device according to claim 17 , wherein a level of write/read IOs influences the busy levels of RAIDs, and the RAID queue depths are dynamically adjusted accordingly, the busy levels being assessed for a given flushing cycle and used to determine the respective RAID queue depths in a next flushing cycle.

19. The electronic device according to claim 13 , wherein the limit number is a second limit number, and wherein the instructions, when being executed by the processor, further cause the device to:

determine a first limit number based on a period length of one flushing cycle and a period length required for building one flushing transaction, the first limit number indicating a maximum number of flushing transactions that can be built in the flushing cycle; and

during the flushing cycle, flush the pages from the solid-state storage device with an upper limit of a smaller one of the first and second limit numbers.

20. A computer program product for flushing pages from a solid-state storage device, the computer program product comprising:

a non-transitory computer readable medium encoded with computer-executable program code for flushing pages from the solid-state storage device, the code configured to enable the execution of:

determining a limit number based on a response time of the solid-state storage device to one flushing transaction, the limit number indicating a maximum number of flushing transactions that can be executed in parallel in the solid-state storage device during the flushing cycle; and

during the flushing cycle, flushing the pages from the solid-state storage device with an upper limit of the limit number.

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 (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 IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (050724/0571) 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 060436/0088 →
RELEASE OF SECURITY INTEREST AT REEL 050406 FRAME 421 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
Reel/Frame 058213/0825 →
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 →
PATENT SECURITY AGREEMENT (NOTES) Recorded Oct 15, 2019
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 050724/0571 →
SECURITY AGREEMENT Recorded Sep 17, 2019
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 050406/0421 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 14, 2019
From: LI, LIAM; XU, XINLEI; GAO, JIAN; YANG, LIFENG; FENG, CHANGYU
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 050045/0925 →