IP Library Granted Patent US 10,261,908
Granted Patent B2
US 10,261,908 · App. 15/387,790 · Granted Apr 16, 2019

Method and apparatus for expanding cache size for cache array

Inventors: Liam Xiongcheng Li (Beijing, CN); Xinlei Xu (Beijing, CN); Lifeng Yang (Beijing, CN); Huadong Li (Beijing, CN); Jian Gao (Beijing, CN)
Assignee: EMC IP Holding Company LLC
G06F12/0871G06F3/0605G06F3/0631G06F3/0632G06F3/0683G06F2212/1012G06F2212/262G06F2212/305G06F2212/604
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,261,908
App. No.
15/387,790
Filed
Dec 22, 2016
Granted
Apr 16, 2019
Kind
B2
Art Unit
2138
USPC
711/118
Abstract

There is provided a method and apparatus of expanding capacity for a cache array. The method includes in response to detecting that a first new cache disk is to be added to a first cache array, initializing the first new cache disk without disabling other cache disks in the first cache array; allocating a storage space for a cache page metadata based on a result of the initializing; storing the cache page metadata into an initialized directory logical unit number, DIR LUN; storing a copy of the cache page metadata from a memory into the DIR LUN to facilitate the first cache disk to be in a ready state; and in response to the first new cache disk being in the ready state, configuring the first new cache disk as being in an initialized state to expand the capacity of the first cache array.

Claims (80)

1. A method of expanding a capacity of a cache array, comprising:

in response to detecting that a first new cache disk is to be added to a first cache array, initializing the first new cache disk without disabling other cache disks in the first cache array;

allocating a storage space for a cache page metadata based on a result of the initializing;

storing the cache page metadata into an initialized directory logical unit number, DIR LUN;

storing a copy of the cache page metadata from a memory into the DIR LUN to facilitate the first cache disk to be in a ready state; and

in response to the first new cache disk being in the ready state, configuring the first new cache disk as being in an initialized state to expand the capacity of the first cache array;

if a failure occurs in adding the first new cache disk:

in response to a failure confirmation message being received by the first cache array, configuring the first cache array as being in a failure state, so that the first new cache disk can be removed from the first cache array;

wherein in response to a failure confirmation message being received by the first cache array, the first cache array is configured as being in a failure state, so that the first new cache disk can be removed from the first cache array comprises:

sending a failure message from the first cache array to the second cache array to indicate a failure occurring at any step of the capacity expansion of the first cache array;

in response to the failure message being accepted by the second cache array, configuring the first cache array as being in the failure state to enable the first new cache disk to be removed from the first cache array; and

in response to the failure message being rejected by the second cache array, configuring the first cache array as being in a waiting state to wait for the second cache array to receive the failure message,

wherein, if the capacity of the second cache array is unexpanded, the second cache array rejects the failure message from the first cache array, and

wherein, if the capacity of the second cache array is expanded, the second cache array receives the failure message from the first cache array.

2. The method according to claim 1 , wherein initializing the first new cache disk comprises:

creating a DIR LUN and a data logical unit number, DATA LUN.

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

detecting whether the first new cache disk is inserted into the first cache array; and

in response to detecting that the first new cache disk is inserted into the first cache array, determining whether the first new cache disk is to be added to the first cache array.

4. The method according to claim 3 , wherein the determining whether the first new cache disk is to be added to the first cache array comprises:

configuring a first count value and a second count value, wherein the first count value indicates a count value of pages that have been accessed and cached in the first cache array, and the second count value indicates a count value of pages that have been accessed but not promoted to the first cache array; and

if the first count value is less than the second count value, determining that the first new cache disk is to be added into the first cache array.

5. The method according to claim 1 , wherein in response to the first new cache disk being in the ready state, determining the first new cache disk as being in an initialized state to expand the capacity of the first cache array comprises:

in response to the first new cache disk being in the ready state and a second new cache disk in a second cache array also being in the ready state, expanding the capacity of the first cache array,

wherein the second cache array is configured as an peer cache array of the first cache array.

6. The method according to claim 5 , wherein in response to the first new cache disk being in the ready state and the second new cache disk in the second cache array also being in the ready state, expanding the capacity of the first cache array comprises:

in response to the first new cache disk being in the ready state, sending, from the first cache array to the second cache array, an indication indicating that the first new cache disk is in the ready state; and

in response to the first cache array receiving from the second cache array an indication indicating that the second new cache disk is also in the ready state, configuring the first new cache disk as being in the initialized state to expand the capacity of the first cache array.

7. An apparatus for expanding a capacity of cache array, comprising:

an initialization unit configured for initializing a first new cache disk in response to detecting the first new cache disk that is to be added to the first cache array, without disabling other cache disks in the first cache array;

a storage space allocating unit configured for allocating a storage space for a cache page metadata based on a result of the initializing;

a first writing unit configured for storing the cache page metadata into an initialized directory logical unit number, DIR LUN;

a second writing unit configured for storing a copy of the cache page metadata from a memory into the DIR LUN to facilitate the first cache disk to be in a ready state; and

a capacity expansion determining unit configured for configuring the first new cache disk as being in an initialized state in response to the first new cache disk being in the ready state, to expand the capacity of the first cache array;

a failure detection unit configured for:

if a failure occurs in adding the first new cache disk:

in response to a failure confirmation message being received by the first cache array, configuring the first cache array to be a the failure state, so that the first new cache disk can be removed from the first cache array;

wherein the failure detection unit comprises:

a failure message sending unit configured for sending the failure message from the first cache array to the second cache array to indicate a failure occurs at any of the capacity expansion steps for the first cache array; and

an identifying unit configured for

in response to the failure message being received by the second cache array, configuring the first cache array as being in the failure state to enable the first new cache disk to be removed from the first cache array; and,

in response to the failure message being rejected by the second cache array , configuring the first cache array as being in a waiting state to wait for the second cache array to receive the failure message,

wherein if the capacity expansion of the second cache array is unexpanded, the second cache array rejects the failure message from the first cache array, and

wherein, if the capacity expansion of the second cache array is expanded, the second cache array receives the failure message from the first cache array.

8. The apparatus according to claim 7 , wherein the initialization unit is configured for creating a DIR LUN and a data logical unit number, DATA LUN.

9. The apparatus according to claim 7 , further comprising:

a detecting unit configured for detecting whether the first new cache disk is inserted into the first cache array; and

a first judging unit configured for determining whether the first new cache disk is to be added to the first cache array, in response to detecting that the first new cache disk is inserted into the first cache array.

10. The apparatus according to claim 9 , the first judging unit comprises:

a count value configuration unit configured for configuring the first count value and the second count value, wherein the first count value indicates a count value of pages that have been accessed and cached in the first cache array, and the second count value indicates a count value of the pages that have been accessed but not promoted to the first cache array; and

a second judging unit configured for determining that the first new cache disk is to be added into the first cache array, if the first count value is less than the second count value.

11. The apparatus according to claim 7 , wherein the capacity expansion determining unit comprises:

a first determining unit configured for expanding the capacity of the first new cache array in response to the first new cache disk being in the ready state and a second new cache disk in a second cache array also being in the ready state,

wherein the second cache array is configured as an peer cache array of the first cache array.

12. The apparatus according to claim 11 , wherein the determining unit comprises:

a sending unit configured for sending, from the first cache array to the second cache array, an indication indicating that the first new cache disk is in the ready state, in response to the first new cache disk being in the ready state; and

a receiving unit configured for configuring the first new cache disk as being in the initialized state in response to the first cache array receiving from the second cache array an indication indicating that the second new cache disk is also in the ready state, to expand the capacity of the first cache array.

13. A computer program product for expanding a capacity of a cache array, the computer program product comprising:

a non-transitory computer readable medium encoded with computer-executable code, the code configured to enable the execution of:

in response to detecting that a first new cache disk is to be added to a first cache array, initializing the first new cache disk without disabling other cache disks in the first cache array;

allocating a storage space for a cache page metadata based on a result of the initializing;

storing the cache page metadata into an initialized directory logical unit number, DIR LUN;

storing a copy of the cache page metadata from a memory into the DIR LUN to facilitate the first cache disk to be in a ready state; and

in response to the first new cache disk being in the ready state, configuring the first new cache disk as being in an initialized state to expand the capacity of the first cache array;

if a failure occurs in adding the first new cache disk:

in response to a failure confirmation message being received by the first cache array, configuring the first cache array as being in a failure state, so that the first new cache disk can be removed from the first cache array;

wherein in response to a failure confirmation message being received by the first cache array, the first cache array is configured as being in a failure state, so that the first new cache disk can be removed from the first cache array comprises:

sending a failure message from the first cache array to the second cache array to indicate a failure occurring at any step of the capacity expansion of the first cache array;

in response to the failure message being accepted by the second cache array, configuring the first cache array as being in the failure state to enable the first new cache disk to be removed from the first cache array; and

in response to the failure message being rejected by the second cache array, configuring the first cache array as being in a waiting state to wait for the second cache array to receive the failure message,

wherein, if the capacity of the second cache array is unexpanded, the second cache array rejects the failure message from the first cache array, and

wherein, if the capacity of the second cache array is expanded, the second cache array receives the failure message from the first cache array.

14. The computer program product according to claim 13 , wherein initializing the first new cache disk comprises:

creating a DIR LUN and a data logical unit number, DATA LUN.

15. The computer program product according to claim 13 , wherein the code is further configured to enable the execution of:

detecting whether the first new cache disk is inserted into the first cache array; and

in response to detecting that the first new cache disk is inserted into the first cache array, determining whether the first new cache disk is to be added to the first cache array.

16. The computer program product according to claim 15 , wherein the determining whether the first new cache disk is to be added to the first cache array comprises:

configuring a first count value and a second count value, wherein the first count value indicates a count value of pages that have been accessed and cached in the first cache array, and the second count value indicates a count value of pages that have been accessed but not promoted to the first cache array; and

if the first count value is less than the second count value, determining that the first new cache disk is to be added into the first cache array.

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 (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 (043775/0082) 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
Reel/Frame 060958/0468 →
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 Sep 6, 2017
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 043772/0750 →
PATENT SECURITY AGREEMENT (NOTES) Recorded Sep 6, 2017
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 043775/0082 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 26, 2016
From: LI, LIAM XIONGCHENG; XU, XINLEI; YANG, LIFENG; LI, HUADONG; GAO, JIAN
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 040765/0988 →
Priority Claims (1)
CN 2015 1 1021242 · Dec 30, 2015 · national
Continuity (1)
Related Publication 20170192895A1 · Jul 6, 2017