IP Library › Granted Patent US 10,417,139
Granted Patent B2
US 10,417,139 · App. 15/680,577 · Granted Sep 17, 2019

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 10,417,139
App. No.
15/680,577
Granted
Sep 17, 2019
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 (55)

1. A method, comprising:

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

generating a list of a second type of tracks in the cache, wherein a track is added 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; and

determining whether to demote a track from the list of the first type of tracks or from the list of the second type of tracks, 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 the first type of tracks are syncio tracks.

3. The method of claim 2 , wherein the second type of tracks are non-syncio tracks.

4. The method of claim 3 , 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.

5. The method of claim 4 , 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.

6. The method of claim 5 , 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.

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

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

8. 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 in a cache;

generating a list of a second type of tracks in the cache, wherein a track is added 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; and

determining whether to demote a track from the list of the first type of tracks or from the list of the second type of tracks, 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.

9. The system of claim 8 , wherein the first type of tracks are syncio tracks.

10. The system of claim 9 , wherein the second type of tracks are non-syncio tracks, wherein for performing the I/O operation to a non-syncio track.

11. The system of claim 10 , 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.

12. The system of claim 11 , 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.

13. The system of claim 12 , 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.

14. The system of claim 12 , the operations further comprising:

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

15. 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 in a cache;

generating a list of a second type of tracks in the cache, wherein a track is added 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; and

determining whether to demote a track from the list of the first type of tracks or from the list of the second type of tracks, 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.

16. The computer program product of claim 15 , wherein the first type of tracks are syncio tracks.

17. The computer program product of claim 16 , wherein the second type of tracks are non-syncio tracks.

18. The computer program product of claim 17 , 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.

19. The computer program product of claim 18 , 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.

20. The computer program product of claim 19 , 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.

21. The computer program product of claim 19 , the operations further comprising:

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

22. 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 in the cache;

generating a list of a second type of tracks in the cache, wherein a track is added 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; and

determining whether to demote a track from the list of the first type of tracks or from the list of the second type of tracks, 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.

23. The storage controller of claim 22 , wherein the first type of tracks are syncio tracks.

24. The storage controller of claim 23 , wherein the second type of tracks are non-syncio tracks.

25. The storage controller of claim 24 , 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.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 18, 2017
From: ANDERSON, KYLER A.; ASH, KEVIN J.; GUPTA, LOKESH M.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 043336/0537 →
Continuity (1)
Related Publication 20190057037A1 · Feb 21, 2019