IP Library Granted Patent US 9,176,889
Granted Patent B1
US 9,176,889 · App. 13/837,303 · Granted Nov 3, 2015

Virtual machine memory management

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,176,889
App. No.
13/837,303
Granted
Nov 3, 2015
Kind
B1
Abstract

Methods, systems, and apparatus, including computer programs encoded on computer storage media, for determining image search results. One of the methods includes receiving a notification that contents of a first memory page for a first virtual machine on a first host machine are the same as contents of a second memory page for a second virtual machine on a second different host machine. Storage space occupied by the first memory page on the first host machine is deallocated based on the notification. A request from the first virtual machine for the first memory page is received. In response to the request, a copy of contents of the second memory page is obtained from the second host machine.

Claims (68)

1. A computer-implemented method comprising:

receiving a notification that contents of a first memory page for a first virtual machine on a first host machine are the same as contents of a second memory page for a second virtual machine on a second different host machine, wherein a memory page is a segment of computer-executable instructions or data;

deallocating storage space occupied by the first memory page on the first host machine in response to receiving the notification;

receiving a request from the first virtual machine for the first memory page; and

in response to the request, obtaining a copy of contents of the second memory page from the second host machine.

2. The method of claim 1 , wherein the first memory page and the second memory page are guest physical memory pages.

3. The method of claim 1 , wherein receiving the notification comprises receiving the notification from a service that manages virtual machine memory pages in a datacenter.

4. The method of claim 1 , further comprising:

receiving an identification of the second host machine, and wherein obtaining a copy of contents of the second memory page from the second host machine comprises requesting the copy from the second host machine based on the identification.

5. The method of claim 1 , further comprising:

in response to obtaining a copy of the second memory page, loading the second memory page into random access memory of the first host machine.

6. The method of claim 1 , further comprising:

providing a notification to a virtual machine monitor on the first host machine that the second memory page is available for access by the first virtual machine.

7. The method of claim 1 , further comprising:

computing usage statistics for one or more virtual machine memory pages used by one or more virtual machines on the first host machine; and

identifying one or more virtual machine memory pages with usage that is less than a threshold based at least in part on the computed usage statistics.

8. The method of claim 6 , further comprising:

receiving a request for usage statistics on one or more virtual machine memory pages; and

providing usage statistics for the identified one or more virtual machine memory pages in response to the request.

9. A computer-implemented method comprising:

determining that multiple memory pages whose contents are the same are used by multiple different virtual machines that are each hosted by a different respective host machine of a plurality of host machines;

storing, by a first host machine, contents of a memory page from one of the multiple memory pages whose contents are the same;

receiving, from a different second host machine that previously deallocated memory space storing the contents of the memory page, a request for location information of the stored contents of the memory page; and

providing, to the second host machine in response to the request, location information identifying a location of the contents of the memory page stored by the first host machine.

10. The method of claim 9 , further comprising:

computing usage statistics for virtual machine memory pages used by one or more virtual machines in a datacenter; and

determining that the multiple memory pages whose contents are the same each have a usage statistic that satisfies a threshold.

11. The method of claim 9 , further comprising:

providing a notification to each of the plurality of host machines that the respective one or more memory pages can be deallocated.

12. The method of claim 9 , further comprising:

storing multiple copies of the contents of the memory page, wherein each copy of the multiple copies is maintained on a different host machine.

13. A system comprising:

one or more computers and one or more storage devices storing instructions that are operable, when executed by the one or more computers, to cause the one or more computers to perform operations comprising:

receiving a notification that contents of a first memory page for a first virtual machine on a first host machine are the same as contents of a second memory page for a second virtual machine on a second different host machine, wherein a memory page is a segment of computer-executable instructions or data;

deallocating storage space occupied by the first memory page on the first host machine in response to receiving the notification;

receiving a request from the first virtual machine for the first memory page; and

in response to the request, obtaining a copy of contents of the second memory page from the second host machine.

14. The system of claim 13 , wherein the first memory page and the second memory page are guest physical memory pages.

15. The system of claim 13 , wherein receiving the notification comprises receiving the notification from a service that manages virtual machine memory pages in a datacenter.

16. The system of claim 13 , wherein the operations further comprise:

receiving an identification of the second host machine, and wherein obtaining a copy of contents of the second memory page from the second host machine comprises requesting the copy from the second host machine based on the identification.

17. The system of claim 13 , wherein the operations further comprise:

in response to obtaining a copy of the second memory page, loading the second memory page into random access memory of the first host machine.

18. The system of claim 13 , wherein the operations further comprise:

providing a notification to a virtual machine monitor on the first host machine that the second memory page is available for access by the first virtual machine.

19. A system comprising:

one or more computers and one or more storage devices storing instructions that are operable, when executed by the one or more computers, to cause the one or more computers to perform operations comprising:

determining that multiple memory pages whose contents are the same are used by multiple different virtual machines that are each hosted by a different respective host machine of a plurality of host machines;

storing, by a first host machine, contents of a memory page from one of the multiple memory pages whose contents are the same;

receiving, from a different second host machine that previously deallocated memory space storing the contents of the memory page, a request for location information of the stored contents of the memory page; and

providing, to the second host machine in response to the request, location information identifying a location of the contents of the memory page stored by the first host machine.

20. The system of claim 19 , wherein the operations further comprise:

computing usage statistics for virtual machine memory pages used by one or more virtual machines in a datacenter; and

determining that the multiple memory pages whose contents are the same each have a usage statistic that satisfies a threshold.

21. The system of claim 19 , wherein the operations further comprise:

providing a notification to each of the plurality of host machines that the respective one or more memory pages can be deallocated.

22. The method of claim 9 , further comprising:

receiving, by the second host machine from a second virtual machine hosted by the second host machine, a request to access data or instructions in the contents of the memory page;

obtaining, by the second host machine, the contents of the memory page using the location information;

loading the contents of the memory page into memory of the second host machine; and

providing, to the second virtual machine, an indication that the data or instructions are available for access by the second virtual machine.

23. The system of claim 19 , wherein the operations further comprise:

receiving, by the second host machine from a second virtual machine hosted by the second host machine, a request to access data or instructions in the contents of the memory page;

obtaining, by the second host machine, the contents of the memory page using the location information;

loading the contents of the memory page into memory of the second host machine; and

providing, to the second virtual machine, an indication that the data or instructions are available for access by the second virtual machine.

24. The method of claim 1 , wherein deallocating storage space occupied by the first memory page on the first host machine in response to receiving the notification comprises deallocating disk space and random access memory space allocated to the first memory page on the first host machine.

25. The system of claim 13 , wherein deallocating storage space occupied by the first memory page on the first host machine in response to receiving the notification comprises deallocating disk space and random access memory space allocated to the first memory page on the first host machine.

Assignments (2)
CHANGE OF NAME Recorded Oct 2, 2017
From: GOOGLE INC.
To: GOOGLE LLC
Reel/Frame 044334/0466 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 20, 2013
From: EARHART, ROBERT H., III
To: GOOGLE INC.
Reel/Frame 030447/0484 →