IP Library › Granted Patent US 10,915,455
Granted Patent B2
US 10,915,455 · App. 16/561,668 · Granted Feb 9, 2021

Cache warming: agility for a stateful service

Inventors: Deva Jayaraman (Fremont, CA); Shashi Madappa (Campell, CA); Sridhar Enugula (Fremont, CA); Ioannis Papapanagiotou (San Jose, CA)
Assignee: Netflix, Inc.
G06F12/0895G06F3/067G06F3/0647G06F9/3891G06F12/0837G06F12/0891G06F3/0607
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,915,455
App. No.
16/561,668
Granted
Feb 9, 2021
Kind
B2
Abstract

The disclosed computer-implemented method includes receiving an indication that cache data is to be copied from an originating cluster having a specified number of replica nodes to a destination cluster having an arbitrary number of replica nodes. The method further includes copying the cache data to a cache dump and creating a log that identifies where the cache data is stored in the cache dump. The method further includes copying the cache data from the cache dump to the replica nodes of the destination cluster. The copying includes writing the copied data in a distributed manner, such that at least a portion of the copied data is distributed over each of the replica nodes in the destination cluster. Various other methods, systems, and computer-readable media are also disclosed.

Claims (34)

1. A computer-implemented method comprising:

receiving an indication that one or more portions of cache data are to be copied from an originating cluster having a specified number of replica nodes to a destination cluster having an arbitrary number of replica nodes;

copying the one or more portions of cache data to a cache dump;

creating a log that identifies where the one or more portions of cache data are stored in the cache dump; and

copying the one or more portions of cache data from the cache dump to the replica nodes of the destination cluster, wherein the copying includes writing the copied data in a distributed manner, such that at least a portion of the copied data is distributed over each of the replica nodes in the destination cluster.

2. The computer-implemented method of claim 1 , wherein the one or more portions of cache data are copied from the cache dump to the replica nodes of the destination cluster while the originating cluster and destination clusters are fulfilling client requests.

3. The computer-implemented method of claim 1 , wherein replica nodes are dynamically added to or removed from the destination cluster.

4. The computer-implemented method of claim 3 , wherein a cache warmer controller tracks the added or removed nodes in the destination cluster.

5. The computer-implemented method of claim 4 , wherein the cache warmer controller indicates where to copy the cache data when the nodes are added or removed from the destination cluster.

6. The computer-implemented method of claim 1 , wherein the one or more portions of cache data are copied to the cache dump in configurable size data chunks.

7. The computer-implemented method of claim 6 , wherein the configurable-size data chunks are copied to the cache dump as each data chunk becomes available.

8. The computer-implemented method of claim 7 , wherein the configurable-size data chunks are copied from the cache dump to the destination cluster as each data chunk becomes available.

9. The computer-implemented method of claim 8 , wherein piecewise copying of the configurable-size data chunks from the cache dump to the destination cluster allows the destination cluster to be populated without waiting for an entire replica to be copied to the cache dump.

10. The computer-implemented method of claim 1 , wherein each cache replica node includes multiple key-chunks, allowing the cache data to be copied to the cache dump in parallel.

11. The computer-implemented method of claim 1 , wherein the destination cluster includes at least one replica node from the originating cluster.

12. A system comprising:

at least one physical processor; and

physical memory comprising computer-executable instructions that, when executed by the physical processor, cause the physical processor to:

receive an indication that one or more portions of cache data are to be copied from an originating cluster having a specified number of replica nodes to a destination cluster having an arbitrary number of replica nodes;

copy the one or more portions of cache data to a cache dump;

create a log that identifies where the one or more portions of cache data are stored in the cache dump; and

copy the one or more portions of cache data from the cache dump to the replica nodes of the destination cluster, wherein the copying includes writing the copied data in a distributed manner, such that at least a portion of the copied data is distributed over each of the replica nodes in the destination cluster.

13. The system of claim 12 , wherein the originating cluster is scalable to a new destination cluster at a plurality of different ratios of replica nodes from the originating cluster to the new destination cluster.

14. The system of claim 12 , wherein copying the one or more portions of cache data from the cache dump to the replica nodes of the destination cluster occurs asynchronously from the copying of the cache data to the cache dump.

15. The system of claim 14 , wherein one or more of the asynchronous cache data copies are scheduled for a time when the destination cluster replica nodes are below a specified threshold level of use.

16. The system of claim 12 , wherein at least one replica node of the originating cluster sends a message when at least a portion of the cache data has been copied to the cache dump.

17. The system of claim 16 , wherein the message triggers a cache warmer controller to begin copying the one or more portions of cache data from the cache dump to the replica nodes of the destination cluster.

18. The system of claim 12 , wherein the one or more portions of cache data are copied from the cache dump to the replica nodes of the destination cluster based on at least one of current detected usage or predicted usage of the destination cluster.

19. The system of claim 12 , wherein the one or more portions of cache data copied from the cache dump to the replica nodes of the destination cluster comprise snapshot data representing a snapshot of cache data.

20. A non-transitory computer-readable medium comprising one or more computer-executable instructions that, when executed by at least one processor of a computing device, cause the computing device to:

receive an indication that one or more portions of cache data are to be copied from an originating cluster having a specified number of replica nodes to a destination cluster having an arbitrary number of replica nodes;

copy the one or more portions of cache data to a cache dump;

create a log that identifies where the one or more portions of cache data are stored in the cache dump; and

copy the one or more portions of cache data from the cache dump to the replica nodes of the destination cluster, wherein the copying includes writing the copied data in a distributed manner, such that at least a portion of the copied data is distributed over each of the replica nodes in the destination cluster.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 8, 2019
From: JAYARAMAN, DEVA; MADAPPA, SHASHI; ENUGULA, SRIDHAR; PAPAPANAGIOTOU, IOANNIS
To: NETFLIX, INC
Reel/Frame 050656/0472 →
Continuity (2)
Provisional Application 62775217 · Dec 4, 2018
Related Publication 20200174940A1 · Jun 4, 2020
Cited By (1)
US 12,261,906