IP Library Granted Patent US 11,157,419
Granted Patent B2
US 11,157,419 · App. 16/803,083 · Granted Oct 26, 2021

Defragmentation techniques

Inventors: Anoop Raghunathan (Ashland, MA); Roman Gramc (South Boston, MA); Stephen M. Lathrop (Milford, MA); David K. Aha (Norfolk, MA); Christopher W. Appleby (Holden, MA); Garret Bourke (Innishannon, IE); Jeremy J. O'Hare (Westborough, MA)
Assignee: EMC IP Holding Company LLC
G06F12/123G06F12/0684
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,157,419
App. No.
16/803,083
Granted
Oct 26, 2021
Kind
B2
Abstract

Techniques for processing data may include: receiving source physical storage allocation units that include valid data and one or more holes of unused physical storage, wherein each source physical storage allocation unit has an associated timestamp denoting a most recent destaging time of any data stored on the source physical storage allocation unit; determining an age for each source physical allocation unit based on the associated timestamp of the source physical allocation unit; for each source physical storage allocation unit, determining one of multiple age buckets for the source physical allocation unit based on the age of the source physical allocation unit; and for a first of the age buckets including two source physical allocation units, performing first processing including: relocating at least some valid data from the two source physical storage allocation units to a target physical storage allocation unit.

Claims (43)

1. A method of processing data comprising:

receiving a plurality of source physical storage allocation units, wherein each of the plurality of source physical storage allocation units includes valid data, includes one or more holes of unused physical storage, and has an associated timestamp denoting a most recent destaging time of any data stored on said each source physical storage allocation unit;

determining an age for each of the plurality of source physical allocation units based on the associated timestamp of said each source physical allocation unit;

for each of the plurality of source physical storage allocation units, determining one of a plurality of age buckets for said each source physical allocation unit based on the age of said each source physical allocation unit; and

for a first of the plurality of age buckets including two of the plurality of source physical allocation units, performing first processing including:

relocating at least some valid data from the two source physical storage allocation units to a target physical storage allocation unit.

2. The method of claim 1 , wherein the first processing includes determining a timestamp for the target physical storage allocation unit using at the two associated timestamps for the two source physical storage allocation units.

3. The method of claim 2 , wherein the timestamp for the target physical storage allocation unit is determined as a most recent one of the two associated timestamps for the two source physical storage allocation units.

4. The method of claim 1 , wherein the at least some valid data from the two source physical storage allocation units is stored on the target physical storage allocation unit in a compact packed format and wherein the target physical storage allocation unit has no holes of unused physical storage.

5. The method of claim 1 , wherein each of the plurality of source physical allocation units includes compressed data.

6. The method of claim 1 , further comprising:

receiving a plurality of write I/O operations that write first data to a plurality of logical addresses;

storing the first data in a cache;

obtaining the first data from the cache;

compressing the first data obtained from the cache and generating first compressed data;

storing the first compressed data on a first of the plurality of source physical storage allocation units in a compact packed format; and

determining the associated timestamp for the first source physical storage allocation unit denoting a destaging time of the first data stored on the first physical storage allocation unit.

7. The method of claim 6 , wherein, at a first point in time, each of the first source physical storage allocation unit and a second of the plurality of physical storage allocation units includes valid data stored in a compact packed format.

8. The method of claim 7 , wherein the first physical storage allocation unit includes a first number of compressed data portions and the second physical storage allocation unit includes a second number of compressed data portions, and wherein the second number is different than the first number.

9. The method of claim 7 , wherein the first physical storage allocation unit includes a first amount of compressed data and the second physical storage allocation unit includes a second amount of compressed data, and wherein the first amount is different than the second amount.

10. The method of claim 1 , wherein the target physical storage allocation unit is allocated from a first of a plurality of storage tiers, and wherein the first storage tier is selected in accordance with the first age bucket including the two source physical allocation units.

11. The method of claim 10 , wherein the first age bucket denotes an oldest age with respect to a plurality of ages associated with the plurality of age buckets.

12. The method of claim 11 , wherein the first storage tier is a lowest performance tier of the plurality of storage tiers.

13. The method of claim 10 , wherein the first age bucket denotes a youngest age with respect to a plurality of ages associated with the plurality of age buckets.

14. The method of claim 11 , wherein the plurality of storage tiers are ranked in terms of performance from a highest performance ranked one of the plurality of tiers to a lowest performance ranked one of the plurality of tiers, and wherein the first storage tier is any of the plurality of tiers other than the lowest performance ranked one of the plurality of storage tiers.

15. A system comprising:

one or more processors; and

a memory comprising code stored thereon that, when executed, performs a method of processing data comprising:

receiving a plurality of source physical storage allocation units, wherein each of the plurality of source physical storage allocation units includes valid data, includes one or more holes of unused physical storage, and has an associated timestamp denoting a most recent destaging time of any data stored on said each source physical storage allocation unit;

determining an age for each of the plurality of source physical allocation units based on the associated timestamp of said each source physical allocation unit;

for each of the plurality of source physical storage allocation units, determining one of a plurality of age buckets for said each source physical allocation unit based on the age of said each source physical allocation unit; and

for a first of the plurality of age buckets including two of the plurality of source physical allocation units, performing first processing including:

relocating at least some valid data from the two source physical storage allocation units to a target physical storage allocation unit.

16. A computer readable medium comprising code stored thereon that, when executed, performs a method of processing data comprising:

receiving a plurality of source physical storage allocation units, wherein each of the plurality of source physical storage allocation units includes valid data, includes one or more holes of unused physical storage, and has an associated timestamp denoting a most recent destaging time of any data stored on said each source physical storage allocation unit;

determining an age for each of the plurality of source physical allocation units based on the associated timestamp of said each source physical allocation unit;

for each of the plurality of source physical storage allocation units, determining one of a plurality of age buckets for said each source physical allocation unit based on the age of said each source physical allocation unit; and

for a first of the plurality of age buckets including two of the plurality of source physical allocation units, performing first processing including:

relocating at least some valid data from the two source physical storage allocation units to a target physical storage allocation unit.

17. The computer readable medium of claim 16 , wherein the first processing includes determining a timestamp for the target physical storage allocation unit using at the two associated timestamps for the two source physical storage allocation units.

18. The computer readable medium of claim 17 , wherein the timestamp for the target physical storage allocation unit is determined as a most recent one of the two associated timestamps for the two source physical storage allocation units.

19. The computer readable medium of claim 16 , wherein the at least some valid data from the two source physical storage allocation units is stored on the target physical storage allocation unit in a compact packed format and wherein the target physical storage allocation unit has no holes of unused physical storage.

20. The computer readable medium of claim 16 , wherein each of the plurality of source physical allocation units includes compressed data.

Assignments (13)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (052851/0917) 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 060436/0509 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (052852/0022) 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 060436/0582 →
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 (052851/0081) 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 060436/0441 →
RELEASE OF SECURITY INTEREST AT REEL 052771 FRAME 0906 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 058001/0298 →
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 INTEREST Recorded Jun 5, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC; THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 052851/0081 →
SECURITY INTEREST Recorded Jun 5, 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 052851/0917 →
SECURITY INTEREST Recorded Jun 5, 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 052852/0022 →
SECURITY AGREEMENT Recorded May 28, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 052771/0906 →
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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 27, 2020
From: RAGHUNATHAN, ANOOP; GRAMC, ROMAN; LATHROP, STEPHEN M.; AHA, DAVID K.; APPLEBY, CHRISTOPHER W.; BOURKE, GARRET; O'HARE, JEREMY J.
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 051950/0960 →