IP Library › Granted Patent US 11,023,383
Granted Patent B2
US 11,023,383 · App. 16/518,790 · Granted Jun 1, 2021

Cache management based on types of I/O operations

Inventors: Kyler A. Anderson (Sahuarita, AZ); Kevin J. Ash (Tucson, AZ); Lokesh M. Gupta (Tucson, AZ)
Assignee: INTERNATIONAL BUSINESS MACHINES CORPORATION
G06F12/0895G06F2212/1024G06F2212/1041G06F2212/282
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 11,023,383
App. No.
16/518,790
Granted
Jun 1, 2021
Kind
B2
Abstract

A list of a first type of tracks in a cache is generated. A list of a second type of tracks in the cache is generated, wherein I/O operations are completed relatively faster to the first type of tracks than to the second type of tracks. A determination is made as to whether to demote a track from the list of the first type of tracks or from the list of the second type of tracks.

Claims (41)

1. A method, comprising:

generating a list of a first type of tracks and a second type of tracks in a cache; and

adding a track to the list of the first type of tracks or to the list of the second type of tracks based on whether a last I/O operation performed on the track is a first type of I/O operation or a second type of I/O operation, wherein:

for performing the first type of I/O operation to a first type of track, an application thread is held in a spin loop waiting for the first type of I/O operation to complete; and

for performing the second type of I/O operation to a second type of track, holding of the application thread in the spin loop is avoided.

2. The method of claim 1 , wherein tracks in the list of the first type of tracks are ordered based on how recently each track in the list of the first type of tracks has been used, and wherein tracks in the list of the second type of tracks are ordered based on how recently each track in the list of the second type of tracks has been used.

3. The method of claim 1 , the method further comprising:

in response to determining that a read hit ratio for tracks in the list of the second type of tracks is less than a predetermined factor of a read hit ratio for tracks in the first type of tracks, demoting a track from the list of the second type of tracks.

4. The method of claim 3 , wherein the read hit ratio for tracks in the list of the first type of tracks and the read hit ratio for tracks in the list of the second type of tracks are computed based on read hits on a predetermined bottom portion of the list of the first type of tracks and the second type of tracks.

5. The method of claim 3 , the method further comprising:

adjusting the predetermined factor to increase a rate of input/output (I/O) operations.

6. A system, comprising:

a memory; and

a processor coupled to the memory, wherein the processor performs operations, the operations performed by the processor comprising:

generating a list of a first type of tracks and a second type of tracks in a cache; and

adding a track to the list of the first type of tracks or to the list of the second type of tracks based on whether a last I/O operation performed on the track is a first type of I/O operation or a second type of I/O operation, wherein:

for performing the first type of I/O operation to a first type of track, an application thread is held in a spin loop waiting for the first type of I/O operation to complete; and

for performing the second type of I/O operation to a second type of track, holding of the application thread in the spin loop is avoided.

7. The system of claim 6 , wherein tracks in the list of the first type of tracks are ordered based on how recently each track in the list of the first type of tracks has been used, and wherein tracks in the list of the second type of tracks are ordered based on how recently each track in the list of the second type of tracks has been used.

8. The system of claim 6 , the operations further comprising:

in response to determining that a read hit ratio for tracks in the list of the second type of tracks is less than a predetermined factor of a read hit ratio for tracks in the first type of tracks, demoting a track from the list of the second type of tracks.

9. The system of claim 8 , wherein the read hit ratio for tracks in the list of the first type of tracks and the read hit ratio for tracks in the list of the second type of tracks are computed based on read hits on a predetermined bottom portion of the list of the first type of tracks and the second type of tracks.

10. The system of claim 8 , the operations further comprising: adjusting the predetermined factor to increase a rate of input/output (I/O) operations.

11. A computer program product, the computer program product comprising a computer readable storage medium having computer readable program code embodied therewith, the computer readable program code configured to perform operations, the operations comprising:

generating a list of a first type of tracks and a second type of tracks in a cache; and

adding a track to the list of the first type of tracks or to the list of the second type of tracks based on whether a last I/O operation performed on the track is a first type of I/O operation or a second type of I/O operation, wherein:

for performing the first type of I/O operation to a first type of track, an application thread is held in a spin loop waiting for the first type of I/O operation to complete; and

for performing the second type of I/O operation to a second type of track, holding of the application thread in the spin loop is avoided.

12. The computer program product of claim 11 , wherein tracks in the list of the first type of tracks are ordered based on how recently each track in the list of the first type of tracks has been used, and wherein tracks in the list of the second type of tracks are ordered based on how recently each track in the list of the second type of tracks has been used.

13. A storage controller, comprising:

a cache; and

a cache management application maintained in the storage controller, wherein the cache management application performs operations, the operations comprising:

generating a list of a first type of tracks and a second type of tracks in the cache; and

adding a track to the list of the first type of tracks or to the list of the second type of tracks based on whether a last I/O operation performed on the track is a first type of I/O operation or a second type of I/O operation, wherein:

for performing the first type of I/O operation to a first type of track, an application thread is held in a spin loop waiting for the first type of I/O operation to complete; and

for performing the second type of I/O operation to a second type of track, holding of the application thread in the spin loop is avoided.

14. The storage controller of claim 13 , wherein tracks in the list of the first type of tracks are ordered based on how recently each track in the list of the first type of tracks has been used, and wherein tracks in the list of the second type of tracks are ordered based on how recently each track in the list of the second type of tracks has been used.

15. The method of claim 1 , wherein operations are performed on the cache based on the list of the first type of tracks and the list of the second type of tracks.

16. The system of claim 6 , wherein operations are performed on the cache based on the list of the first type of tracks and the list of the second type of tracks.

17. The computer program product of claim 11 , wherein operations are performed on the cache based on the list of the first type of tracks and the list of the second type of tracks.

18. The storage controller of claim 13 , wherein operations are performed on the cache based on the list of the first type of tracks and the list of the second type of tracks.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 23, 2019
From: ANDERSON, KYLER A.; ASH, KEVIN J.; GUPTA, LOKESH M.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 049827/0683 →
Continuity (2)
Continuation 15680577 · Aug 18, 2017
Related Publication 20190347205A1 · Nov 14, 2019