# US 10,503,645 B1 · Data protection

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

- Number: US 10,503,645 B1
- Document ID: US10503645B1
- Status: Granted
- Kind: B1
- Application number: 15/652,235
- Filed: 2017-07-18
- Granted: 2019-12-10
- Earliest claimed: 2017-07-18
- Assignees: Infinidat Ltd.
- Applicants: Infinidat Ltd.
- Inventors: Kariel Sandler; Jacob Broido
- Web page: https://patentgrep.com/patent/US10503645B1

## CPC

- G06F 12/084: with a shared cache
- G06F 12/0868: Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
- G06F 12/0842: for multiprocessing or multitasking
- G06F 12/0891: using clearing, invalidating or resetting means
- G06F 2212/1024: Latency reduction
- G06F 2212/312: In storage controller
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A method for providing fast access, the method may include obtaining, by a first storage controller of a storage system, retrieval information for retrieving, from a permanent storage space, a subset of cached data units, the subset of the cached data units forms a part of a set of cached data units that are cached in a first cache memory and were destaged to the permanent storage space; and retrieving, using the retrieval information, at least some of the cached data units of the subset from the permanent storage space to a second cache memory, wherein the retrieving occurs in response to an occurrence of a failure to access the first cache memory; wherein the second cache memory differs from the first cache memory.

## Claims

### Claim 1

A method for data protection, the method comprises:
obtaining, by a first storage controller of a storage system, retrieval information for retrieving, from a permanent storage space, a subset of cached data units, the subset of the cached data units forms a part of a set of cached data units that are cached in a first cache memory and were destaged to the permanent storage space;
selecting cached data units that belong to the subset, wherein the selecting is based on an estimate of which cached data units out of the set of cached data units are associated with a majority of access requests aimed to the first cache memory;
and
retrieving, using the retrieval information, at least some of the cached data units of the subset from the permanent storage space to a second cache memory, wherein the retrieving occurs in response to an occurrence of a failure to access the first cache memory; wherein the second cache memory differs from the first cache memory.

### Claim 2 (depends on 1)

The method according to claim 1, comprising receiving, by the storage system, a request to read a data unit that is included in the at least some of the cached data units, and retrieving the data unit from the second cache memory.

### Claim 3 (depends on 1)

The method according to claim 1, comprising initiating the retrieving of the at least some of the cached data units before receiving access requests by the first storage controller.

### Claim 4 (depends on 1)

The method according to claim 1, comprising controlling the retrieving of the at least some of the cached data units based on (i) priorities of cached data units that belong to the subset, and (ii) priorities of cached data units that are stored in the second memory cache and do not belong to the subset.

### Claim 5 (depends on 1)

The method according to claim 1, comprising selecting cached data units that belong to the subset based on priorities of the cached data units.

### Claim 6 (depends on 1)

The method according to claim 1, comprising managing the first memory cache and the second memory cache by the first storage controller.

### Claim 7 (depends on 1)

The method according to claim 1, comprising managing the second memory cache by the first storage controller, without managing the first memory cache by the first storage controller.

### Claim 8 (depends on 1)

The method according to claim 1, comprising generating, by the first storage controller, another retrieval information for retrieving, from the permanent storage space, another subset of cached data units that is cached in the second cache memory and was destaged to the permanent storage space.

### Claim 9 (depends on 8)

The method according to claim 8, comprising sending the additional retrieval information to another storage controller of the storage system.

### Claim 10

A non-transitory computer readable medium that stores instructions that once executed by a storage controller of a storage system, cause the storage controller to execute the steps of:
obtaining retrieval information for retrieving, from a permanent storage space, a subset of cached data units, the subset of the cached data units forms a part of a set of cached data units that are cached in a first cache memory and were destaged to the permanent storage space;
selecting cached data units that belong to the subset, wherein the selecting is based on an estimate of which cached data units out of the set of cached data units are associated with a majority of access requests aimed to the first cache memory;
and
retrieving, using the retrieval information, at least some of the cached data units of the subset from the permanent storage space to a second cache memory, wherein the retrieving occurs in response to an occurrence of a failure to access the first cache memory; wherein the second cache memory differs from the first cache memory.

### Claim 11 (depends on 10)

The non-transitory computer readable medium according to claim 10, that stores instructions for receiving, by the storage system, a request to read a data unit that is included in the at least some of the cached data units, and retrieving the data unit from the second cache memory.

### Claim 12 (depends on 10)

The non-transitory computer readable medium according to claim 10, that stores instructions for initiating the retrieving of the at least some of the cached data units before receiving access requests by the first storage controller.

### Claim 13 (depends on 10)

The non-transitory computer readable medium according to claim 10, that stores instructions for controlling the retrieving of the at least some of the cached data units based on (i) priorities of cached data units that belong to the subset, and (ii) priorities of cached data units that are stored in the second memory cache and do not belong to the subset.

### Claim 14 (depends on 10)

The non-transitory computer readable medium according to claim 10, that stores instructions for selecting cached data units that belong to the subset based on priority of the cached data units.

### Claim 15 (depends on 10)

The non-transitory computer readable medium according to claim 10, that stores instructions for managing the first memory cache and the second memory cache by the first storage controller.

### Claim 16 (depends on 10)

The non-transitory computer readable medium according to claim 10, that stores instructions for managing the second memory cache by the first storage controller, without managing the first memory cache by the first storage controller.

### Claim 17 (depends on 10)

The non-transitory computer readable medium according to claim 10, that stores instructions for generating, by the first storage controller, another retrieval information for retrieving, from the permanent storage space, another subset of cached data units that is cached in the second cache memory and was destaged to the permanent storage space.

### Claim 18 (depends on 17)

The non-transitory computer readable medium according to claim 17, that stores instructions for sending the additional retrieval information to another storage controller of the storage system.

### Claim 19

A storage system comprising a first storage controller, a first cache memory, a second cache memory unit and a permanent storage space, wherein the first storage controller is configured to (a) obtain retrieval information for retrieving, from a permanent storage space, a subset of cached data units, the subset of the cached data units forms a part of a set of cached data units that are cached in a first cache memory and were destaged to the permanent storage space; (b) select cached data units that belong to the subset, based on an estimate of which cached data units out of the set of cached data units are associated with a majority of access requests aimed to the first cache memory; and (c) retrieve, using the retrieval information, at least some of the cached data units of the subset from the permanent storage space to a second cache memory, wherein the retrieving occurs in response to an occurrence of a failure to access the first cache memory; wherein the second cache memory differs from the first cache memory.
