IP Library Granted Patent US 11,403,224
Granted Patent B2
US 11,403,224 · App. 16/862,963 · Granted Aug 2, 2022

Method and system for managing buffer device in storage system

Inventors: Xinlei Xu (Beijing, CN); Jian Gao (Beijing, CN); Yousheng Liu (Beijing, CN); Changyu Feng (Beijing, CN); Geng Han (Beijing, CN)
Assignee: EMC IP Holding Company, LLC
G06F12/0855G06F3/061G06F3/0659G06F3/0689G06F12/0804G06F12/0868G06F12/0891G06F12/123G06F12/0897G06F2212/1024G06F2212/22G06F2212/222G06F2212/502G06F2212/601
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,403,224
App. No.
16/862,963
Granted
Aug 2, 2022
Kind
B2
Abstract

A method and system for managing a buffer device in a storage system. The method comprising determining a first priority for a first queue included in the buffer device, the first queue comprising at least one data page associated with a first storage device in the storage system; in at least one round, in response to the first priority not satisfying a first predetermined condition, updating the first priority according to a first updating rule, the first updating rule making the updated first priority much closer to the first predetermined condition than the first priority; and in response to the first priority satisfying the first predetermined condition, flushing data in a data page in the first queue to the first storage device.

Claims (33)

1. A method of managing a buffer device in a storage system, the method comprising:

providing a plurality of queues in the buffer device, each queue of the plurality of queues including a respective set of pages;

assigning respective priorities to the plurality of queues, the priorities represented as respective numbers and based at least in part on response times of storage devices associated with respective queues of the plurality of queues; and

flushing pages from the buffer device to a set of storage devices in multiple rounds, including, for a first round, (i) modifying the priorities of the plurality of queues according to an update rule, (ii) comparing the modified priorities with a predetermined level, and (iii) selectively flushing one or more pages from queues whose modified priorities equal or cross the predetermined level.

2. The method of claim 1 , wherein selectively flushing one or more pages includes (i) flushing a page from a first queue of the plurality of queues in response to the modified priority of the first queue equaling or crossing the predetermined level and (ii) flushing no pages from a second queue of the plurality of queues in response to the modified priority of the second queue not equaling or crossing the predetermined level.

3. The method of claim 2 , further comprising, for a second round that follows the first round, (i) modifying the modified priorities of the plurality of queues according to the update rule so as to produce twice-modified priorities, (ii) comparing the twice-modified priorities with the predetermined level, and (iii) selectively flushing one or more additional pages from queues whose twice-modified priorities equal of cross the predetermined level.

4. The method of claim 1 , wherein modifying the priorities according to the update rule includes incrementing or decrementing the priorities.

5. The method of claim 1 , wherein flushing pages from the buffer device includes flushing no more than one page per round from each of the plurality of queues.

6. The method of claim 1 , wherein the plurality of queues includes a first queue and a second queue, the first queue configured to flush to a first storage device of a RAID (Redundant Array of Independent Disks) and the second queue configured to flush to a second storage device of the RAID.

7. The method of claim 6 , further comprising, in response to detecting that the first storage device of the RAID has failed but the second storage device of the RAID has not failed, assigning a higher priority to the first queue than to the second queue, thereby preventing data access requests from interfering with rebuilding the first storage device.

8. The method of claim 1 , where the respective priorities are further based at least in part on access frequencies of the storage devices associated with respective queues of the plurality of queues.

9. A system for managing a buffer device in a storage system, comprising:

one or more processors;

a memory coupled to at least one processor of the one or more processors;

computer program instructions stored in the memory which, when executed by the at least one processor, cause the system to execute a method of managing a storage system, the method comprising:

providing a plurality of queues in a buffer device, each queue of the plurality of queues including a respective set of pages;

assigning respective priorities to the plurality of queues, the priorities represented as respective numbers and based at least in part on response times of storage devices associated with respective queues of the plurality of queues; and

flushing pages from the buffer device to a set of storage devices in multiple rounds, including, for a first round, (i) modifying the priorities of the plurality of queues according to an update rule, (ii) comparing the modified priorities with a predetermined level, and (iii) selectively flushing one or more pages from queues whose modified priorities equal or cross the predetermined level.

10. The system of claim 9 , wherein selectively flushing one or more pages includes (i) flushing a page from a first queue of the plurality of queues in response to the modified priority of the first queue equaling or crossing the predetermined level and (ii) flushing no pages from a second queue of the plurality of queues in response to the modified priority of the second queue not equaling or crossing the predetermined level.

11. The system of claim 10 , wherein the method further comprises, for a second round that follows the first round, (i) modifying the modified priorities of the plurality of queues according to the update rule so as to produce twice-modified priorities, (ii) comparing the twice-modified priorities with the predetermined level, and (iii) selectively flushing one or more additional pages from queues whose twice-modified priorities equal of cross the predetermined level.

12. The system of claim 9 , wherein modifying the priorities according to the update rule includes incrementing or decrementing the priorities.

13. The system of claim 9 , wherein the plurality of queues includes a first queue and a second queue, the first queue configured to flush to a first storage device of a RAID (Redundant Array of Independent Disks) and the second queue configured to flush to a second storage device of the RAID.

14. The system of claim 13 , wherein the method further comprises, in response to detecting that the first storage device of the RAID has failed but the second storage device of the RAID has not failed, assigning a higher priority to the first queue than to the second queue, thereby preventing data access requests from interfering with rebuilding the first storage device.

15. A computer program product including one or more non-transitory computer readable medium(s) having computer readable program code embodied thereon which, when executed by one or more processors, perform a method of managing a buffer device in a storage system, the method comprising:

providing a plurality of queues in the buffer device, each queue of the plurality of queues including a respective set of pages;

assigning respective priorities to the plurality of queues, the priorities represented as respective numbers and based at least in part on response times of storage devices associated with respective queues of the plurality of queues; and

flushing pages from the buffer device to a set of storage devices in multiple rounds, including, for a first round, (i) modifying the priorities of the plurality of queues according to an update rule, (ii) comparing the modified priorities with a predetermined level, and (iii) selectively flushing one or more pages from queues whose modified priorities equal or cross the predetermined level.

16. The computer program product of claim 15 , wherein selectively flushing one or more pages includes (i) flushing a page from a first queue of the plurality of queues in response to the modified priority of the first queue equaling or crossing the predetermined level and (ii) flushing no pages from a second queue of the plurality of queues in response to the modified priority of the second queue not equaling or crossing the predetermined level.

17. The computer program product of claim 16 , wherein the method further comprises, for a second round that follows the first round, (i) modifying the modified priorities of the plurality of queues according to the update rule so as to produce twice-modified priorities, (ii) comparing the twice-modified priorities with the predetermined level, and (iii) selectively flushing one or more additional pages from queues whose twice-modified priorities equal of cross the predetermined level.

18. The computer program product of claim 15 , wherein modifying the priorities according to the update rule includes incrementing or decrementing the priorities.

19. The computer program product of claim 15 , wherein flushing pages from the buffer device includes flushing no more than one page per round from each of the plurality of queues.

20. The computer program product of claim 15 , wherein the plurality of queues includes a first queue and a second queue, the first queue configured to flush to a first storage device of a RAID (Redundant Array of Independent Disks) and the second queue configured to flush to a second storage device of the RAID.

21. The computer program product of claim 20 , wherein the method further comprises, in response to detecting that the first storage device of the RAID has failed but the second storage device of the RAID has not failed, assigning a higher priority to the first queue than to the second queue, thereby preventing data access requests from interfering with rebuilding the first storage device.

Assignments (9)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (052851/0081) 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
Reel/Frame 060436/0441 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (052851/0917) 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
Reel/Frame 060436/0509 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (052852/0022) 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
Reel/Frame 060436/0582 →
RELEASE OF SECURITY INTEREST AT REEL 052771 FRAME 0906 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 058001/0298 →
SECURITY INTEREST Recorded Jun 5, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 052852/0022 →
SECURITY INTEREST Recorded Jun 5, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC; THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 052851/0081 →
SECURITY INTEREST Recorded Jun 5, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 052851/0917 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 28, 2020
From: XU, XINLEI; GAO, JIAN; LIU, YOUSHENG; FENG, CHANGYU; HAN, GENG
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 052775/0113 →
SECURITY AGREEMENT Recorded May 28, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 052771/0906 →