# US 2025/0147889 A1 · Systems and methods for cache warming in a distributed data storage system

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

- Number: US 2025/0147889 A1
- Document ID: US20250147889A1
- Status: Published application
- Kind: A1
- Application number: 18/501,692
- Filed: 2023-11-03
- Published: 2025-05-08
- Earliest claimed: 2023-11-03
- Assignees: Stripe, Inc.
- Applicants: Stripe, Inc.
- Inventors: Kanth Kumar Dayanand; Kexin Zhu; Shashi Madappa
- Web page: https://patentgrep.com/patent/US20250147889A1

## CPC

- G06F 12/0824: {Distributed directories, e.g. linked lists of caches}
- G06F 12/0868: Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
- G06F 11/3006: {where the computing system is distributed, e.g. networked systems, clusters, multiprocessor systems (multiprogramming arrangements G06F9/46; allocation of resources G06F9/50)}
- G06F 11/3037: {where the computing system component is a memory, e.g. virtual memory, cache (accessing, addressing or allocating within memory systems or architectures G06F12/00; checking stores for correct operation G11C29/00)}
- G06F 11/3409: {for performance assessment}
- G06F 11/3419: {by assessing time}
- G06F 11/3433: {for load management (allocation of a server based on load conditions G06F9/505; load rebalancing G06F9/5083; redistributing the load in a network by a load balancer H04L67/1029)}
- H04L 67/568: Storing data temporarily at an intermediate stage, e.g. caching
- G06F 12/0862: with prefetch
- G06F 2212/1024: Latency reduction
- G06F 2212/1032: Reliability improvement, data loss prevention, degraded operation etc
- G06F 2212/154: Networked environment
- G06F 2212/284: being distributed
- G06F 2212/314: In storage network, e.g. network attached cache
- G06F 2212/6028: Prefetching based on hints or prefetch instructions
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

A method and apparatus for cache warming in a distributed storage system is described. The method can include detecting a destructive change to one or more nodes of an existing cluster of cache data nodes. The method can also include allocating a new cluster of cache data nodes in a write-only mode, and streaming data from each cache data node of the existing cluster to cache data nodes of the new cluster. The method can further include servicing a data access request from a selected cache data node of the existing cluster while writing data from the data access request to a selected cache data node of the new cluster. Furthermore, the method can include in response to a determination that data from the cache data nodes of the existing cluster has been successfully streamed to the new cluster, servicing new data access requests with the new cluster.

## Claims

### Claim 1

A method for cache warming in a distributed storage system, comprising:
detecting, by a processing system of a distributed caching system, a destructive change to one or more nodes of an existing cluster of cache data nodes;
allocating, by the processing system, a new cluster of cache data nodes in a write-only mode;
streaming data from each cache data node of the existing cluster to cache data nodes of the new cluster, the streaming occurring via one or more router nodes;
in response to a data access request received by a router node of the distributed storage system, servicing the data access request from a selected cache data node of the existing cluster, and writing data from the data access request to a selected cache data node of the new cluster; and
in response to a determination that a configurable amount of data from the cache data nodes of the existing cluster has been successfully streamed to the cache data nodes of the new cluster, reconfiguring, by the processing system, the new cluster of cache data nodes to a read-write mode for servicing new data access requests.

### Claim 2 (depends on 1)

The method of claim 1, further comprising:
generating a notification, by the cache data nodes of the new cluster for the processing system, of a successful warming of the cache data nodes of the new cluster; and
performing the reconfiguring, by the processing system, in response to the notification.

### Claim 3 (depends on 1)

The method of claim 1, further comprising:
shutting down, by the processing system, the existing cluster of cache data nodes.

### Claim 4 (depends on 3)

The method of claim 3, wherein prior to the shutting down of the existing cluster of cache data nodes, the method further comprises:
performing one or more tests on the cache data nodes of the new cluster to validate one or more metrics associated with servicing the new data access requests by the new cluster; and
in response to a validation of the one or more metrics indicating passing of the one or more tests, shutting down the existing cluster of cache data nodes.

### Claim 5 (depends on 4)

The method of claim 4, further comprising:
in response to a non-validation of one or more of the one or more metrics indicating failure of one or more of the one or more tests, shutting down the new cluster;
allocating, by the processing system, a second new cluster of cache data nodes in a write-only mode; and
performing a process to warm data of the second new cluster of cache data nodes form the data of the cache data nodes of the existing cluster.

### Claim 6 (depends on 4)

The method of claim 4, wherein performing the one or more tests on the cache data nodes of the new cluster further comprises:
randomly distributing for a period of time, by router nodes, data access requests between the cache data nodes of the existing cluster and the cache data nodes of the new cluster for servicing of the data access requests received during the period of time;
comparing one or more metrics indicative of the servicing of the data access requests by the cache data nodes of the existing cluster and the cache data nodes of the new cluster during the period of time, the one or more metrics comprising one or more of a failure rate, a data access latency, or cache hit rate;
when the metrics associated with the cache data nodes of the new cluster servicing data access requests during the time period match or exceed metrics associated with the cache data nodes of the existing cluster servicing data access requests during the time period, validating the one or more metrics to enable the shutting down of the existing cluster of cache data nodes.

### Claim 7 (depends on 4)

The method of claim 4, wherein performing the one or more tests on the cache data nodes of the new cluster further comprises:
reconfiguring the cache data nodes of the existing cluster to a write-only mode;
servicing, during a period of time, new data access requests from the cache data nodes of the new cluster, wherein data to be written by the data access requests is written to one or more of the cache data nodes of the existing cluster;
measuring one or more metrics associated with the cache data nodes of the new cluster servicing the new data access requests during the period of time, the one or more metrics comprising a failure rate, a cache miss rate, or latency; and
when the metrics associated with the cache data nodes of the new cluster servicing data access requests during the time period satisfy one or more predefined thresholds, validating the one or more metrics to enable the shutting down of the existing cluster of cache data nodes.

### Claim 8 (depends on 4)

The method of claim 4, wherein performing the one or more tests on the cache data nodes of the new cluster further comprises:
performing a first test comprising:
randomly distributing for a first period of time, by router nodes, data access requests between the cache data nodes of the existing cluster and the cache data nodes of the new cluster for servicing of the data access requests received during the period of time,
comparing one or more first metrics indicative of the servicing of the data access requests by the cache data nodes of the existing cluster and the cache data nodes of the new cluster during the first period of time, the one or more first metrics comprising one or more of a first failure rate, a data access latency, or cache hit rate, and
when the metrics associated with the cache data nodes of the new cluster servicing data access requests during the time period match or exceed metrics associated with the cache data nodes of the existing cluster servicing data access requests during the time period, validating the one or more first metrics and passing the first test;
in response to passing the first test, performing a second test comprising:
reconfiguring the cache data nodes of the existing cluster to a write-only mode,
servicing, during a second period of time after the first period of time, new data access requests from the cache data nodes of the new cluster, wherein data to be written by the data access requests are written to one or more of the cache data nodes of the existing cluster,
measuring one or more second metrics associated with the cache data nodes of the new cluster servicing the new data access requests during the second period of time, the one or more metrics comprising a second failure rate, a cache miss rate, or cache hit rate, and
when the one or more second metrics associated with the cache data nodes of the new cluster servicing data access requests during the second time period satisfy one or more predefined thresholds, validating the one or more second metrics and passing the second test; and
in response to passing the second test, performing the shutting down of the existing cluster of cache data nodes

### Claim 9 (depends on 1)

The method of claim 1, wherein the data is streamed via a second port of each the one or more router nodes, and where data access requests are processed by the one or more router nodes in response to that data access requests being received via a first port of each the one or more router nodes, wherein the first port and the second port are different ports.

### Claim 10 (depends on 1)

The method of claim 1, further comprising:
initiating, by a warming tool at each data node of the existing cluster, the streaming of the data from each cache data node of the existing cluster to cache data nodes of the new cluster.

### Claim 11 (depends on 9)

The method of claim 9, wherein said each data node is a memento data node, and wherein the warming tool comprises a sidecar service of said each data node.

### Claim 12 (depends on 1)

The method of claim 1, wherein the processing system executes a control plane service that manages the distributed storage system.

### Claim 13

A non-transitory machine readable medium, having instructions stored thereon, which when executed by a processing system of a distributed caching system, cause the processing system to perform operations for cache warming in a distributed storage system, comprising:
detecting, by the processing system of the distributed caching system, a destructive change to one or more nodes of an existing cluster of cache data nodes;
allocating, by the processing system, a new cluster of cache data nodes in a write-only mode;
streaming data from each cache data node of the existing cluster to cache data nodes of the new cluster, the streaming occurring via one or more router nodes;
in response to a data access request received by a router node of the distributed storage system, servicing the data access request from a selected cache data node of the existing cluster, and writing data from the data access request to a selected cache data node of the new cluster; and
in response to a determination that a configurable amount of data from the cache data nodes of the existing cluster has been successfully streamed to the cache data nodes of the new cluster, reconfiguring, by the processing system, the new cluster of cache data nodes to a read-write mode for servicing new data access requests.

### Claim 14 (depends on 13)

The non-transitory machine readable medium of claim 13, further comprising:
shutting down, by the processing system, the existing cluster of cache data nodes.

### Claim 15 (depends on 14)

The non-transitory machine readable medium of claim 14, wherein prior to the shutting down of the existing cluster of cache data nodes, the method further comprises:
performing one or more tests on the cache data nodes of the new cluster to validate one or more metrics associated with servicing the new data access requests by the new cluster; and
in response to a validation of the one or more metrics indicating passing of the one or more tests, shutting down the existing cluster of cache data nodes.

### Claim 16 (depends on 15)

The non-transitory machine readable medium of claim 15, further comprising:
in response to a non-validation of one or more of the one or more metrics indicating failure of one or more of the one or more tests, shutting down the new cluster;
allocating, by the processing system, a second new cluster of cache data nodes in a write-only mode; and
performing a process to warm data of the second new cluster of cache data nodes form the data of the cache data nodes of the existing cluster.

### Claim 17 (depends on 15)

The non-transitory machine readable medium of claim 15, wherein performing the one or more tests on the cache data nodes of the new cluster further comprises:
performing a first test comprising:
randomly distributing for a first period of time, by router nodes, data access requests between the cache data nodes of the existing cluster and the cache data nodes of the new cluster for servicing of the data access requests received during the period of time,
comparing one or more first metrics indicative of the servicing of the data access requests by the cache data nodes of the existing cluster and the cache data nodes of the new cluster during the first period of time, the one or more first metrics comprising one or more of a first failure rate, a data access latency, or cache hit rate, and
when the metrics associated with the cache data nodes of the new cluster servicing data access requests during the time period match or exceed metrics associated with the cache data nodes of the existing cluster servicing data access requests during the time period, validating the one or more first metrics and passing the first test;
in response to passing the first test, performing a second test comprising:
reconfiguring the cache data nodes of the existing cluster to a write-only mode,
servicing, during a second period of time after the first period of time, new data access requests from the cache data nodes of the new cluster, wherein data to be written by the data access requests are written to one or more of the cache data nodes of the existing cluster,
measuring one or more second metrics associated with the cache data nodes of the new cluster servicing the new data access requests during the second period of time, the one or more metrics comprising a second failure rate, a cache miss rate, or latency, and
when the one or more second metrics associated with the cache data nodes of the new cluster servicing data access requests during the second time period satisfy one or more predefined thresholds, validating the one or more second metrics and passing the second test; and
in response to passing the second test, performing the shutting down of the existing cluster of cache data nodes

### Claim 18 (depends on 13)

The non-transitory machine readable medium of claim 13, wherein the data is streamed via a second port of each the one or more router nodes, and where data access requests are processed by the one or more router nodes in response to that data access requests being received via a first port of each the one or more router nodes, wherein the first port and the second port are different ports.

### Claim 19 (depends on 13)

The non-transitory machine readable medium of claim 13, further comprising:
initiating, by a warming tool at each data node of the existing cluster, the streaming of the data from each cache data node of the existing cluster to cache data nodes of the new cluster.

### Claim 20

A distributed caching system, comprising:
a memory; and
a processing system coupled with the memory configured to:
detect a destructive change to one or more of data nodes of an existing cluster of cache data nodes,
allocating a new cluster of cache data nodes in a write-only mode,
stream data from each cache data node of the existing cluster to cache data nodes of the new cluster, the streaming occurring via one or more router nodes,
in response to a data access request received by a router node of the distributed storage system, service the data access request from a selected cache data node of the existing cluster, and write data from the data access request to a selected cache data node of the new cluster, and
in response to a determination that a configurable amount of data from the cache data nodes of the existing cluster has been successfully streamed to the cache data nodes of the new cluster, reconfigure the new cluster of cache data nodes to a read-write mode for servicing new data access requests.
