Methods and systems for implementing transcendent page caching
First Claim
1. A computer implemented method of implementing transcendent page caching, the method comprising:
- establishing a plurality of virtual machines on a physical machine, wherein each of the plurality of virtual machines includes a private cache, and wherein a portion of each of the private caches is used to create a shared cache maintained by a hypervisor;
storing memory pages in the plurality of virtual machines'"'"' private caches;
determining that at least one of the stored memory pages has been designated to be removed from one of the plurality of virtual machines'"'"' private caches;
delaying the removal of the at least one of the stored memory pages;
making a request to the hypervisor to allow the stored memory pages designated for removal from the plurality of virtual machines'"'"' private caches and stored in the shared cache, wherein the hypervisor is configured to have access to the shared cache and each of the plurality of virtual machines'"'"' private caches, and wherein the hypervisor is further configured to manage memory and resource allocations for each of the plurality of virtual machines;
analyzing a plurality of factors to determine if the at least one of the stored memory pages in the shared cache should be removed or stored, wherein the plurality of factors includes a usage of the at least one of the stored memory pages, total memory space available in the shared cache, and load balancing between the plurality of virtual machine'"'"'s use of the shared cache;
based on the analysis of the plurality of factors by the hypervisor, storing the at least one of the stored memory pages in the shared cache;
removing the at least one of the stored memory pages from one of the plurality of virtual machines'"'"' private caches;
requesting, by one of the plurality of virtual machines, the at least one of the stored memory pages from the shared cache;
determining that the at least one of the stored memory pages is stored in the shared cache; and
transferring the at least one of the stored shared memory pages to the one of the plurality of virtual machines.
1 Assignment
0 Petitions
Accused Products
Abstract
This disclosure describes, generally, methods and systems for implementing transcendent page caching. The method includes establishing a plurality of virtual machines on a physical machine. Each of the plurality of virtual machines includes a private cache, and a portion of each of the private caches is used to create a shared cache maintained by a hypervisor. The method further includes delaying the removal of the at least one of stored memory pages, storing the at least one of stored memory pages in the shared cache, and requesting, by one of the plurality of virtual machines, the at least one of the stored memory pages from the shared cache. Further, the method includes determining that the at least one of the stored memory pages is stored in the shared cache, and transferring the at least one of the stored shared memory pages to the one of the plurality of virtual machines.
12 Citations
20 Claims
-
1. A computer implemented method of implementing transcendent page caching, the method comprising:
-
establishing a plurality of virtual machines on a physical machine, wherein each of the plurality of virtual machines includes a private cache, and wherein a portion of each of the private caches is used to create a shared cache maintained by a hypervisor; storing memory pages in the plurality of virtual machines'"'"' private caches; determining that at least one of the stored memory pages has been designated to be removed from one of the plurality of virtual machines'"'"' private caches; delaying the removal of the at least one of the stored memory pages; making a request to the hypervisor to allow the stored memory pages designated for removal from the plurality of virtual machines'"'"' private caches and stored in the shared cache, wherein the hypervisor is configured to have access to the shared cache and each of the plurality of virtual machines'"'"' private caches, and wherein the hypervisor is further configured to manage memory and resource allocations for each of the plurality of virtual machines; analyzing a plurality of factors to determine if the at least one of the stored memory pages in the shared cache should be removed or stored, wherein the plurality of factors includes a usage of the at least one of the stored memory pages, total memory space available in the shared cache, and load balancing between the plurality of virtual machine'"'"'s use of the shared cache; based on the analysis of the plurality of factors by the hypervisor, storing the at least one of the stored memory pages in the shared cache; removing the at least one of the stored memory pages from one of the plurality of virtual machines'"'"' private caches; requesting, by one of the plurality of virtual machines, the at least one of the stored memory pages from the shared cache; determining that the at least one of the stored memory pages is stored in the shared cache; and transferring the at least one of the stored shared memory pages to the one of the plurality of virtual machines. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17)
-
-
18. A non-transitory machine-readable medium for implementing transcendent page caching, the machine-readable medium including sets of instructions stored thereon which, when executed by a machine, cause the machine to:
-
establish a plurality of virtual machines on a physical machine, wherein each of the plurality of virtual machines include a private cache, and wherein a portion of each of the private caches is used to create a shared cache maintained by a hypervisor; store memory pages in the plurality of virtual machines'"'"' private caches; determine that at least one of the stored memory pages has been designated to be removed from one of the plurality of virtual machines'"'"' private caches; delay the removal of the at least one of stored memory pages; make a request to the hypervisor to allow the stored memory pages designated for removal from the plurality of virtual machines'"'"' private caches and stored in the shared cache, wherein the hypervisor is configured to have access to the shared cache and each of the plurality of virtual machines'"'"' private caches, and wherein the hypervisor is further configured to manage memory and resource allocations for each of the plurality of virtual machines; analyze a plurality of factors to determine if the at least one of the stored memory pages in the shared cache should be removed or stored, wherein the plurality of factors includes a usage of the at least one of the stored memory pages, total memory space available in the shared cache, and load balancing between the plurality of virtual machine'"'"'s use of the shared cache; based on the analysis of the plurality of factors by the hypervisor, store the at least one of stored memory pages in the shared cache; remove the at least one of the stored memory pages from one of the plurality of virtual machines'"'"' private caches; request, by one of the plurality of virtual machines, the at least one of the stored memory pages from the shared cache; determine that the at least one of the stored memory pages is stored in the shared cache; and transfer the at least one of the stored shared memory pages to the one of the plurality of virtual machines. - View Dependent Claims (19, 20)
-
Specification