IP Library Granted Patent US 10,664,401
Granted Patent B2
US 10,664,401 · App. 15/846,297 · Granted May 26, 2020

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 10,664,401
App. No.
15/846,297
Granted
May 26, 2020
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 (70)

1. A method for managing a buffer device in a storage system, 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 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 without immediately flushing all data in the buffer device,

wherein the determining a first priority for a first queue included in the buffer device comprises setting the first priority on the basis of at least one of: a response time associated with the first storage device, a usage rate of the buffer device by the first storage device, and an access frequency of access requests with respect to the first storage device,

wherein the method further comprises:

determining a second priority for a second queue included in the buffer device, the second queue comprising at least one data page associated with a second storage device in the storage system, the first storage device and the second storage device belonging to a Redundant Array of Independent Disks (RAID); and

in response to detecting that (i) the first storage device is a failed device being rebuilt in the RAID and (ii) the second storage device is a non-failed device in the RAID, assigning a higher priority to the first queue than to the second queue, thereby preventing conventional data access requests from interfering with rebuilding the first storage device.

2. The method according to claim 1 , wherein the setting the first priority comprises at least one of:

in response to an increment of the response time being larger than or equal to a first predetermined threshold, increasing the first priority;

in response to an increment of the usage rate being larger than or equal to a second predetermined threshold, decreasing the first priority; and

in response to an increment of the access frequency being larger than or equal to a third predetermined threshold, increasing the first priority.

3. The method according to claim 1 , wherein the flushing data in one data page of the at last one data page to the first storage device comprises:

selecting a target page from the first queue according to a least recently used standard; and

flushing data in the target page to the first storage device.

4. The method according to claim 1 , further comprising,

in the at least one round,

in response to the second priority not satisfying a second predetermined condition, updating the second priority according to a second updating rule, the second updating rule making the updated second priority closer to the second predetermined condition than the second priority; and

in response to the second priority satisfying the second predetermined condition, flushing data in a data page in the second queue to the second storage device.

5. The method according to claim 4 , wherein

the first storage device is provided with a first level, the second storage device is provided with a second level, and the first level is higher than the second level.

6. The method according to claim 5 , wherein the determining a second priority for a second queue included in the buffer device comprises:

setting the second priority such that the rate at which the second priority is updated to satisfy the second predetermined condition according to the second updating rule is faster than the rate at which the first priority is updated to satisfy the first predetermined condition according to the first updating rule.

7. The method according to claim 5 , wherein

a data access speed of the first storage device is lower than a data access speed of the second storage device.

8. The method according to claim 1 , wherein the method is executed in response to any of:

insufficiency of available spaces in the buffer device, and an invocation.

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 for managing 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 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,

wherein the determining a first priority for a first queue included in the buffer device comprises setting the first priority on the basis of at least one of: a response time associated with the first storage device, a usage rate of the buffer device by the first storage device, and an access frequency of access requests with respect to the first storage device,

wherein the method further comprises:

determining a second priority for a second queue included in the buffer device, the second queue comprising at least one data page associated with a second storage device in the storage system, the first storage device and the second storage device belonging to a Redundant Array of Independent Disks (RAID); and

in response to detecting that (i) the first storage device is a failed device being rebuilt in the RAID and (ii) the second storage device is a non-failed device in the RAID, assigning a higher priority to the first queue than to the second queue, thereby preventing conventional data access requests from interfering with rebuilding the first storage device.

10. The system according to claim 9 , wherein the setting the first priority comprises at least one of:

in response to an increment of the response time being larger than or equal to a first predetermined threshold, increasing the first priority;

in response to an increment of the usage rate being larger than or equal to a second predetermined threshold, decreasing the first priority; and

in response to an increment of the access frequency being larger than or equal to a third predetermined threshold, increasing the first priority.

11. The system according to claim 9 , wherein the flushing data in one data page of the at last one data page to the first storage device comprises:

selecting a target page from the first queue according to a least recently used standard; and

flushing data in the target page to the first storage device.

12. The system according to claim 9 , the method further comprising,

in the at least one round,

in response to the second priority not satisfying a second predetermined condition, updating the second priority according to a second updating rule, the second updating rule making the updated second priority closer to the second predetermined condition than the second priority; and

in response to the second priority satisfying the second predetermined condition, flushing data in a data page in the second queue to the second storage device.

13. The system according to claim 12 , wherein

the first storage device is provided with a first level, the second storage device is provided with a second level, and the first level is higher than the second level.

14. The system according to claim 13 , wherein the determining a second priority for a second queue included in the buffer device comprises:

setting the second priority such that the rate at which the second priority is updated to satisfy the second predetermined condition according to the second updating rule is faster than the rate at which the first priority is updated to satisfy the first predetermined condition according to the first updating rule.

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 for managing a buffer device in a storage system, the method comprising:

establishing, as a first numerical value, a first priority for a first queue included in the buffer device, the first queue including at least one data page associated with a first storage device in the storage system; and

in at least one round of flush operation,

in response to the first priority not satisfying a first predetermined condition, updating the first numerical value according to a first updating rule, the first updating rule making the updated first numerical value closer to a numerical component of the first predetermined condition than the first numerical value is to the numerical component; and

in response to the first priority satisfying the first predetermined condition, flushing data in a data page of the first queue to the first storage device,

wherein establishing the first priority is performed based on at least one of (i) a response time associated with the first storage device, (ii) a usage rate of the buffer device by the first storage device, and (iii) an access frequency of access requests with respect to the first storage device,

wherein the method further comprises:

determining a second priority for a second queue included in the buffer device, the second queue comprising at least one data page associated with a second storage device in the storage system, the first storage device and the second storage device belonging to a Redundant Array of Independent Disks (RAID); and

in response to detecting that (i) the first storage device is a failed device being rebuilt in the RAID and (ii) the second storage device is a non-failed device in the RAID, assigning a higher priority to the first queue than to the second queue, thereby preventing conventional data access requests from interfering with rebuilding the first storage device.

16. The computer program product of claim 15 , wherein the buffer device includes a second queue associated with a second storage device, and wherein the method further comprises:

establishing a second numerical value of priority for the second queue, the second numerical value differing from the first numerical value based on at least one of (i) differences in response times associated with the respective storage devices, (ii) differences in usage rates of the buffer device by the respective storage devices, and (iii) differences in access frequencies of access requests with respect to the respective storage devices.

17. The method of claim 16 , wherein the at least one round of flush operation includes multiple rounds of flush operation, and wherein the method further comprises, upon each round of flush operation:

updating the numerical value of the priority of each of the first and second queues in accordance with a respective update rule;

comparing each updated numerical value of priority with a respective predetermined condition; and

for each of the queues for which the comparison satisfies the respective predetermined condition, flushing at least one data page from the respective queue.

Assignments (8)
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 (045482/0131) 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 061749/0924 →
RELEASE OF SECURITY INTEREST AT REEL 045482 FRAME 0395 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/0314 →
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 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 (NOTES) Recorded Mar 1, 2018
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 045482/0131 →
PATENT SECURITY AGREEMENT (CREDIT) Recorded Mar 1, 2018
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 045482/0395 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 10, 2018
From: HAN, GENG; LIU, YOUSHENG; GAO, JIAN; XU, XINLEI; FENG, CHANGYU
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 045036/0656 →
Priority Claims (1)
CN 2016 1 1193465 · Dec 21, 2016 · national
Continuity (1)
Related Publication 20180173629A1 · Jun 21, 2018