IP Library Granted Patent US 9,684,596
Granted Patent B2
US 9,684,596 · App. 14/631,698 · Granted Jun 20, 2017

Application cache replication to secondary application(s)

Inventors: Nikhil Teletia (Madison, WI); Jae Young Do (Madison, WI); Kwanghyun Park (Madison, WI); Jignesh M. Patel (Madison, WI)
Assignee: Microsoft Technology Licensing, LLC
G06F12/0813G06F11/00G06F11/1484G06F12/0246G06F12/0815G06F12/0842G06F12/0875H04L67/1095H04L67/2842G06F11/202G06F2212/264G06F2212/283G06F2212/284G06F2212/452G06F2212/6042
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 9,684,596
App. No.
14/631,698
Granted
Jun 20, 2017
Kind
B2
Abstract

Replicating a primary application cache that serves a primary application on one network node into a secondary application cache that serves a secondary application on a second network node. Cache portions that are within the primary application cache are identified, and then identifiers (but not the cache portions) are transferred to the second network node. Once these identifiers are received, the cache portions that they identify may then be retrieved into the secondary application caches. This process may be repeatedly performed such that the secondary application cache moves towards the same state as the primary application cache though the state of the primary application cache also changes as the primary application operates by receiving read and write requests.

Claims (44)

1. A method, implemented at a computer system that includes one or more processors and a primary application that operates at least in part on a first network node and that includes a primary application cache on the first network node, the primary application having an associated secondary application that operates at least in part on a second network node and that includes a secondary application cache on the second network node, for at least partially replicating the primary application cache in the secondary application cache, the method comprising:

identifying a plurality of cache portions that have been added to the primary application cache;

identifying a plurality of identifiers that are each associated with one of the plurality of cache portions; and

transferring the plurality of identifiers to the second network node, which is configured to:

in response to receiving the plurality of identifiers associated with a plurality of cache portions in the primary application cache, retrieve one or more cache portions that each correspond to one of the plurality of received identifiers, wherein the one or more cache portions are retrieved from a storage node that is shared by the first network node and the second network node; and

cache the at least one cache portion in the secondary application cache.

2. The method in accordance with claim 1 , wherein retrieving the one or more cache portions comprises retrieving all cache portions associated with one of the plurality of received identifiers.

3. The method in accordance with claim 1 , wherein identifying cache portions, identifying identifiers associated with the cache portions, and transferring the identifiers is performed multiple times for different identifiers as the primary application operates.

4. The method in accordance with claim 3 , wherein retrieving cache portions also occurs multiple times as the primary application operates.

5. The method in accordance with claim 4 , wherein an average frequency of transferring the plurality of identifiers is more frequent than an average frequency of retrieving the one or more cache portions by at least twice.

6. The method in accordance with claim 4 , wherein an average frequency of transferring the plurality of identifiers is more frequent than an average frequency of retrieving the one or more cache portions by at least one order of magnitude.

7. The method in accordance with claim 1 , the first network node being a first compute node of a cloud computer system, the second network node being a second compute node of the cloud computer system, and retrieving the one or more cache portions comprises retrieving from a storage node of the cloud computer system.

8. The method in accordance with claim 1 , the method further comprising the following:

transferring at least some of the plurality of identifiers to a third network node that operates at least part of a tertiary application associated with the primary application, the tertiary application including a tertiary application cache on the third network node; and

retrieving, by the third network node, at least one of the cache portions.

9. The method in accordance with claim 1 , the secondary application cache being volatile memory.

10. The method in accordance with claim 9 , the primary application cache also being volatile memory.

11. The method in accordance with claim 1 , the secondary application cache being non-volatile memory and/or storage.

12. The method in accordance with claim 11 , the primary application cache also being non-volatile memory and/or storage.

13. The method in accordance with claim 1 , the primary application being a database application.

14. The method in accordance with claim 1 , the primary application being a virtual machine.

15. The method in accordance with claim 1 , the primary application being an operating system.

16. A computer system comprising:

a first network node comprising one or more first processors and which operates at least part of a primary application at the one or more first processors, the first network node also having a primary application cache of the primary application; and

a second network node comprising one or more second processors and which operates at least part of a secondary application of the primary application at the one or more second processors, the second network node also having a secondary application cache of the secondary application, and in which:

the first node is configured to:

identify a plurality of cache portions that have been added to the primary application cache;

identify a plurality of identifiers that are each associated with one of the plurality of cache portions; and

transfer the plurality of identifiers to the second network node; and

the second node is configured to:

in response to receiving the plurality of identifiers associated with a plurality of cache portions in the primary application cache, retrieve one or more cache portions that each correspond to one of the plurality of received identifiers, wherein the one or more cache portions are retrieved from a storage node that is shared by the first network node and the second network node; and

cache the at least one cache portion in the secondary application cache.

17. A computer program product comprising one or more hardware storage devices having stored thereon computer-executable instructions that are executable by one or more processors of a computer system to cause the computer system to at least partially replicate a primary application cache in a secondary application cache, the computer-executable instructions including instructions that are executable to cause the computer system to perform at least the following:

associate a primary application running on first network node with a secondary application running on second network node, the primary application including a primary application cache on the first network node, and the secondary application including a secondary application cache on the second network node;

identify a plurality of cache portions that have been added to the primary application cache;

identify a plurality of identifiers that are each associated with one of the plurality of cache portions;

transfer the plurality of identifiers to the second network node, which is configured to:

in response to receiving the plurality of identifiers associated with a plurality of cache portions in the primary application cache, retrieve one or more cache portions that each correspond to one of the plurality of received identifiers, wherein the one or more new cache portions are retrieved from a storage node that is shared by the first network node and the second network node; and

cache the at least one cache portion in the secondary application cache.

18. The computer program product in accordance with claim 17 , wherein the computer-executable instructions further include instructions that are executable to cause the computer system to identify which cache portions associated with the received identifiers are to be retrieved based on a role of the secondary application.

19. The computer program product in accordance with claim 17 , wherein the computer-executable instructions further include instructions that are executable to cause the computer system to identify which of the cache portions associated with the received identifiers are to be retrieved based on which cache portions are already in the secondary application cache.

20. The computer program product in accordance with claim 17 , wherein the computer-executable instructions further include instructions that are executable to cause the computer system to perform at least the following:

identify one or more cache portions that are to be released from the secondary application cache; and

release the identified one or more cache portions from the secondary application cache.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 26, 2015
From: TELETIA, NIKHIL; DO, JAE YOUNG; PARK, KWANGHYUN; PATEL, JIGNESH M.
To: MICROSOFT TECHNOLOGY LICENSING, LLC.
Reel/Frame 035044/0782 →
Continuity (1)
Related Publication 20160246719A1 · Aug 25, 2016