IP Library Granted Patent US 11,263,080
Granted Patent B2
US 11,263,080 · App. 16/445,990 · Granted Mar 1, 2022

Method, apparatus and computer program product for managing cache

Inventors: Xiongcheng Li (Beijing, CN); Jibing Dong (Beijing, CN); Hongpo Gao (Beijing, CN); Jianbin Kang (Beijing, CN); Xinlei Xu (Beijing, CN); Jian Gao (Beijing, CN)
Assignee: EMC IP Holding Company LLC
G06F11/1092G06F3/0614G06F3/0664G06F11/073G06F11/0751G06F11/0793G06F12/0804G06F12/0897G06F3/0644G06F3/0689G06F2212/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,263,080
App. No.
16/445,990
Granted
Mar 1, 2022
Kind
B2
Abstract

Techniques manage a cache. Such techniques involve creating a primary cache by a cache management module in a storage system. Such techniques further involve: in response to the primary cache being created, sending a first request to a hardware management module to obtain first information about a first virtual disk. Such techniques further involve: in response to receiving the first information from the hardware management module, creating a secondary cache using the first virtual disk. Such techniques further involve: in response to an available capacity of the primary cache being below a predetermined threshold, flushing at least one cache page in the primary cache to the secondary cache. In certain techniques, it is possible to use spare extents in the disk array to create the secondary cache to increase a total capacity of the cache in the system, thereby improving the access performance of the system.

Claims (70)

1. A method of managing a cache, comprising:

creating a primary cache by a cache management module in a storage system;

in response to the primary cache being created, sending a first request to a hardware management module in the storage system to obtain first information about a first virtual disk in the storage system,

wherein the storage system comprises at least one physical disk having a plurality of extents, the plurality of extents comprise a first group of extents for creating a first disk array, and the first virtual disk is created by the hardware management module based on at least one spare extent from the first group of extents, the at least one spare extent from the first group of extents being reserved for rebuilding the first disk array;

in response to receiving the first information from the hardware management module, creating a secondary cache using the first virtual disk; and

in response to an available capacity of the primary cache being below a predetermined threshold, flushing at least one cache page in the primary cache to the secondary cache.

2. The method according to claim 1 , wherein the primary cache is a read-write cache, and the secondary cache is a read-only cache.

3. The method according to claim 1 , further comprising:

in response to receiving, from the hardware management module, a second request to remove the first virtual disk from the secondary cache to rebuild the first disk array with the at least one spare extent, removing the first virtual disk from the secondary cache.

4. The method according to claim 1 , wherein the first information includes at least one of an identifier and a capacity of the first virtual disk.

5. The method according to claim 2 , further comprising:

in response to receiving, from an application, a third request to write first data to the storage system, determining whether a first cache page for caching data in an address to which the first data is to be written is present in the primary cache; and

in response to determining that the first cache page is present in the primary cache, writing the first data to the first cache page.

6. The method according to claim 5 , further comprising:

in response to determining that the first cache page is absent from the primary cache, determining whether a second cache page for caching data in an address to which the first data is to be written is present in the secondary cache; and

in response to determining that the second cache page is absent from the secondary cache, writing the first data into the at least one physical disk.

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

in response to determining that the second cache page is present in the secondary cache, invalidating the second cache page;

allocating, in the primary cache, a third cache page for caching data in the address to which the first data is to be written; and

writing the first data into the third cache page.

8. The method according to claim 2 , wherein flushing the at least one cache page in the primary cache to the secondary cache comprises:

in response to the available capacity of the primary cache being below the predetermined threshold, determining, from the primary cache, the at least one cache page that does not need to be flushed to the at least one physical disk; and

flushing the at least one cache page to the secondary cache.

9. The method according to claim 1 , further comprising:

in response to the secondary cache being created and second information about a second virtual disk in the storage system being received from the hardware management module, extending the secondary cache using the second virtual disk,

wherein the plurality of extents further comprise a second group of extents for creating a second disk array, and the second virtual disk is created by the hardware management module based on at least one spare extent from the second group of extents, the at least one spare extent from the second group of extents being reserved for rebuilding the second disk array.

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

in response to the secondary cache being created and third information about a third virtual disk in the storage system being received from the hardware management module, extending the secondary cache using the third virtual disk,

wherein the plurality of extents further comprise a third group of extents for extending the first disk array, and the third virtual disk is created by the hardware management module based on at least one spare extent from the third group of extents, the at least one spare extent from the third group of extents being reserved for rebuilding the extended first disk array.

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

in response to receiving, from the hardware management module, an indication that the first virtual disk fails, removing the first virtual disk from the secondary cache.

12. An apparatus for managing a cache, comprising:

at least one processing unit;

at least one memory, the at least one memory being coupled to the at least one processing unit and has instructions stored thereon and executed by the at least one processing unit, the instructions, when executed by the at least one processing unit, causing the device to perform acts, the acts comprising:

creating a primary cache in a storage system;

in response to the primary cache being created, sending a first request to a hardware management module in the storage system to obtain first information about a first virtual disk in the storage system,

wherein the storage system comprises at least one physical disk having a plurality of extents, the plurality of extents comprise a first group of extents for creating a first disk array, and the first virtual disk is created by the hardware management module based on at least one spare extent from the first group of extents, the at least one spare extent from the first group of extents being reserved for rebuilding the first disk array;

in response to receiving the first information from the hardware management module, creating a secondary cache using the first virtual disk; and

in response to an available capacity of the primary cache being below a predetermined threshold, flushing at least one cache page in the primary cache to the secondary cache.

13. The apparatus according to claim 12 , wherein the primary cache is a read-write cache, and the secondary cache is a read-only cache.

14. The apparatus according to claim 12 , wherein the acts further comprise:

in response to receiving, from the hardware management module, a second request to remove the first virtual disk from the secondary cache to rebuild the first disk array with the at least one spare extent, removing the first virtual disk from the secondary cache.

15. The apparatus according to claim 12 , wherein the first information includes at least one of an identifier and a capacity of the first virtual disk.

16. The apparatus according to claim 13 , wherein the acts further comprise:

in response to receiving, from an application, a third request to write first data to the storage system, determining whether the a first cache page for caching data in an address to which the first data is to be written is present in the primary cache; and

in response to determining that the first cache page is present in the primary cache, writing the first data to the first cache page.

17. The apparatus according to claim 16 , wherein the acts further comprise:

in response to determining that the first cache page is absent from the primary cache, determining whether a second cache page for caching data in an address to which the first data is to be written is present in the secondary cache; and

in response to determining that the second cache page is absent from the secondary cache, writing the first data into the at least one physical disk.

18. The apparatus according to claim 17 , wherein the acts further comprise:

in response to determining that the second cache page is present in the secondary cache, invalidating the second cache page;

allocating, in the primary cache, a third cache page for caching data in the address to which the first data is to be written; and

writing the first data into the third cache page.

19. The apparatus according to claim 13 , wherein flushing the at least one cache page in the primary cache to the secondary cache comprises:

in response to the available capacity of the primary cache being below the predetermined threshold, determining, from the primary cache, the at least one cache page that does not need to be flushed to the at least one physical disk; and

flushing the at least one cache page to the secondary cache.

20. The apparatus according to claim 12 , wherein the acts further comprise:

in response to the secondary cache being created and second information about a second virtual disk in the storage system being received from the hardware management module, extending the secondary cache using the second virtual disk,

wherein the plurality of extents further comprise a second group of extents for creating a second disk array, and the second virtual disk is created by the hardware management module based on at least one spare extent from the second group of extents, the at least one spare extent from the second group of extents being reserved for rebuilding the second disk array.

21. The apparatus according to claim 12 , wherein the acts further comprise:

in response to the secondary cache being created and third information about a third virtual disk in the storage system being received from the hardware management module, extending the secondary cache using the third virtual disk,

wherein the plurality of extents further comprise a third group of extents for extending the first disk array, and the third virtual disk is created by the hardware management module based on at least one spare extent from the third group of extents, the at least one spare extent from the third group of extents being reserved for rebuilding the extended first disk array.

22. The apparatus according to claim 12 , wherein the acts further comprise:

in response to receiving, from the hardware management module, an indication that the first virtual disk fails, removing the first virtual disk from the secondary cache.

23. A computer program product having a non-transitory computer readable medium which stores a set of instructions to manage a cache; the set of instructions, when carried out by computerized circuitry, causing the computerized circuitry to perform a method of:

creating a primary cache by a cache management module in a storage system;

in response to the primary cache being created, sending a first request to a hardware management module in the storage system to obtain first information about a first virtual disk in the storage system,

wherein the storage system comprises at least one physical disk having a plurality of extents, the plurality of extents comprise a first group of extents for creating a first disk array, and the first virtual disk is created by the hardware management module based on at least one spare extent from the first group of extents, the at least one spare extent from the first group of extents being reserved for rebuilding the first disk array;

in response to receiving the first information from the hardware management module, creating a secondary cache using the first virtual disk; and

in response to an available capacity of the primary cache being below a predetermined threshold, flushing at least one cache page in the primary cache to the secondary cache.

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 Jul 9, 2019
From: LI, XIONGCHENG; DONG, JIBING; GAO, HONGPO; KANG, JIANBIN; XU, XINLEI; GAO, JIAN
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 049699/0117 →