IP Library Granted Patent US 11,340,805
Granted Patent B1
US 11,340,805 · App. 17/157,204 · Granted May 24, 2022

Greedy packing algorithm with caching and ranking

Inventors: Peng Wu (Westborough, MA); Rong Yu (West Roxbury, MA); Jingtong Liu (Natick, MA)
Assignee: Dell Products L.P.
G06F3/0631G06F3/061G06F3/067G06F3/0656
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,340,805
App. No.
17/157,204
Granted
May 24, 2022
Kind
B1
Abstract

A storage array packs multiple non-full-size front-end tracks into slices that contain multiple back-end tracks. A greedy first fit packing algorithm is used to find packing solutions that are cached and ranked. The cached, ranked packing solutions are used by attempting to find matches with bucketed front-end tracks to be relocated. New packing solutions are generated and cached when matches cannot be found. Packing solutions may be shared outside the domain in which they are discovered.

Claims (37)

1. A method comprising:

in a data storage system comprising a plurality of non-volatile drives and a plurality of interconnected compute nodes that access the drives:

the compute nodes presenting at least one logical production volume to hosts and managing access to the drives, wherein the hosts access the production volume using front-end tracks as allocation units, the compute nodes access the drives using back-end tracks as allocation units, and the drives are organized into same-size slices that are protection group members;

the compute nodes packing front-end tracks into ones of the slices by:

sorting the front-end tracks into buckets based on size;

matching cached packing solutions with a subset of the sorted front-end tracks; and

packing the subset of the sorted front-end tracks that match one of the cached packing solutions into a selected one of the slices.

2. The method of claim 1 comprising using a basic packing algorithm to pack remaining ones of the sorted front-end tracks in response to aggregate size of the remaining ones of the sorted front-end tracks being less than or equal to slice size.

3. The method of claim 2 comprising ranking the cached packing solutions based on number of times used to pack ones of the slices.

4. The method of claim 3 comprising attempting to match the subset of the sorted front-end tracks with the cached packing solutions in order by ranking.

5. The method of claim 1 comprising generating new packing solutions in response to failure to match any cached packing solutions with the subset of the sorted front-end tracks.

6. The method of claim 5 comprising retaining ones of the cached packing solutions that satisfy predetermined criteria and discarding ones of the cached packing solutions that fail to satisfy the predetermined criteria.

7. The method of claim 5 comprising generating the new packing solutions by running a greedy first fit algorithm.

8. An apparatus comprising:

a data storage system comprising:

a plurality of non-volatile drives; and

a plurality of interconnected compute nodes that present at least one logical production volume to hosts and manage access to the drives, wherein the hosts access the production volume using front-end tracks as allocation units and the compute nodes access the drives using back-end tracks as allocation units and the compute nodes packing front-end tracks into ones of the slices by:

sorting the front-end tracks into buckets based on size;

matching cached packing solutions with a subset of the sorted front-end tracks; and

packing the subset of the sorted front-end tracks that match one of the cached packing solutions into a selected one of the slices.

9. The apparatus of claim 8 wherein the compute nodes use a basic packing algorithm to pack remaining ones of the sorted front-end tracks in response to aggregate size of the remaining ones of the sorted front-end tracks being less than or equal to slice size.

10. The apparatus of claim 9 wherein the compute nodes rank the cached packing solutions based on number of times used to pack ones of the slices.

11. The apparatus of claim 10 wherein the compute nodes attempt to match the subset of the sorted front-end tracks with the cached packing solutions in order by ranking.

12. The apparatus of claim 8 wherein the compute nodes generate new packing solutions in response to failure to match any cached packing solutions with the subset of the sorted front-end tracks.

13. The apparatus of claim 12 wherein the compute nodes retain ones of the cached packing solutions that satisfy predetermined criteria and discarding ones of the cached packing solutions that fail to satisfy the predetermined criteria.

14. The apparatus of claim 12 wherein the compute nodes generate the new packing solutions by running a greedy first fit algorithm.

15. A computer-readable storage medium storing instructions that when executed by a computer cause the computer to perform a method for data packing, the method comprising:

compute nodes presenting at least one logical production volume to hosts, wherein the hosts access the production volume using front-end tracks as allocation units and the compute nodes access the drives using back-end tracks as allocation units; and

the compute nodes packing multiple front-end tracks into slices containing a plurality of back-end tracks by:

sorting the front-end tracks into buckets based on size;

matching cached packing solutions with a subset of the sorted front-end tracks; and

packing the subset of the sorted front-end tracks that match one of the cached packing solutions into a selected one of the slices.

16. The computer-readable storage medium of claim 15 wherein the method further comprises using a basic packing algorithm to pack remaining ones of the sorted front-end tracks in response to aggregate size of the remaining ones of the sorted front-end tracks being less than or equal to slice size.

17. The computer-readable storage medium of claim 16 wherein the method further comprises ranking the cached packing solutions based on number of times used to pack ones of the slices.

18. The computer-readable storage medium of claim 17 wherein the method further comprises attempting to match the subset of the sorted front-end tracks with the cached packing solutions in order by ranking.

19. The computer-readable storage medium of claim 15 wherein the method further comprises running a greedy first fit algorithm to generate new packing solutions in response to failure to match any cached packing solutions with the subset of the sorted front-end tracks.

20. The computer-readable storage medium of claim 19 wherein the method further comprises retaining ones of the cached packing solutions that satisfy predetermined criteria and discarding ones of the cached packing solutions that fail to satisfy the predetermined criteria.

Assignments (9)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (055479/0342) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
Reel/Frame 062021/0460 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (055479/0051) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
Reel/Frame 062021/0663 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (056136/0752) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
Reel/Frame 062021/0771 →
RELEASE OF SECURITY INTEREST AT REEL 055408 FRAME 0697 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 058001/0553 →
SECURITY INTEREST Recorded Mar 3, 2021
From: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 056136/0752 →
SECURITY INTEREST Recorded Mar 3, 2021
From: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 055479/0051 →
SECURITY INTEREST Recorded Mar 3, 2021
From: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 055479/0342 →
SECURITY AGREEMENT Recorded Feb 25, 2021
From: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 055408/0697 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 25, 2021
From: WU, PENG; YU, RONG; LIU, JINGTONG
To: EMC IP HOLDING COMANY LLC
Reel/Frame 055020/0373 →