IP Library Granted Patent US 11,630,584
Granted Patent B2
US 11,630,584 · App. 16/674,555 · Granted Apr 18, 2023

Storage management system and method

Inventors: Vamsi K. Vankamamidi (Newton, MA); Philippe Armangau (Acton, MA); Bruce E. Caram (Hudson, MA); Ajay Karri (South Grafton, MA)
Assignee: EMC IP HOLDING COMPANY, LLC
G06F3/0617G06F3/067G06F3/0628G06F3/0689G06F16/144G06F16/148G06F16/156G06F16/168G06F16/1847G06F16/3325
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,630,584
App. No.
16/674,555
Granted
Apr 18, 2023
Kind
B2
Abstract

A method, computer program product, and computing system for maintaining a first cursor pointer for a memory system, wherein the first cursor pointer concerns a first search criteria and identifies an initial first cursor starting location; receiving a first search request for the memory system that satisfies the first search criteria; executing the first search request within an initial first search window starting at the initial first cursor starting location; and updating the first cursor pointer to identify an updated first cursor starting location based, at least in part, upon the initial first search window.

Claims (63)

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

maintaining a first cursor pointer for a memory system, wherein the first cursor pointer concerns a first search criteria and identifies an initial first cursor starting location, wherein the first search criteria includes searching for one or more blocks within the memory system, wherein the one or more blocks include a predefined amount of bytes;

receiving a first search request for the memory system that satisfies the first search criteria;

executing the first search request within an initial first search window starting at the initial first cursor starting location, wherein executing the first search request within the initial first search window starting at the initial first cursor starting location includes locating at least one unused block from the one or more blocks;

updating the first cursor pointer to identify an updated first cursor starting location based, at least in part, upon the initial first search window; and

in response to the first search request locating only used blocks, executing the first search request within an expanded first search window, wherein the expanded first search window includes a sum of the first search window and a search window of one or more blocks added sequentially from the first search window.

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

in response to the first search request locating the at least one unused block, satisfying the first search request.

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

revising the updated first cursor starting location based, at least in part, upon the expanded first search window.

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

receiving a new search request for the memory system that satisfies the first search criteria;

executing the new search request within a new first search window starting at the updated first cursor starting location; and

updating the first cursor pointer to identify a new first cursor starting location based, at least in part, upon the new first search window.

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

maintaining a second cursor pointer for the memory system, wherein the second cursor pointer concerns a second search criteria and identifies an initial second cursor starting location, wherein the second search criteria includes searching for one or more blocks with a defined storage utilization;

receiving a second search request for the memory system that satisfies the second search criteria;

executing the second search request within an initial second search window starting at the initial second cursor starting location;

updating the second cursor pointer to identify an updated second cursor starting location based, at least in part, upon the initial second search window; and

in response to the second search request locating two or more blocks that satisfied the second search criteria, combining the two or more blocks to generate at least one additional unused block from the one or more blocks.

6. The computer-implemented method of claim 1 wherein the memory system is a portion of a storage platform.

7. 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:

maintaining a first cursor pointer for a memory system, wherein the first cursor pointer concerns a first search criteria and identifies an initial first cursor starting location, wherein the first search criteria includes searching for one or more blocks within the memory system, wherein the one or more blocks include a predefined amount of bytes;

receiving a first search request for the memory system that satisfies the first search criteria;

executing the first search request within an initial first search window starting at the initial first cursor starting location, wherein executing the first search request within the initial first search window starting at the initial first cursor starting location includes locating at least one unused block from the one or more blocks;

updating the first cursor pointer to identify an updated first cursor starting location based, at least in part, upon the initial first search window; and

in response to the first search request locating only used blocks, executing the first search request within an expanded first search window, wherein the expanded first search window includes a sum of the first search window and a search window of one or more blocks added sequentially from the first search window.

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

in response to the first search request locating the at least one unused blocks, satisfying the first search request.

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

revising the updated first cursor starting location based, at least in part, upon the expanded first search window.

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

receiving a new search request for the memory system that satisfies the first search criteria;

executing the new search request within a new first search window starting at the updated first cursor starting location; and

updating the first cursor pointer to identify a new first cursor starting location based, at least in part, upon the new first search window.

11. The computer program product of claim 7 further comprising:

maintaining a second cursor pointer for the memory system, wherein the second cursor pointer concerns a second search criteria and identifies an initial second cursor starting location, wherein the second search criteria includes searching for one or more blocks with a defined storage utilization;

receiving a second search request for the memory system that satisfies the second search criteria;

executing the second search request within an initial second search window starting at the initial second cursor starting location;

updating the second cursor pointer to identify an updated second cursor starting location based, at least in part, upon the initial second search window; and

in response to the second search request locating two or more blocks that satisfied the second search criteria, combining the two or more blocks to generate at least one additional unused block from the one or more blocks.

12. The computer program product of claim 7 wherein the memory system is a portion of a storage platform.

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

maintaining a first cursor pointer for a memory system, wherein the first cursor pointer concerns a first search criteria and identifies an initial first cursor starting location, wherein the first search criteria includes searching for one or more blocks within the memory system, wherein the one or more blocks include a predefined amount of bytes;

receiving a first search request for the memory system that satisfies the first search criteria;

executing the first search request within an initial first search window starting at the initial first cursor starting location, wherein executing the first search request within the initial first search window starting at the initial first cursor starting location includes locating at least one unused block from the one or more blocks;

updating the first cursor pointer to identify an updated first cursor starting location based, at least in part, upon the initial first search window; and

in response to the first search request locating only used blocks, if the first search request was not executed successfully, executing the first search request within an expanded first search window, wherein the expanded first search window includes a sum of the first search window and a search window of one or more blocks added sequentially from the first search window.

14. The computing system of claim 13 further comprising:

in response to the first search request locating the at least one unused blocks, satisfying the first search request.

15. The computing system of claim 13 further comprising:

revising the updated first cursor starting location based, at least in part, upon the expanded first search window.

16. The computing system of claim 13 further comprising:

receiving a new search request for the memory system that satisfies the first search criteria;

executing the new search request within a new first search window starting at the updated first cursor starting location; and

updating the first cursor pointer to identify a new first cursor starting location based, at least in part, upon the new first search window.

17. The computing system of claim 13 further comprising:

maintaining a second cursor pointer for the memory system, wherein the second cursor pointer concerns a second search criteria and identifies an initial second cursor starting location, wherein the second search criteria includes searching for one or more blocks with a defined storage utilization;

receiving a second search request for the memory system that satisfies the second search criteria;

executing the second search request within an initial second search window starting at the initial second cursor starting location;

updating the second cursor pointer to identify an updated second cursor starting location based, at least in part, upon the initial second search window; and

in response to the second search request locating two or more blocks that satisfied the second search criteria, combining the two or more blocks to generate at least one additional unused block from the one or more blocks.

18. The computing system of claim 13 wherein the memory system is a portion of a storage platform.

Assignments (9)
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 (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 (052216/0758) 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 060438/0680 →
RELEASE OF SECURITY INTEREST AF REEL 052243 FRAME 0773 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 058001/0152 →
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 →
SECURITY AGREEMENT Recorded Mar 26, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 052243/0773 →
PATENT SECURITY AGREEMENT (NOTES) Recorded Mar 24, 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 052216/0758 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 5, 2019
From: VANKAMAMIDI, VAMSI K.; ARMANGAU, PHILIPPE; CARAM, BRUCE E.; KARRI, AJAY
To: EMC IP HOLDING COMPANY, LLC
Reel/Frame 050920/0121 →