IP Library › Granted Patent US 12,373,341
Granted Patent B1
US 12,373,341 · App. 18/617,987 · Granted Jul 29, 2025

Garbage collection for storage in which high-performance volumes reside

Inventors: Roger G. Hathorn (Tucson, AZ); John Charles Elliott (Tucson, AZ); Matthew G. Borlick (Tucson, AZ); Micah Robison (Tucson, AZ); Beth Ann Peterson (Tucson, AZ); Lokesh Mohan Gupta (Tucson, AZ)
Assignee: International Business Machines Corporation
G06F12/0246G06F3/061G06F3/0647G06F3/0685G06F2212/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 12,373,341
App. No.
18/617,987
Granted
Jul 29, 2025
Kind
B1
Abstract

Provided are a storage device, system, and method for performance enhancing measures for storage in which high-performance volumes reside. Indication is made of a volume configured in the arrays to have high-performance. An array is determined storing the indicated volume. A determination is made of storage devices in which the determined array resides. The storage devices are enabled to perform garbage collection on blocks of data having valid and invalid pages in the storage devices at a first garbage collection rate and a second garbage collection rate. The second garbage collection rate causes a storage device to perform garbage collection with respect to a greater number of blocks than the first garbage collection rate. A command is sent to the determined storage devices to garbage collect at the second garbage collection rate.

Claims (47)

1. A computer program product for managing arrays of storage devices in which volumes are configured, wherein the computer program product comprises a computer readable storage medium having program instructions executable by a processor to cause operations, the operations comprising:

indicating a volume configured in the arrays to have high-performance;

determining an array storing the indicated volume;

determining storage devices in which the determined array resides, wherein the determined storage devices are enabled to perform garbage collection on blocks of data having valid and invalid pages in the determined storage devices at a first garbage collection rate and a second garbage collection rate, wherein the second garbage collection rate causes a storage device to perform garbage collection with respect to a greater number of blocks than the first garbage collection rate; and

sending a command to the determined storage devices to garbage collect at the second garbage collection rate.

2. The computer program product of claim 1 , wherein the determined array comprises a Redundant Array of Independent Disk (RAID) array, wherein the operations further comprise:

determining extents configured in the RAID array on which the indicated volume resides, wherein the determining the RAID array comprises determining the RAID array of a plurality of RAID arrays storing the indicated volume.

3. The computer program product of claim 1 , wherein the determined storage devices comprise a cache for a server, wherein the determined array is associated with one of a first threshold and a second threshold, wherein the second threshold comprises a higher percentage than the first threshold, wherein the operations further comprise:

assigning the second threshold to the determined array; and

destaging data from the determined array before writing new data to the determined array in response to determining the determined array comprises a percentage of the cache exceeding the second threshold.

4. The computer program product of claim 1 , wherein arrays are comprised of extents of data, wherein the operations further comprise:

determining extents, accessed at a relatively low I/O rate, in the determined array not storing data for the indicated volume; and

moving data for the determined extents to an array not storing data for the indicated volume.

5. The computer program product of claim 4 , wherein the moving the data to the array not storing data for the indicated volume comprises moving the data for the indicated volume to a low performance array.

6. The computer program product of claim 1 , wherein the volume is indicated in a message from a host system indicating the volume as a high-performance volume.

7. The computer program product of claim 1 , wherein the command to the determined storage devices to garbage collect at the second garbage collection rate causes the determined storage devices each to initiate garbage collection on blocks in response to: (1) available free space in a determined storage device is below a threshold and (2) blocks in the determined storage device have more than a threshold number of invalid pages in response to the available free space being below the threshold.

8. The computer program product of claim 1 , wherein the command to the determined storage devices to garbage collect at the second garbage collection rate causes the determined storage devices each to perform garbage collection on: (1) blocks having a number of invalid pages greater than a threshold number of invalid pages and (2) on blocks having a number of invalid pages less than the threshold number in response to an available free space percentage of blocks having invalid pages less than the threshold number exceeding a threshold percentage.

9. A system for managing arrays of storage devices in which volumes are configured, comprising:

a processor; and

a computer readable storage medium having program instructions executable by the processor to cause operations, the operations comprising:

indicating a volume configured in the arrays to have high-performance;

determining an array storing the indicated volume;

determining storage devices in which the determined array resides, wherein the determined storage devices are enabled to perform garbage collection on blocks of data having valid and invalid pages in the determined storage devices at a first garbage collection rate and a second garbage collection rate, wherein the second garbage collection rate causes a storage device to perform garbage collection with respect to a greater number of blocks than the first garbage collection rate; and

sending a command to the determined storage devices to garbage collect at the second garbage collection rate.

10. The system of claim 9 , wherein the determined storage devices comprise a cache for a server, wherein the determined array is associated with one of a first threshold and a second threshold, wherein the second threshold comprises a higher percentage than the first threshold, wherein the operations further comprise:

assigning the second threshold to the determined array; and

destaging data from the determined array before writing new data to the determined array in response to determining the determined array comprises a percentage of the cache exceeding the second threshold.

11. The system of claim 9 , wherein arrays are comprised of extents of data, wherein the operations further comprise:

determining extents, accessed at a relatively low I/O rate, in the determined array not storing data for the indicated volume; and

moving data for the determined extents to an array not storing data for the indicated volume.

12. The system of claim 11 , wherein the moving the data to the array not storing data for the indicated volume comprises moving the data for the indicated volume to a low performance array.

13. The system of claim 9 , wherein the command to the determined storage devices to garbage collect at the second garbage collection rate causes the determined storage devices each to initiate garbage collection on blocks in response to: (1) available free space in a determined storage device is below a threshold and (2) blocks in the determined storage device have more than a threshold number of invalid pages in response to the available free space being below the threshold.

14. The system of claim 9 , wherein the command to the determined storage devices to garbage collect at the second garbage collection rate causes the determined storage devices each to perform garbage collection on: (1) blocks having a number of invalid pages greater than a threshold number of invalid pages and (2) on blocks having a number of invalid pages less than the threshold number in response to an available free space percentage of blocks having invalid pages less than the threshold number exceeding a threshold percentage.

15. A method for managing arrays of storage devices in which volumes are configured, comprising:

indicating a volume configured in the arrays to have high-performance;

determining an array storing the indicated volume;

determining storage devices in which the determined array resides, wherein the determined storage devices are enabled to perform garbage collection on blocks of data having valid and invalid pages in the determined storage devices at a first garbage collection rate and a second garbage collection rate, wherein the second garbage collection rate causes a storage device to perform garbage collection with respect to a greater number of blocks than the first garbage collection rate; and

sending a command to the determined storage devices to garbage collect at the second garbage collection rate.

16. The method of claim 15 , wherein the determined storage devices comprise a cache for a server, wherein the determined array is associated with one of a first threshold and a second threshold, wherein the second threshold comprises a higher percentage than the first threshold, further comprising:

assigning the second threshold to the determined array; and

destaging data from the determined array before writing new data to the determined array in response to determining the determined array comprises a percentage of the cache exceeding the second threshold.

17. The method of claim 15 , wherein arrays are comprised of extents of data, further comprising:

determining extents, accessed at a relatively low I/O rate, in the determined array not storing data for the indicated volume; and

moving data for the determined extents to an array not storing data for the indicated volume.

18. The method of claim 17 , wherein the moving the data to the array not storing data for the indicated volume comprises moving the data for the indicated volume to a low performance array.

19. The method of claim 15 , wherein the command to the determined storage devices to garbage collect at the second garbage collection rate causes the determined storage devices each to initiate garbage collection on blocks in response to: (1) available free space in a determined storage device is below a threshold and (2) blocks in the determined storage device have more than a threshold number of invalid pages in response to the available free space being below the threshold.

20. The method of claim 15 , wherein the command to the determined storage devices to garbage collect at the second garbage collection rate causes the determined storage devices each to perform garbage collection on: (1) blocks having a number of invalid pages greater than a threshold number of invalid pages and (2) on blocks having a number of invalid pages less than the threshold number in response to an available free space percentage of blocks having invalid pages less than the threshold number exceeding a threshold percentage.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 27, 2024
From: HATHORN, ROGER G.; ELLIOTT, CHARLES JOHN; BORLICK, MATTHEW G.; ROBISON, MICAH; PETERSON, BETH ANN; GUPTA, LOKESH MOHAN
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 066923/0345 →
References Cited (30)
US 6065020A · Dussud · 2000 [cited by applicant]
US 8166233B2 · Schibilla · 2012 [cited by applicant]
US 8285959B2 · Jess · 2012 [cited by applicant]
US 10795583B2 · Yang · 2020 [cited by applicant]
US 11726692B2 · Szczepanik · 2023 [cited by applicant]
US 20080007856A1 · Tango et al. · 2008 [cited by applicant]
US 20120036309A1 · Dillow · 2012 [cited by examiner]
US 20140000592A1 · Rittner et al. · 2014 [cited by applicant]
US 20140032817A1 · Bux · 2014 [cited by applicant]
US 20140059279A1 · He · 2014 [cited by applicant]
US 20150019797A1 · Huang et al. · 2015 [cited by applicant]
US 20150026390A1 · Li · 2015 [cited by examiner]
US 20160179386A1 · Zhang · 2016 [cited by applicant]
US 20160283161A1 · Mielke et al. · 2016 [cited by applicant]
US 20170024314A1 · Lee · 2017 [cited by examiner]
US 20200012598A1 · Feng et al. · 2020 [cited by applicant]
US 20200073571A1 · Chen et al. · 2020 [cited by applicant]
US 20200097403A1 · Saxena et al. · 2020 [cited by applicant]
US 20200401515A1 · Liang et al. · 2020 [cited by applicant]
US 20220035735A1 · Bhardwaj · 2022 [cited by applicant]
US 20220334967A1 · Galbraith et al. · 2022 [cited by applicant]
WO 2016160163A1 · 2016 [cited by applicant]
“System and Method to Implement Host Tiered Hot Spot Tuning on Storage,” IP.com No. IPCOM000202012D, Dec. 1, 2010, 6 pages. [cited by applicant]
Guerra, Jorge et al., “Cost Effective Storage Using Extent Based Dynamic Tiering,” 9th USENIX Conference on File and Storage Technologies (FAST 11), 2011, 14 pages. [cited by applicant]
Kim et al., “AutoSSD an Autonomic SSD Architecture” 2018 USENIX Annual Technical Conference (USENIX ATC 18), 14 pp. [cited by applicant]
List of Patents or Patent Applications Treated as Related, 2 pp. submitted herewith. [cited by applicant]
U.S. Appl. No. 18/385,826, filed Oct. 31, 2023. [cited by applicant]
U.S. Appl. No. 18/617,967, filed Mar. 27, 2024. [cited by applicant]
Wang et al. “WAS: Wear aware superblock management for prolonging SSD lifetime.” ACM Proceedings of the 56th Annual Design Automation Conference 2019, 2019, 6 pp. [cited by applicant]
United States Non-Final Rejection dated May 5, 2025, 31 pages in U.S. Appl. No. 18/617,967. [cited by applicant]