IP Library Granted Patent US 9,170,950
Granted Patent B2
US 9,170,950 · App. 13/742,530 · Granted Oct 27, 2015

Method, apparatus and computer programs providing cluster-wide page management

Inventors: Parijat Dube (Yorktown Heights, NY); Xavier R. Guerin (White Plains, NY); Seetharami R. Seelam (Yorktown Heights, NY)
Assignee: International Business Machines Corporation
G06F12/084G06F12/08G06F17/30G06F2212/152G06F2212/163
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,170,950
App. No.
13/742,530
Granted
Oct 27, 2015
Kind
B2
Abstract

An exemplary method in accordance with embodiments of this invention includes, at a virtual machine that forms a part of a cluster of virtual machines, computing a key for an instance of a memory page that is to be swapped out to a shared memory cache that is accessible by all virtual machines of the cluster of virtual machines; determining if the computed key is already present in a global hash map that is accessible by all virtual machines of the cluster of virtual machines; and only if it is determined that the computed key is not already present in the global hash map, storing the computed key in the global hash map and the instance of the memory page in the shared memory cache.

Claims (20)

1. A method comprising:

at a virtual machine that forms a part of a cluster of virtual machines, computing a key for an instance of a memory page that is to be swapped out to a shared memory cache that is accessible by all virtual machines of the cluster of virtual machines;

determining if the computed key is already present in a global hash map that is accessible by all virtual machines of the cluster of virtual machines; and

only if it is determined that the computed key is not already present in the global hash map, storing the computed key in the global hash map and the instance of the memory page in the shared memory cache.

2. The method as in claim 1 , where computing the key comprises at least in part processing the instance of the memory page using a hashing algorithm.

3. The method of claim 1 , where the shared memory cache is comprised of an in-memory shared memory cache and where access to the in-memory shared memory cache is via remote direct memory access (RDMA) interconnects.

4. The method of claim 1 , where prior to migrating the virtual machine from a first instance of a virtual machine to a second instance of a virtual machine, sending information relating to a plurality of the keys to the second instance of the virtual machine enabling the second instance of the virtual machine to retrieve a corresponding plurality of memory pages from the shared memory cache.

5. The method as in claim 4 , where the information comprises a pointer to a location where the plurality of keys are stored.

6. The method as in claim 5 , where the plurality of keys are stored with the memory pages in the shared memory cache.

7. The method as in claim 1 , where for a memory page that is identical to a memory page associated with another virtual machine of the cluster of virtual machines there is a single key identifying the memory page in the global hash map.

8. A non-transitory computer-readable storage medium containing data representing computer-executable program code, where execution of the program code results in operations that comprise:

at a virtual machine that forms a part of a cluster of virtual machines, computing a key for an instance of a memory page that is to be swapped out to a shared memory cache that is accessible by all virtual machines of the cluster of virtual machines;

determining if the computed key is already present in a global hash map that is accessible by all virtual machines of the cluster of virtual machines; and

only if it is determined that the computed key is not already present in the global hash map, storing the computed key in the global hash map and the instance of the memory page in the shared memory cache.

9. The non-transitory computer-readable storage medium as in claim 8 , where computing the key comprises at least in part processing the instance of the memory page using a hashing algorithm.

10. The non-transitory computer-readable storage medium as in claim 8 , where the shared memory cache is comprised of an in-memory shared memory cache and where access to the in-memory shared memory cache is via remote direct memory access (RDMA) interconnects.

11. The non-transitory computer-readable storage medium as in claim 8 , where prior to migrating the virtual machine from a first instance of a virtual machine to a second instance of a virtual machine, sending information relating to a plurality of the keys to the second instance of the virtual machine enabling the second instance of the virtual machine to retrieve a corresponding plurality of memory pages from the shared memory cache.

12. The non-transitory computer-readable storage medium as in claim 11 , where the information comprises a pointer to a location where the plurality of keys are stored.

13. The non-transitory computer-readable storage medium as in claim 12 , where the plurality of keys are stored with the memory pages in the shared memory cache.

14. The non-transitory computer-readable storage medium as in claim 8 , where for a memory page that is identical to a memory page associated with another virtual machine of the cluster of virtual machines there is a single key identifying the memory page in the global hash map.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 16, 2013
From: DUBE, PARIJAT; GUERIN, XAVIER R.; SEELAM, SEETHARAMI R.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 029637/0970 →
Continuity (1)
Related Publication 20140201302A1 · Jul 17, 2014