IP Library Granted Patent US 10,496,293
Granted Patent B2
US 10,496,293 · App. 15/458,684 · Granted Dec 3, 2019

Techniques for selecting storage blocks for garbage collection based on longevity information

Inventors: Itzhack Goldberg (Haifa, IL); Frank Krick (Ockenheim, DE); Heiko H. Schloesser (Tucson, AZ); Neil Sondhi (Hungary, EP)
Assignee: International Business Machines Corporation
G06F3/0619G06F3/065G06F3/0679G06F12/0246G06F16/125G06F2212/7201G06F2212/7205
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 10,496,293
App. No.
15/458,684
Granted
Dec 3, 2019
Kind
B2
Abstract

A technique for operating a data storage system includes accessing respective absolute expiration times for valid pages in one or more candidate storage blocks. Garbage collection is performed on ones of the candidate storage blocks that include a first predetermined number of the valid pages that do not expire, as indicated by the absolute expiration times, prior to a first predetermined time period. Garbage collection is deferred on ones of the candidate storage blocks that include a second predetermined number of the valid pages that expire, as indicated by the absolute expiration times, prior to a second predetermined time period.

Claims (39)

1. A method of operating a data storage system, comprising:

determining, by a controller of the data storage system, that two or more candidate storage blocks of the data storage system are candidates for garbage collection;

accessing, by the controller, respective absolute expiration times for valid pages in the two or more candidate storage blocks;

performing, by the controller, garbage collection on a first one of the candidate storage blocks that includes a first predetermined number of the valid pages that do not expire, as indicated by the absolute expiration times, prior to a first predetermined time period; and

deferring until a subsequent garbage collection determination, by the controller, garbage collection on a second one of the candidate storage blocks that includes a second predetermined number of the valid pages that expire, as indicated by the absolute expiration times, prior to a second predetermined time period that is the same as or different than the first predetermined time period.

2. The method of claim 1 , wherein the absolute expiration times are generated based on longevity information for a file that is created by an application.

3. The method of claim 2 , wherein the longevity information includes an expiration time for a file.

4. The method of claim 3 , wherein the longevity information includes a creation time for the file.

5. The method of claim 2 , further comprising:

storing, by the controller, the longevity information in association with an entry in a flash translation table (FTT) that includes information for translating a logical block address (LBA) to a physical block address (PBA).

6. The method of claim 2 , wherein the longevity information is derived from copyservices snapshot metadata.

7. The method of claim 2 , wherein the file corresponds to a snapshot.

8. The method of claim 2 , further comprising:

storing, by the controller, the absolute expiration times in association with the valid pages.

9. The method of claim 1 , wherein the first predetermined number is the same as the second predetermined number and the first predetermined time period is the same as the second predetermined time period.

10. A data storage system, comprising:

one or more non-volatile memories; and

a controller coupled to the non-volatile memories, wherein the controller is configured to:

determine that two or more candidate storage blocks of the data storage system are candidates for garbage collection;

access respective absolute expiration times for valid pages in the two or more candidate storage blocks of the non-volatile memories;

perform garbage collection on a first one of the candidate storage blocks that includes a first predetermined number of the valid pages that do not expire, as indicated by the absolute expiration times, prior to a first predetermined time period; and

defer, until a subsequent garbage collection determination, garbage collection on a second one of the candidate storage blocks that includes a second predetermined number of the valid pages that expire, as indicated by the absolute expiration times, prior to a second predetermined time period that is the same as or different than the first predetermined time period.

11. The data storage system of claim 10 , wherein the absolute expiration times are generated based on longevity information for a file that is created by an application.

12. The data storage system of claim 11 , wherein the longevity information includes an expiration time for a file.

13. The data storage system of claim 12 , wherein the longevity information includes a creation time for the file.

14. The data storage system of claim 11 , further comprising:

storing, by the controller, the longevity information in association with an entry in a flash translation table (FTT) that includes information for translating a logical block address (LBA) to a physical block address (PBA).

15. The data storage system of claim 11 , wherein the longevity information is derived from copyservices snapshot metadata.

16. The data storage system of claim 11 , wherein the file corresponds to a snapshot.

17. The data storage system of claim 11 , further comprising:

storing, by the controller, the absolute expiration times in association with the valid pages.

18. The data storage system of claim 10 , wherein the first predetermined number is the same as the second predetermined number and the first predetermined time period is the same as the second predetermined time period.

19. A computer program product, the computer program product comprising a computer readable storage medium having program instructions embodied therewith, the program instructions executable by a controller, to cause the controller to:

determine that two or more candidate storage blocks of a data storage system are candidates for garbage collection;

access respective absolute expiration times for valid pages in the two or more candidate storage blocks of the non-volatile memories;

perform garbage collection on a first one of the candidate storage blocks that includes a first predetermined number of the valid pages that do not expire, as indicated by the absolute expiration times, prior to a first predetermined time period; and

defer, until a subsequent garbage collection determination, garbage collection on a second one of the candidate storage blocks that includes a second predetermined number of the valid pages that expire, as indicated by the absolute expiration times, prior to a second predetermined time period that is the same as or different than the first predetermined time period.

20. The computer program product of claim 19 , wherein the absolute expiration times are generated based on longevity information for a file that is created by an application and the longevity information includes an expiration time for a file and a creation time for the file, and wherein the program instructions are further configured to cause the controller to:

store the longevity information in association with an entry in a flash translation table (FTT) that includes information for translating a logical block address (LBA) to a physical block address (PBA).

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 6, 2017
From: GOLDBERG, ITZHACK; KRICK, FRANK; SCHLOESSER, HEIKO H.; SONDHI, NEIL
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 042618/0263 →
Continuity (1)
Related Publication 20180267720A1 · Sep 20, 2018