IP Library Granted Patent US 9,400,610
Granted Patent B1
US 9,400,610 · App. 13/495,926 · Granted Jul 26, 2016

Method for cleaning a delta storage system

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,400,610
App. No.
13/495,926
Granted
Jul 26, 2016
Kind
B1
Abstract

A computer-implemented method and system for performing garbage collection in a delta compressed data storage system selects a file recipe to traverse to identify live data chunks and selects a chunk identifier from the file recipe. The chunk identifier is added to a set of live data chunks. Delta references in an entry of an index corresponding to the chunk identifier are added to the set of live data chunks. Data chunks in a data storage system not identified by the set of live data chunks are then discarded.

Claims (55)

1. A computer-implemented method for performing garbage collection in a delta compressed data storage system, the method comprising:

selecting a file recipe for each file of a plurality of files in the delta compressed data storage system, wherein each file in the plurality of files has been segmented into data chunks, and each file recipe comprises a plurality of identifiers of data chunks that comprise the file;

traversing the selected file recipe to determine the plurality of data chunk identifiers of the data chunks of the file;

for each data chunk identifier in the selected file recipe:

adding the data chunk identifier to a set of live data chunks;

determining whether the data chunk identifier comprises a base chunk identifier identifying a base chunk and whether the file recipe contains a delta reference identifying a data chunk that is delta encoded relative to the base chunk;

adding the delta reference to the set of live data chunks, in response to determining that the data chunk identifier comprises a base chunk identifier and the file recipe contains a delta reference identifying a data chunk that is delta encoded relative to the base data chunk; and

discarding data chunks in the delta compressed data storage system that are not identified by the set of live data chunks.

2. The method of claim 1 , wherein the base chunk identifier references a previously stored data chunk that was selected as a base chunk for use in delta encoding the data chunk based upon a similarity value between the data chunk to be delta encoded and the previously stored data chunk.

3. The method of claim 1 , further comprising:

eliminating duplicate data chunks in the set of live data chunks by retaining a base chunk version and discarding a delta chunk version of a duplicate data chunk.

4. The method of claim 1 , wherein discarding the data chunks further comprises:

copying all data chunks in the set of live data chunks and deleting dead data chunks that are not in the set of live data chunks;

sanitizing the dead data chunks by decompressing live data chunks referencing the dead data chunks.

5. The method of claim 1 , wherein discarding the data chunks further comprises:

determining a diff of the set of live data chunks and referenced data chunks from a previous set of live data chunks and referenced data chunks; and

discarding data chunks not directly or indirectly referenced by the set of live data chunks and the diff.

6. A non-transitory computer-readable storage medium having instructions stored therein, which when executed by a computer, cause the computer to perform operations for performing garbage collection in delta compressed data storage system, the operations comprising:

selecting a file recipe for each file of a plurality of files in the delta compressed data storage system, wherein each file in the plurality of files has been segmented into data chunks, and each file recipe comprises a plurality of identifiers of data chunks that comprise the file;

traversing the selected file recipe to determine the plurality of data chunk identifiers of the data chunks of the file;

for each data chunk identifier in the file recipe:

adding the data chunk identifier to a set of live data chunks;

determining whether the data chunk identifier comprises a base chunk identifier identifying a base chunk and whether the file recipe contains a delta reference identifying a data chunk that is delta encoded relative to the base chunk;

adding the delta reference to the set of live data chunks, in response to determining that the chunk identifier contains a delta reference identifying a data chunk that is delta encoded to the data chunk; and

discarding data chunks in the delta compressed data storage system that are not identified by the set of live data chunks.

7. The non-transitory computer-readable storage medium of claim 6 , wherein the base chunk identifier references a previously stored data chunk that was selected as a base chunk for use in delta encoding the data chunk based upon a similarity value between the data chunk to be delta encoded and the previously stored data chunk.

8. The non-transitory computer-readable storage medium of claim 6 , wherein the operations further comprise:

eliminating duplicate data chunks in the set of live data chunks by retaining a base chunk version and discarding a delta chunk version of a duplicate data chunk.

9. The non-transitory computer-readable storage medium of claim 6 , wherein discarding the data chunks further comprises:

copying all data chunks in the set of live data chunks and deleting dead data chunks that are not in the set of live data chunks; and

sanitizing the dead data chunks by decompressing live data chunks referencing the dead data chunks.

10. The non-transitory computer-readable storage medium of claim 6 , wherein discarding the data chunks further comprises:

determining a diff of the set of live data chunks and referenced data chunks from a previous set of live data chunks and referenced data chunks; and

discarding data chunks not directly or indirectly referenced by the set of live data chunks and the diff.

11. A delta compression system, comprising:

a delta processing module to delta compresses data chunks;

a data storage system to store delta compressed data chunks; and

a garbage collection module coupled to the data storage system configured to:

select a file recipe for each file of a plurality of files in the delta compression system, wherein each file in the plurality of files has been segmented into data chunks, and each file recipe comprises a plurality of identifiers of data chunks that comprise the file;

traverse the selected file recipe to determine the plurality of data chunk identifiers of the data chunks of the file;

for each data chunk identifier in the selected file recipe:

add the data chunk to a set of live data chunks,

determine whether the chunk identifier comprises a base chunk identifier identifying a base chunk and whether the file recipe contains a delta reference identifying a data chunk that is delta encoded relative to the base chunk,

adding the delta reference to the set of live data chunks in response to determining that the data chunk identifier contains a reference identifying a data chunk that is delta encoded relative to the data chunk,

the garbage collection module is configured to discard all data chunks that in the delta compression system that are not identified by the set of live data chunks.

12. The delta compression system of claim 11 , wherein the base chunk identifier references a previously stored data chunk that was selected as a base chunk for use in delta encoding the data chunk based upon a similarity value between the data chunk to be delta encoded and the previously stored data chunk.

13. The delta compression system of claim 11 , further comprising:

a deduplication module to eliminate duplicate data chunks in the set of live data chunks by retaining a base chunk version and discarding a delta chunk version of a duplicate data chunk.

14. The delta compression system of claim 11 , wherein discarding data chunks further comprises:

copying all data chunks in the set of live data chunks and deleting dead data chunks that are in the live set of live data chunks; and

a sanitization module to sanitize the dead data chunks by decompressing live data chunks referencing the dead data chunks.

15. The delta compression system of claim 11 , wherein the garbage collection module determines a diff of the set of live data chunks and referenced data chunks from a previous set of live data chunks and referenced data chunks and discards data chunks not directly or indirectly referenced by the set of live data chunks and the diff.

16. The method of claim 1 , wherein the delta reference is retrieved from an entry of an index corresponding to the data chunk.

17. The non-transitory computer-readable storage medium of claim 6 , wherein the delta reference is retrieved from an entry of an index corresponding to the data chunk.

18. The system of claim 11 , wherein the delta reference is retrieved from an entry of an index corresponding to the data chunk.

Assignments (8)
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 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 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: DELL USA L.P.; ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; 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 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 Oct 3, 2016
From: EMC CORPORATION
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 040206/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 Jul 13, 2012
From: WALLACE, GRANT R.; SHILANE, PHILIP N.
To: EMC CORPORATION
Reel/Frame 028547/0398 →