# US 2017/0286238 A1 · Methods for filesystem metadata caching to improve failover performance and devices thereof

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

- Number: US 2017/0286238 A1
- Document ID: US20170286238A1
- Status: Published application
- Kind: A1
- Application number: 15/087,401
- Filed: 2016-03-31
- Published: 2017-10-05
- Earliest claimed: 2016-03-31
- Assignees: NetApp, Inc.
- Applicants: NetApp, Inc.
- Inventors: Ram Kesavan; Ananthan Subramanian; Aziz Gulbeden; Christian Compton; Jawahar Tadipatri; Bipin Tomar; Joseph Allen Brown, JR.
- Web page: https://patentgrep.com/patent/US20170286238A1

## CPC

- G06F 11/1662: {the resynchronized component or unit being a persistent storage device (re-synchronization of failed mirror storage G06F11/2082; rebuild or reconstruction of parity RAID storage G06F11/1008)}
- G06F 11/1666: {where the redundant component is memory or memory area}
- G06F 12/0802: Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F 16/164: {File meta data generation}
- G06F 16/182: Distributed file systems
- G06F 11/20: using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F 2212/1032: Reliability improvement, data loss prevention, degraded operation etc
- G06F 2212/2024: Rewritable memory not requiring erasing, e.g. resistive or ferroelectric RAM
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A method, non-transitory computer readable medium, and device that assists with caching filesystem metadata to a partner non-volatile random-access memory (NVRAM) includes caching metadata related to an incoming data modifying operation generated by a client computing device to at least one storage controller device in a cluster. A service interruption event that makes a data block present in the storage device of a hosting storage node inaccessible to the client computing device is determined for during the caching. The requested metadata block from the at least one NVRAM is retrieved when the service interruption event is determined. The cache is warmed using the retrieved metadata block from the at least one NVRAM.

## Claims

### Claim 1

A method for mirroring metadata to a partner system memory, the method comprising:
caching, by a storage controller device, metadata related to an incoming data modifying operation processed by a client computing device to one or more storage devices comprising at least one non-volatile random access memory (NVRAM);
determining, by the storage controller device, during the caching when there is a service interruption event making a data block present in the storage devices of a hosting storage node inaccessible to the client computing device;
retrieving, by the storage controller device, the requested metadata block from the at least one NVRAM when the service interruption event is determined; and
warming a cache, by the storage controller device, using the retrieved metadata block from the at least one NVRAM.

### Claim 2 (depends on 1)

The method as set forth in claim 1 wherein the at least one NVRAM comprises a local NVRAM, or a partner NVRAM or system memory of a partner storage node.

### Claim 3 (depends on 1)

The method as set forth in claim 1 further comprising:
determining, by the storage controller device, when the data block required for the incoming data operation request is present in a storage device of the hosting storage node;
obtaining, by the storage controller device, the data block required to process the received data operation request from a storage device of the hosting storage node when the determining indicates the data block required for the received data operation request is not present in a system memory of the hosting storage node; and
caching, by the storage controller device, the obtained data block in the NVRAM of the hosting storage node.

### Claim 4 (depends on 1)

The method as set forth in claim 1 further comprising:
determining, by the storage controller device, when the NVRAM of the hosting storage node or the NVRAM of the partner storage node reaching a threshold memory size due to the incoming data modifying operation; and
transferring, by the storage controller device, content in the NVRAM of the hosting storage node or the NVRAM of the partner storage node that has exceeded the threshold from the system memory or the NVRAM to a memory location on one of the plurality of storage devices.

### Claim 5

A non-transitory computer readable medium having stored thereon instructions for mirroring metadata to a partner non-volatile random-access memory (NVRAM) comprising executable code which when executed by a processor, causes the processor to perform steps comprising:
caching metadata related to an incoming data modifying operation processed by a client computing device to one or more storage devices comprising at least one non-volatile random access memory (NVRAM);
determining during the caching when there is a service interruption event making a data block present in the storage devices of a hosting storage node inaccessible to the client computing device;
retrieving the requested metadata block from the at least one NVRAM when the service interruption event is determined; and
warming a cache using the retrieved metadata block from the at least one NVRAM.

### Claim 6 (depends on 5)

The medium as set forth in claim 5 wherein the at least one NVRAM comprises a local NVRAM, or a partner NVRAM or system memory of a partner storage node.

### Claim 7 (depends on 5)

The medium as set forth in claim 5 further comprising:
determining when the data block required for the incoming data operation request is present in a storage device of the hosting storage node;
obtaining the data block required to process the received data operation request from a storage device of the hosting storage node when the determining indicates the data block required for the received data operation request is not present in a system memory of the hosting storage node; and
caching the obtained data block in the NVRAM of the hosting storage node.

### Claim 8 (depends on 5)

The medium as set forth in claim 5 further comprising:
determining when the NVRAM of the hosting storage node or the NVRAM of the partner storage node reaching a threshold memory size due to the incoming data modifying operation; and
transferring content in the NVRAM of the hosting storage node or the NVRAM of the partner storage node that has exceeded the threshold from the system memory or the NVRAM to a memory location on one of the plurality of storage devices.

### Claim 9

A storage controller device comprising:
a processor;
a memory coupled to the processor which is configured to be capable of executing programmed instructions comprising and stored in the memory to:
cache metadata related to an incoming data modifying operation processed by a client computing device to one or more storage devices comprising at least one non-volatile random access memory (NVRAM);
determine during the caching when there is a service interruption event making a data block present in the storage devices of a hosting storage node inaccessible to the client computing device;
retrieve the requested metadata block from the at least one NVRAM when the service interruption event is determined; and
warm a cache using the retrieved metadata block from the at least one NVRAM.

### Claim 10 (depends on 9)

The device as set forth in claim 9 wherein the at least one NVRAM comprises a local NVRAM, or a partner NVRAM or system memory of a partner storage node.

### Claim 11 (depends on 11)

The device as set forth in claim 11 wherein the processor coupled to the memory is further configured to be capable of executing at least one additional programmed instruction comprising and stored in the memory to:
determine when the data block required for the incoming data operation request is present in a storage device of the hosting storage node;
obtain the data block required to process the received data operation request from a storage device of the hosting storage node when the determining indicates the data block required for the received data operation request is not present in a system memory of the hosting storage node; and
cache the obtained data block in the NVRAM of the hosting storage node.

### Claim 12 (depends on 11)

The device as set forth in claim 11 wherein the processor coupled to the memory is further configured to be capable of executing at least one additional programmed instruction comprising and stored in the memory to:
determine when the NVRAM of the hosting storage node or the NVRAM of the partner storage node reaching a threshold memory size due to the incoming data modifying operation; and
transfer content in the NVRAM of the hosting storage node or the NVRAM of the partner storage node that has exceeded the threshold from the system memory or the NVRAM to a memory location on one of the plurality of storage devices.
