IP Library Granted Patent US 9,600,409
Granted Patent B2
US 9,600,409 · App. 14/473,325 · Granted Mar 21, 2017

Method and system for garbage collection in a storage system based on longevity of stored data

Inventor: Jeffrey S. Bonwick (Los Altos, CA)
Assignee: EMC IP HOLDING COMPANY LLC
G06F12/0246G06F3/064G06F3/0604G06F3/0647G06F3/0679G06F12/0253G06F2003/0695G06F2212/7201
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 9,600,409
App. No.
14/473,325
Filed
Aug 29, 2014
Granted
Mar 21, 2017
Kind
B2
Art Unit
2138
USPC
711/103
Abstract

A method for managing data. The method includes receiving a first request to write data to persistent storage and in response to the first request, writing the data to a short-lived block in the persistent storage, where the data is short-lived data or data of unknown longevity. The method further includes performing a modified garbage collection operation that includes: selecting a first frag page in a first block, determining that the first frag page is live, and migrating, based on the determination that the first frag page is live, the first frag page to a long-lived block in the persistent storage, where the long-lived block is distinct from the short-lived block and wherein the long-lived block does not include any short-lived data.

Claims (68)

1. A non-transitory computer readable medium comprising instructions, which when executed by a processor perform a method, the method comprising:

receiving a first request to write data to persistent storage;

in response to the first request and after determining that the data is non-persistent data, writing the data to a first block in the persistent storage; and

performing a modified garbage collection operation comprising:

selecting a frag page in a second block;

determining that the frag page comprises persistent data, wherein the first frag page comprises persistent data when the first frag page is live, and

migrating, based on the determination that the first frag page comprises persistent data, the first frag page to a third block in the persistent storage,

wherein the third block is distinct from the first block and wherein the third block does not include any non-persistent data, and

receiving a second request to write second data to the persistent storage, wherein the second request comprises information which indicates that the second data is persistent data; and

in response to the second request, writing the second data to the third block in the persistent storage.

2. The non-transitory computer readable medium of claim 1 , wherein determining that the first frag page comprises persistent data, comprises:

generating a first derived physical address using a first TOC entry associated with the first frag page;

selecting a first stored physical address based on a first object ID and a first offset ID, wherein the first object ID and the first offset ID are located in the first TOC entry; and

determining, based on the first derived physical address matching the first stored physical address, that the first frag page is live.

3. The non-transitory computer readable medium of claim 2 , wherein selecting the first stored physical address further comprises:

performing a lookup in an in-memory data structure using the first object ID and the first offset ID to identify the first stored physical address.

4. The non-transitory computer readable medium of claim 1 , wherein the first block is a NAND block.

5. The non-transitory computer readable medium of claim 1 , wherein the persistent storage is solid-state memory.

6. The non-transitory computer readable medium of claim 1 , wherein the modified garbage collection operation further comprises:

selecting a fourth block in the persistent storage;

determining the fourth block comprises a plurality of live frag pages and does not include any dead frag pages; and

migrating each live page of the plurality of live frag pages to a fifth block.

7. The non-transitory computer readable medium of claim 6 , wherein the migration of each of the plurality of live frag pages is performed for wear-leveling.

8. The non-transitory computer readable medium of claim 1 , wherein at least a portion of the modified garbage collection operation is performed in parallel with at least one selected from a group consisting of receiving the first request to write data to the persistent storage and writing the data to the first block in the persistent storage.

9. A method for managing data, comprising:

receiving a first request to write data to persistent storage;

in response to the first request and determining that the data is non-persistent data, writing the data to a first block in the persistent storage; and

performing a modified garbage collection operation comprising:

selecting a first frag page in a second block,

determining that the first frag page comprises persistent data, wherein the first frag page comprises persistent data when the first frag page is live, and

migrating, based on the determination that the first frag page comprises persistent data, the first frag page to a third block in the persistent storage,

wherein the third block is distinct from the first block and wherein the third block does not include any non-persistent data, and

receiving a second request to write second data to the persistent storage, wherein the second request comprises information which indicates that the second data is persistent data; and

in response to the second request, writing the second data to the third block in the persistent storage.

10. The method of claim 9 , wherein determining that the first frag page comprises persistent data, comprises:

generating a first derived physical address using a first TOC entry associated with the first frag page;

selecting a first stored physical address based on a first object ID and a first offset ID, wherein the first object ID and the first offset ID are located in the first TOC entry; and

determining, based on the first derived physical address matching the first stored physical address, the first frag page is live.

11. The method of claim 10 , wherein selecting the first stored physical address further comprises:

performing a lookup in an in-memory data structure using the first object ID and the first offset ID to identify the first stored physical address.

12. The method of claim 9 , wherein the modified garbage collection operation further comprises:

selecting a fourth block in the persistent storage;

determining the fourth block comprises a plurality of live frag pages and does not include any dead frag pages; and

migrating each live page of the plurality of live frag pages to a fifth block.

13. The method of claim 12 , wherein the migration of each of the plurality of live frag pages is performed for wear-leveling.

14. The method of claim 9 , wherein at least a portion of the modified garbage collection operation is performed in parallel with at least one selected from a group consisting of receiving the first request to write data to the persistent storage and writing the data to the first block in the persistent storage.

15. A storage appliance, comprising:

persistent storage;

a non-transitory computer readable medium comprising instructions;

a processor, configured to execute the instructions, wherein the instructions when executed by the processor perform a method, the method comprising:

receiving a first request to write data to the persistent storage;

in response to the first request and after determining that the data is non-persistent data, writing the data to a first block in the persistent storage; and

performing a modified garbage collection operation comprising:

selecting a first frag page in a second block

determining that the first frag page comprises persistent data, wherein the first frag page comprises persistent data when the first frag page is live, and

migrating, based on the determination that the first frag page comprises persistent data, the first frag page to a third block in the persistent storage,

wherein the third block is distinct from the first block and wherein the third block does not include any non-persistent data, and

receiving a second request to write second data to the persistent storage, wherein the second request comprises information which indicates that the second data is persistent data; and

in response to the second request, writing the second data to the third block in the persistent storage

wherein at least a portion of the modified garbage collection operation is performed in parallel with at least one selected from a group consisting of receiving the first request to write data to the persistent storage and writing the data to the first block in the persistent storage.

16. The storage appliance of claim 15 , wherein the persistent storage comprises a plurality of solid state memory modules.

17. The storage appliance of claim 15 , wherein determining that the first frag page comprises persistent data, comprises:

generating a first derived physical address using a first TOC entry associated with the first frag page;

selecting a first stored physical address based on a first object ID and a first offset ID, wherein the first object ID and the first offset ID are located in the first TOC entry; and

determining, based on the first derived physical address matching the first stored physical address, that the first frag page is live.

18. The storage appliance of claim 17 , further comprising:

memory configured to store an in-memory data structure,

wherein selecting the first stored physical address further comprises performing a lookup in the in-memory data structure using the first object ID and the first offset ID to identify the first stored physical address.

Assignments (10)
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 (045455/0001) Recorded May 20, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO ASAP SOFTWARE EXPRESS, INC.); DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); EMC CORPORATION (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MAGINATICS LLC); EMC IP HOLDING COMPANY LLC (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MOZY, INC.); SCALEIO LLC
Reel/Frame 061753/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (040136/0001) Recorded Apr 26, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO ASAP SOFTWARE EXPRESS, INC.); DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC CORPORATION (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MAGINATICS LLC); EMC IP HOLDING COMPANY LLC (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MOZY, INC.); SCALEIO LLC
Reel/Frame 061324/0001 →
RELEASE OF SECURITY INTEREST Recorded Nov 3, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL USA L.P.; DELL INTERNATIONAL, L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; WYSE TECHNOLOGY L.L.C.
Reel/Frame 058216/0001 →
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 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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 29, 2016
From: EMC CORPORATION
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 040203/0001 →
SECURITY AGREEMENT Recorded Sep 21, 2016
From: ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; SPANNING CLOUD APPS LLC; WYSE TECHNOLOGY L.L.C.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 040136/0001 →
SECURITY AGREEMENT Recorded Sep 21, 2016
From: ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; SPANNING CLOUD APPS LLC; WYSE TECHNOLOGY L.L.C.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 040134/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 16, 2014
From: BONWICK, JEFFREY S.
To: EMC CORPORATION
Reel/Frame 033959/0681 →
Continuity (1)
Related Publication 20160062882A1 · Mar 3, 2016