IP Library Granted Patent US 8,176,269
Granted Patent B2
US 8,176,269 · App. 12/165,540 · Granted May 8, 2012

Managing metadata for data blocks used in a deduplication 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 8,176,269
App. No.
12/165,540
Granted
May 8, 2012
Kind
B2
Abstract

Provided are a method, system, and article of manufacture for managing metadata for data blocks used in a deduplication system. File metadata is maintained for files having data blocks in a computer readable device. Data block metadata is maintained for each data block in the computer readable device. The data block metadata for one data block includes a data block reference and content identifier identifying content of the data block. The file metadata for each file includes the data block reference to each data block in the file. A determination is made of an unreferenced data block in the computer readable device that has become unreferenced. Indication is made that the data block metadata for the determined unreferenced data block as unreferenced metadata. The data block reference of the unreferenced metadata is maintained in the computer readable device in response to determining that a includes the data block indicated in the unreferenced metadata.

Claims (80)

1. A method, comprising:

maintaining file metadata for files having data blocks in a computer readable storage device, wherein at least one of the files has file metadata indicating that the file has multiple data blocks;

maintaining data block metadata for each data block in the computer readable storage device, wherein the data block metadata for one data block includes a data block reference and content identifier identifying content of the data block, wherein the file metadata for each file includes the data block reference to each data block in the file;

determining an unreferenced data block in the computer readable storage device that has become unreferenced;

indicating the data block metadata for the determined unreferenced data block as unreferenced data block metadata; and

adding the data block reference of the unreferenced data block metadata in the computer readable storage device to file metadata for an added file that includes multiple data blocks including one data block having content matching the content of the unreferenced data block according to the content identifier in the unreferenced data block metadata.

2. The method of claim 1 , further comprising:

removing indication of the unreferenced data block metadata for the unreferenced data block as unreferenced in response to referencing the data block represented by the unreferenced data block metadata in the file metadata for the added file;

determining whether to remove the unreferenced data block metadata; and

indicating the unreferenced data block metadata as removed in response to the determining to remove the unreferenced data block metadata.

3. The method of claim 2 , wherein the data block metadata for the data blocks include a timestamp indicating when the data block reference for the data block metadata was most recently referenced in one added file, wherein determining whether to remove the unreferenced data block metadata comprises:

determining unreferenced data block metadata having an oldest timestamp, wherein the unreferenced data block metadata having the oldest timestamp is indicated as removed.

4. The method of claim 1 , further comprising:

receiving a file to add having at least one data block;

for each data block in the file to add, performing:

applying a function to the data block content to determine a content identifier of the content of the data block;

determining whether the determined content identifier matches the content identifier in one data block metadata for a data block that is referenced in other files or is unreferenced;

including the data block reference for the data block in file metadata for the file to add in response to determining that no referenced data block metadata and no unreferenced data block metadata includes the content identifier matching the determined content identifier; and

including, in the file metadata for the file to add, the data block reference to the data block whose data block metadata has the content identifier matching the determined content identifier.

5. The method of claim 1 , wherein the computer readable storage device comprises a first computer readable device, further comprising:

copying the unreferenced data block to a second computer readable storage device.

6. The method of claim 5 , further comprising:

determining one data block in the second computer readable storage device that is removed from the second computer readable storage device;

removing the unreferenced data block metadata for the determined data block in response to determining the removal of the data block from the second computer readable storage device.

7. The method of claim 1 , further comprising:

determining whether the unreferenced data block is not expected to be included in subsequent files added to the computer readable storage device, wherein the indicating of the data block metadata for the unreferenced data block indicated as unreferenced is performed in response to determining that the unreferenced data block is expected to be included in the subsequent files; and

indicating the data block metadata for the unreferenced data block as removed from the computer readable storage device in response to determining that the unreferenced data block is not expected to be included in the subsequent files.

8. A system in communication with a computer readable storage device, comprising:

an Input/Output (I/O) manager executed to perform operations, the operations comprising:

maintaining file metadata for files having data blocks in the computer readable storage device, wherein at least one of the files has file metadata indicating that the file has multiple data blocks;

maintaining data block metadata for each data block in the computer readable storage device, wherein the data block metadata for one data block includes a data block reference and content identifier identifying content of the data block, wherein the file metadata for each file includes the data block reference to each data block in the file;

determining an unreferenced data block in the computer readable storage device that has become unreferenced;

indicating the data block metadata for the determined unreferenced data block as unreferenced data block metadata; and

adding the data block reference of the unreferenced data block metadata in the computer readable storage device to file metadata for an added file that includes multiple data blocks including one data block having content matching the content of the unreferenced data block according to the content identifier indicated in the unreferenced data block metadata.

9. The system of claim 8 , wherein the operations further comprise:

removing indication of the unreferenced data block metadata for the unreferenced data block as unreferenced in response to referencing the data block represented by the unreferenced data block metadata in the file metadata for the added file;

determining whether to remove the unreferenced data block metadata; and

indicating the unreferenced data block metadata as removed in response to the determining to remove the unreferenced data block metadata.

10. The system of claim 8 , wherein the operations further comprise:

receiving a file to add having at least one data block;

for each data block in the file to add, performing:

applying a function to the data block content to determine a content identifier of the content of the data block;

determining whether the determined content identifier matches the content identifier in one data block metadata for a data block that is referenced in other files or is unreferenced;

including the data block reference for the data block in file metadata for the file to add in response to determining that no referenced data block metadata and no unreferenced data block metadata includes the content identifier matching the determined content identifier; and

including, in the file metadata for the file to add, the data block reference to the data block whose data block metadata has the content identifier matching the determined content identifier.

11. The system of claim 8 , wherein the computer readable storage device comprises a first computer readable storage device, wherein the operations further comprise:

copying the unreferenced data block to a second computer readable storage device.

12. The system of claim 11 , wherein the operations further comprise:

determining one data block in the second computer readable storage device that is removed from the second computer readable storage device;

removing the unreferenced data block metadata for the determined data block in response to determining the removal of the data block from the second computer readable storage device.

13. The system of claim 8 , wherein the operations further comprise:

determining whether the unreferenced data block is not expected to be included in subsequent files added to the computer readable storage device, wherein the indicating of the data block metadata for the unreferenced data block indicated as unreferenced is performed in response to determining that the unreferenced data block is expected to be included in the subsequent files; and

indicating the data block metadata for the unreferenced data block as removed from the computer readable storage device in response to determining that the unreferenced data block is not expected to be included in the subsequent files.

14. An article of manufacture comprising a computer readable storage media including code executed to communicate with a computer readable device and to perform operations, the operations comprising:

maintaining file metadata for files having data blocks in the computer readable device, wherein at least one of the files has file metadata indicating that the file has multiple data blocks;

maintaining data block metadata for each data block in the computer readable device, wherein the data block metadata for one data block includes a data block reference and content identifier identifying content of the data block, wherein the file metadata for each file includes the data block reference to each data block in the file;

determining an unreferenced data block in the computer readable storage device that has become unreferenced;

indicating the data block metadata for the determined unreferenced data block as unreferenced data block metadata; and

adding the data block reference of the unreferenced data block metadata in the computer readable storage device to file metadata for an added file that includes multiple data blocks including one data block having content matching the content of the unreferenced data block according to the content identifier indicated in the unreferenced data block metadata.

15. The article of manufacture of claim 14 , further comprising:

removing indication of data block metadata for the unreferenced data block as unreferenced in response to referencing the data block represented by the unreferenced data block metadata in the file metadata for the added file;

determining whether to remove the unreferenced data block metadata; and

indicating the unreferenced data block metadata as removed in response to the determining to remove the unreferenced data block metadata.

16. The article of manufacture of claim 15 , wherein the data block metadata for the data blocks include a timestamp indicating when the data block reference for the data block metadata was most recently referenced in one added file, wherein determining whether to remove the unreferenced data block metadata comprises:

determining unreferenced data block metadata having an oldest timestamp, wherein the unreferenced data block metadata having the oldest timestamp is indicated as removed.

17. The article of manufacture of claim 14 , further comprising:

receiving a file to add having at least one data block;

for each data block in the file to add, performing:

applying a function to the data block content to determine a content identifier of the content of the data block;

determining whether the determined content identifier matches the content identifier in one data block metadata for a data block that is referenced in other files or is unreferenced;

including the data block reference for the data block in file metadata for the file to add in response to determining that no referenced data block metadata and no unreferenced data block metadata includes the content identifier matching the determined content identifier; and

including, in the file metadata for the file to add, the data block reference to the data block whose data block metadata has the content identifier matching the determined content identifier.

18. The article of manufacture of claim 14 , wherein the computer readable storage device comprises a first computer readable storage device, further comprising:

copying the unreferenced data block to a second computer readable storage device.

19. The article of manufacture of claim 18 , further comprising:

determining one data block in the second computer readable storage device that is removed from the second computer readable storage device;

removing the unreferenced data block metadata for the determined data block in response to determining the removal of the data block from the second computer readable storage device.

20. The article of manufacture of claim 14 , further comprising:

determining whether the unreferenced data block is not expected to be included in subsequent files added to the computer readable storage device, wherein the indicating of the data block metadata for the unreferenced data block indicated as unreferenced is performed in response to determining that the unreferenced data block is expected to be included in the subsequent files; and

indicating the data block metadata for the unreferenced data block as removed from the computer readable device in response to determining that the unreferenced data block is not expected to be included in the subsequent files.

Assignments (4)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 29, 2020
From: DAEDALUS GROUP, LLC
To: DAEDALUS BLUE LLC
Reel/Frame 051737/0191 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 27, 2020
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: DAEDALUS GROUP, LLC
Reel/Frame 051710/0445 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 14, 2019
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: DAEDALUS GROUP LLC
Reel/Frame 051032/0784 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 4, 2008
From: JAQUETTE, GLEN ALAN; KISHI, GREGORY TAD
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 021483/0546 →