# US 10,320,936 B2 · Populating a secondary cache with unmodified tracks in a primary cache when redirecting host access from a primary server to a secondary server

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 10,320,936 B2
- Document ID: US10320936B2
- Status: Granted
- Kind: B2
- Application number: 14/918,424
- Filed: 2015-10-20
- Published: 2017-04-20
- Granted: 2019-06-11
- Earliest claimed: 2015-10-20
- Assignees: International Business Machines Corporation
- Applicants: International Business Machines Corporation
- Inventors: Kevin J. Ash; Matthew G. Borlick; Lokesh M. Gupta; Matthew J. Kalos; Brian A. Rinaldi
- Web page: https://patentgrep.com/patent/US10320936B2

## CPC

- H04L 67/5682: Policies or rules for updating, deleting or replacing the stored data
- G06F 3/0617: {in relation to availability}
- G06F 3/0635: {by changing the path, e.g. traffic rerouting, path reconfiguration}
- G06F 3/065: {Replication mechanisms}
- G06F 3/0656: {Data buffering arrangements}
- G06F 3/067: {Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]}
- G06F 3/0689: {Disk arrays, e.g. RAID, JBOD}
- G06F 11/00: Error detection; Error correction; Monitoring (error detection, correction or monitoring in information storage based on relative movement between record carrier and transducer G11B20/18; monitoring, i.e. supervising the progress of recording or reproducing G11B27/36; in static stores G11C29/00)
- G06F 11/1658: {Data re-synchronization of a redundant component, or initial sync of replacement, additional or spare unit}
- G06F 11/203: {using migration}
- G06F 11/2038: {with a single idle spare processing component}
- G06F 11/2048: {where the redundant components share neither address space nor persistent storage}
- G06F 2212/152: Virtualized environment, e.g. logically partitioned system
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Provided are a computer program product, system, and method for populating a secondary cache with unmodified tracks in a primary cache when redirecting host access from a primary server to a secondary server. Host access to tracks is redirected from the primary server to the secondary server. Prior to the redirecting, updates to tracks in the primary storage were replicated to the secondary server. After the redirecting host access to the secondary server, host access is directed to the secondary server and the secondary storage. A secondary cache at the secondary server is populated with unmodified tracks in a primary cache at the primary server when the host access was redirected to the secondary server to make available to the host access redirected to the secondary server.

## Claims

### Claim 1

A computer program product for redirecting host access from a primary server to a secondary server, wherein the primary server manages access to a primary storage and the secondary server manages access to a secondary storage, the computer program product comprising a computer readable storage medium having computer readable program code embodied therein that is executable to perform operations, the operations comprising:
replicating updates to tracks in the primary storage to the secondary storage;
in response to a failover operation, performing:
redirecting host access to tracks in the primary server to the secondary server, wherein after the redirecting host access to the secondary server, host access is directed to the secondary server and the secondary storage;
providing a cache transfer list indicating unmodified tracks in a primary cache at the primary server to transfer to a secondary cache at the secondary server; and
populating, by the secondary server, a secondary cache at the secondary server with the unmodified tracks in the primary cache at the primary server indicated in the cache transfer list to make the unmodified tracks in the primary cache available in the secondary cache to the host access redirected to the secondary server.

### Claim 2 (depends on 1)

The computer program product of claim 1, wherein the populating the secondary cache comprises:
transferring unmodified tracks in the primary cache not already in the secondary cache to the secondary cache.

### Claim 3 (depends on 1)

The computer program product of claim 1, wherein in response to the failover operation the operations further comprise comprises:
accessing, by the secondary server, the unmodified tracks indicated in the cache transfer list that are not already stored in the secondary cache to prevent host access to the accessed unmodified tracks in the secondary storage; and
allowing host access to the accessed unmodified tracks indicated in the cache transfer list in response to the populating the secondary cache with the accessed unmodified tracks from the primary cache.

### Claim 4 (depends on 3)

The computer program product of claim 3, wherein the tracks are transferred from the primary cache to the secondary cache by performing a Direct Memory Access (DMA) type operation transferring the unmodified tracks directly from the primary cache to the secondary cache.

### Claim 5 (depends on 3)

The computer program product of claim 3, wherein the operations further comprise:
from a most recently used (MRU) end of a least recently used (LRU) list of tracks in the primary cache, indicating the unmodified tracks in the LRU list in the cache transfer list until a maximum number of unmodified tracks is indicated in the cache transfer list, wherein if the LRU list includes more than the maximum number of unmodified tracks, the cache transfer list does not include tracks in the LRU list beyond a last track indicated in the cache transfer list.

### Claim 6 (depends on 1)

The computer program product of claim 1, wherein the populating of the secondary cache with the unmodified tracks comprises:
transferring a first group of the unmodified tracks in the primary cache to the secondary cache by direct transfer from the primary cache to the secondary cache; and
reading a second group of the unmodified tracks in the primary cache from the secondary storage to the secondary cache, wherein the first and the second groups of the unmodified tracks are concurrently transferred to the secondary cache.

### Claim 7 (depends on 1)

The computer program product of claim 1, wherein the populating of the secondary cache with the unmodified tracks comprises:
for unmodified tracks in the primary cache that are stored in a first type of storage device in the secondary storage, transferring the unmodified tracks directly from the primary cache to the secondary cache; and
for tracks in the primary cache that are stored in a second type of storage device in the secondary storage, performing:
transferring a first group of the unmodified tracks in the primary cache to the secondary cache by direct transfer from the primary cache to the secondary cache; and
reading a second group of the unmodified tracks from the second type of storage device in the secondary storage and transferring the read second group of the unmodified tracks to the secondary cache, wherein the first and the second groups of the unmodified tracks are concurrently transferred to the secondary cache.

### Claim 8 (depends on 7)

The computer program product of claim 7, wherein the first type of storage device has a slower transfer rate than the second type of storage device.

### Claim 9 (depends on 1)

The computer program product of claim 1, wherein the populating of the secondary cache with the unmodified tracks is performed after redirecting host access to the secondary server.

### Claim 10

A system, comprising:
a primary server including a primary cache and managing host access to a primary storage;
a secondary server including a secondary cache and managing host access to a secondary storage;
wherein the primary server and the secondary server perform operations, the operations comprising:
replicating updates to tracks in the primary storage to the secondary storage;
in response to of a failover operation, performing:
redirecting host access to tracks from the primary server to the secondary server, wherein after the redirecting host access to the secondary server, host access is directed to the secondary server and the secondary storage;
providing a cache transfer list indicating unmodified tracks in the primary cache to transfer to the secondary cache; and
populating, by the secondary server, the secondary cache with the unmodified tracks in the primary cache at the primary server indicated in the cache transfer list to make the unmodified tracks in the primary cache available in the secondary cache available in the secondary cache to the host access redirected to the secondary server.

### Claim 11 (depends on 10)

The system of claim 10, wherein in response to the failover operation the operations further comprise:
accessing, by the secondary server, the unmodified tracks indicated in the cache transfer list that are not already stored in the secondary cache to prevent host access to the accessed unmodified tracks in the secondary storage; and
allowing host access to the accessed tracks comprises allowing host access to the accessed unmodified tracks indicated in the cache transfer list in response to the populating the secondary cache with the accessed unmodified tracks from the primary cache.

### Claim 12 (depends on 11)

The system of claim 11, wherein the operations further comprise:
from a most recently used (MRU) end of a least recently used (LRU) list of tracks in the primary cache, indicating, by the primary server, the unmodified tracks in the LRU list in the cache transfer list until a maximum number of unmodified tracks is indicated in the cache transfer list, wherein if the LRU list includes more than the maximum number of unmodified tracks, the cache transfer list does not include tracks in the LRU list beyond a last track indicated in the cache transfer list.

### Claim 13 (depends on 10)

The system of claim 10, wherein the populating of the secondary cache with the unmodified tracks comprises:
transferring a first group of the unmodified tracks in the primary cache to the secondary cache by direct transfer from the primary cache to the secondary cache; and
reading, by the secondary server, a second group of the unmodified tracks in the primary cache from the secondary storage to the secondary cache, wherein the first and the second groups of the unmodified tracks are concurrently transferred to the secondary cache.

### Claim 14 (depends on 10)

The system of claim 10, wherein the populating of the secondary cache with the unmodified tracks comprises:
for unmodified tracks in the primary cache that are stored in a first type of storage device in the secondary storage, transferring the unmodified tracks directly from the primary cache to the secondary cache; and
for tracks in the primary cache that are stored in a second type of storage device in the secondary storage, performing:
transferring a first group of the unmodified tracks in the primary cache to the secondary cache by direct transfer from the primary cache to the secondary cache; and
reading a second group of the unmodified tracks from the second type of storage device in the secondary storage and transferring the read second group of the unmodified tracks to the secondary cache, wherein the first and the second groups of the unmodified tracks are concurrently transferred to the secondary cache.

### Claim 15 (depends on 14)

The system of claim 14, wherein the first type of storage device has a slower transfer rate than the second type of storage device.

### Claim 16 (depends on 10)

The system of claim 10, wherein the populating of the secondary cache with the unmodified tracks is performed after redirecting host access to the secondary server.

### Claim 17

A method for redirecting host access from a primary server to a secondary server, wherein the primary server manages access to a primary storage and the secondary server manages access to a secondary storage:
replicating updates to tracks in the primary storage to the secondary storage;
in response to a failover operation, performing:
redirecting host access to tracks from the primary server to the secondary server, wherein after the redirecting host access to the secondary server, host access is directed to the secondary server and the secondary storage;
providing a cache transfer list indicating unmodified tracks in a primary cache at the primary server to transfer to a secondary cache at the secondary server; and
populating, by the secondary server, a secondary cache at the secondary server with the unmodified tracks in a primary cache at the primary server indicated in the cache transfer list to make the unmodified tracks in the primary cache available in the secondary cache to the host access redirected to the secondary server.

### Claim 18 (depends on 17)

The method of claim 17, wherein in response to the failover operation further comprising:
accessing, by the secondary server, the unmodified tracks indicated in the cache transfer list that are not already stored in the secondary cache to prevent host access to the accessed unmodified tracks in the secondary storage; and
allowing host access to the unmodified tracks in the cache transfer list in response to the populating the secondary cache with the accessed unmodified tracks from the primary cache.

### Claim 19 (depends on 18)

The method of claim 18, further comprising:
from a most recently used (MRU) end of a least recently used (LRU) list of tracks in the primary cache, indicating the unmodified tracks in the LRU list in the cache transfer list until a maximum number of unmodified tracks is indicated in the cache transfer list, wherein if the LRU list includes more than the maximum number of unmodified tracks, the cache transfer list does not include tracks in the LRU list beyond a last track indicated in the cache transfer list.

### Claim 20 (depends on 17)

The method of claim 17, wherein the populating of the secondary cache with the unmodified tracks comprises:
transferring a first group of the unmodified tracks in the primary cache to the secondary cache by direct transfer from the primary cache to the secondary cache; and
reading a second group of the unmodified tracks in the primary cache from the secondary storage to the secondary cache, wherein the first and the second groups of the unmodified tracks are concurrently transferred to the secondary cache.

### Claim 21 (depends on 17)

The method of claim 17, wherein the populating of the secondary cache with the unmodified tracks comprises:
for unmodified tracks in the primary cache that are stored in a first type of storage device in the secondary storage, transferring the unmodified tracks directly from the primary cache to the secondary cache; and
for tracks in the primary cache that are stored in a second type of storage device in the secondary storage, performing:
transferring a first group of the unmodified tracks in the primary cache to the secondary cache by direct transfer from the primary cache to the secondary cache; and
reading a second group of the unmodified tracks from the second type of storage device in the secondary storage and transferring the read second group of the unmodified tracks to the secondary cache, wherein the first and the second groups of the unmodified tracks are concurrently transferred to the secondary cache.

### Claim 22 (depends on 21)

The method of claim 21, wherein the first type of storage device has a slower transfer rate than the second type of storage device.

### Claim 23 (depends on 17)

The method of claim 17, wherein the populating of the secondary cache with the unmodified tracks is performed after redirecting host access to the secondary server.
