IP Library Granted Patent US 12,050,807
Granted Patent B2
US 12,050,807 · App. 17/239,281 · Granted Jul 30, 2024

Memory management system and method

Inventors: Bruce E. Caram (Hudson, MA); Vamsi K. Vankamamidi (Hopkinton, MA); Philippe Armangau (Acton, MA); Ajay Karri (South Grafton, MA)
Assignee: EMC IP Holding Company, LLC
G06F3/0659G06F3/0614G06F3/0635G06F3/0653G06F3/067
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 12,050,807
App. No.
17/239,281
Granted
Jul 30, 2024
Kind
B2
Abstract

A method, computer program product, and computing system for defining a quantity of discrete storage portions within a storage system; entering an expansion mode during which the discrete storage portions are incrementally assigned to at least one processing node until a first assignment level target is achieved; once the first assignment level target is achieved, entering a utilization mode during which the utilization of the assigned discrete portions is increased until a first utilization level target is achieved; and once the first utilization level target is achieved, reentering the expansion mode during which additional discrete storage portions are incrementally assigned to the at least one processing node until a second assignment level target is achieved.

Claims (51)

1. A computer-implemented method, executed on a computing device, comprising:

defining a quantity of discrete storage portions within a storage platform of a storage system;

entering a first expansion mode during which the discrete storage portions are incrementally assigned between a plurality of processing nodes of the storage system, for storing content, until a first assignment level target is achieved for the discrete storage portions;

once the first assignment level target is achieved, entering a utilization mode that is separate from the first expansion mode during which the utilization of the assigned discrete storage portions is increased by backfilling unused gaps within the assigned discrete storage portions with new inbound content broken into smaller portions until a first utilization level target is achieved;

once the first utilization level target is achieved, switching from the utilization mode to the first expansion mode during which additional discrete storage portions are incrementally assigned between the plurality of processing nodes until a second assignment level target is achieved for the discrete storage portions,

wherein when incrementally assigning the discrete storage portions between the plurality of processing nodes of the storage system, determining if the discrete storage portion being assigned is a last available discrete storage portion within the storage system; and

in response to determining the last available discrete storage portion, entering a second expansion mode during which the last available discrete storage portion is incrementally assigned by enabling each of the plurality of processing nodes to access and assign at least a sub-portion of a plurality of discrete sub-portions of the last discrete storage portion at a time for storing the content, until an assignment level expands to 100%.

2. The computer-implemented method of claim 1 further comprising:

once the second assignment level target is achieved, reentering the utilization mode during which the utilization of the assigned discrete storage portions is increased until a second utilization level target is achieved.

3. The computer-implemented method of claim 2 further comprising:

once the second utilization level target is achieved, reentering the first expansion mode one or more additional times during which additional discrete storage portions are incrementally assigned to the at least one processing node until one or more additional assignment level targets are achieved; and

once the one or more additional assignment level targets are achieved, reentering the utilization mode one or more additional times during which the utilization of the assigned discrete storage portions is increased until one or more additional utilization level targets are achieved.

4. The computer-implemented method of claim 1 wherein the at least one processing node is one of a plurality of processing nodes within a storage appliance.

5. The computer-implemented method of claim 4 wherein the plurality of processing nodes within the storage appliance each enter the first expansion mode at the same time.

6. The computer-implemented method of claim 4 wherein the plurality of processing nodes within the storage appliance each enter the utilization mode at the same time.

7. The computer-implemented method of claim 1 further comprising:

if the discrete storage portion is the last available discrete storage portion within the storage system, enabling each of the plurality of processing nodes to access at least the sub-portion of the last discrete storage portion.

8. A computer program product residing on a non-transitory computer readable medium having a plurality of instructions stored thereon which, when executed by a processor, cause the processor to perform operations comprising:

defining a quantity of discrete storage portions within a storage platform of a storage system;

entering a first expansion mode during which the discrete storage portions are incrementally assigned between a plurality of processing nodes of the storage system, for storing content, until a first assignment level target is achieved for the discrete storage portions;

once the first assignment level target is achieved, entering a utilization mode that is separate from the first expansion mode during which the utilization of the assigned discrete storage portions is increased by backfilling unused gaps within the assigned discrete storage portions with new inbound content broken into smaller portions until a first utilization level target is achieved;

once the first utilization level target is achieved, switching from the utilization mode to the first expansion mode during which additional discrete storage portions are incrementally assigned between the plurality of processing nodes until a second assignment level target is achieved for the discrete storage portions,

wherein when incrementally assigning the discrete storage portions between the plurality of processing nodes of the storage system, determining if the discrete storage portion being assigned is a last available discrete storage portion within the storage system; and

in response to determining the last available discrete storage portion, entering a second expansion mode during which the last available discrete storage portion is incrementally assigned by enabling each of the plurality of processing nodes to access and assign at least a sub-portion of a plurality of discrete sub-portions of the last discrete storage portion at a time for storing the content, until an assignment level expands to 100%.

9. The computer program product of claim 8 further comprising:

once the second assignment level target is achieved, reentering the utilization mode during which the utilization of the assigned discrete storage portions is increased until a second utilization level target is achieved.

10. The computer program product of claim 9 further comprising:

once the second utilization level target is achieved, reentering the first expansion mode one or more additional times during which additional discrete storage portions are incrementally assigned to the at least one processing node until one or more additional assignment level targets are achieved; and

once the one or more additional assignment level targets are achieved, reentering the utilization mode one or more additional times during which the utilization of the assigned discrete storage portions is increased until one or more additional utilization level targets are achieved.

11. The computer program product of claim 8 wherein the at least one processing node is one of a plurality of processing nodes within a storage appliance.

12. The computer program product of claim 11 wherein the plurality of processing nodes within the storage appliance each enter the first expansion mode at the same time.

13. The computer program product of claim 11 wherein the plurality of processing nodes within the storage appliance each enter the utilization mode at the same time.

14. The computer program product of claim 8 further comprising:

if the discrete storage portion is the last available discrete storage portion within the storage system, enabling each of the plurality of processing nodes to access at least the sub-portion of the last discrete storage portion.

15. A computing system including a processor and memory configured to perform operations comprising:

defining a quantity of discrete storage portions within a storage platform of a storage system;

entering a first expansion mode during which the discrete storage portions are incrementally assigned between a plurality of processing nodes of the storage system, for storing content, until a first assignment level target is achieved for the discrete storage portions;

once the first assignment level target is achieved, entering a utilization mode that is separate from the first expansion mode during which the utilization of the assigned discrete storage portions is increased by backfilling unused gaps within the assigned discrete storage portions with new inbound content broken into smaller portions until a first utilization level target is achieved;

once the first utilization level target is achieved, switching from the utilization mode to the first expansion mode during which additional discrete storage portions are incrementally assigned between the plurality of processing nodes until a second assignment level target is achieved for the discrete storage portions,

wherein when incrementally assigning the discrete storage portions between the plurality of processing nodes of the storage system, determining if the discrete storage portion being assigned is a last available discrete storage portion within the storage system; and

in response to determining the last available discrete storage portion, entering a second expansion mode during which the last available discrete storage portion is incrementally assigned by enabling each of the plurality of processing nodes to access and assign at least a sub-portion of a plurality of discrete sub-portions of the last discrete storage portion at a time for storing the content, until an assignment level expands to 100%.

16. The computing system of claim 15 further comprising:

once the second assignment level target is achieved, reentering the utilization mode during which the utilization of the assigned discrete storage portions is increased until a second utilization level target is achieved.

17. The computing system of claim 16 further comprising:

once the second utilization level target is achieved, reentering the first expansion mode one or more additional times during which additional discrete storage portions are incrementally assigned to the at least one processing node until one or more additional assignment level targets are achieved; and

once the one or more additional assignment level targets are achieved, reentering the utilization mode one or more additional times during which the utilization of the assigned discrete storage portions is increased until one or more additional utilization level targets are achieved.

18. The computing system of claim 15 wherein the at least one processing node is one of a plurality of processing nodes within a storage appliance.

19. The computing system of claim 18 wherein the plurality of processing nodes within the storage appliance each enter the first expansion mode at the same time.

20. The computing system of claim 18 wherein the plurality of processing nodes within the storage appliance each enter the utilization mode at the same time.

21. The computing system of claim 15 further comprising:

if the discrete storage portion is the last available discrete storage portion within the storage system, enabling each of the plurality of processing nodes to access at least the sub-portion of the last discrete storage portion.

Assignments (10)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (056295/0280) Recorded Jun 10, 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 062022/0255 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (056295/0124) Recorded Jun 10, 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 062022/0012 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (056295/0001) Recorded Jun 10, 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 062021/0844 →
RELEASE OF SECURITY INTEREST Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 058297/0332 →
SECURITY INTEREST Recorded May 19, 2021
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 056295/0124 →
SECURITY INTEREST Recorded May 19, 2021
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 056295/0001 →
SECURITY INTEREST Recorded May 19, 2021
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 056295/0280 →
CORRECTIVE ASSIGNMENT TO CORRECT THE MISSING PATENTS THAT WERE ON THE ORIGINAL SCHEDULED SUBMITTED BUT NOT ENTERED PREVIOUSLY RECORDED AT REEL: 056250 FRAME: 0541. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded May 17, 2021
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 056311/0781 →
SECURITY AGREEMENT Recorded May 14, 2021
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 056250/0541 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 23, 2021
From: CARAM, BRUCE E.; VANKAMAMIDI, VAMSI K.; ARMANGAU, PHILIPPE; KARRI, AJAY
To: EMC IP HOLDING COMPANY, LLC
Reel/Frame 056026/0655 →