Transcendent Page Caching for Virtual Machine Memory

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In virtualized computer systems, physical memory is often used inefficiently due to idle memory in virtual machines, as existing methods like ballooning fail to rapidly respond to changing demands and struggle with determining necessary memory allocation, leading to reduced performance and increased costs.

Innovation Solution

Implementing transcendent page caching by establishing virtual machines with private caches and a shared cache managed by a hypervisor, where memory pages are delayed for removal and stored in the shared cache upon request, allowing for efficient memory allocation and reuse across virtual machines.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If ballooning is used to transfer idle memory from one VM to another VM, then memory allocation flexibility is improved, but response speed to changing demands deteriorates

Engineering Contradiction:
Improvememory allocation flexibilityVSAvoidresponse speed to changing demands
Core Design Contradiction:
Adaptability or versatilityVSSpeed

Solution Approach 1:

The system pre-loads memory pages into a shared cache before they are actually needed by VMs. When a VM requires memory, the pages are already available in the shared cache, eliminating the need for rapid reallocation during demand changes. This preliminary preparation resolves the contradiction by having memory ready in advance rather than reallocating it reactively.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

A shared cache is introduced as an intermediary layer between physical memory and VM private caches. This shared cache acts as a buffer that can rapidly provide memory pages to multiple VMs simultaneously, resolving the speed limitation of direct ballooning while maintaining the flexibility of dynamic memory allocation through the hypervisor-managed shared cache.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If large amounts of physical memory are allocated to VMs to ensure availability, then memory accessibility is improved, but memory utilization efficiency deteriorates

Engineering Contradiction:
Improvememory availabilityVSAvoidmemory utilization efficiency
Core Design Contradiction:
ReliabilityVSLoss of energy

Solution Approach 1:

The shared cache enables memory pages to serve multiple VMs simultaneously. A single memory page stored in the shared cache can be shared across multiple VMs that need it, rather than duplicating the same page in each VM's private cache. This multi-functionality improves utilization efficiency while ensuring availability to all requesting VMs.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Solution Approach 2:

The system merges the memory caching functions of multiple VMs into a single shared cache managed by the hypervisor. Instead of each VM maintaining separate private caches with potential duplication, the shared cache consolidates these resources, reducing total memory consumption while maintaining availability through centralized management and rapid page delivery.

Inventive Principle:
Principle #5Merging (Combining)

3Productivity

If memory pages are immediately removed from private cache when designated for removal, then cache space availability is improved, but memory access performance deteriorates

Engineering Contradiction:
Improvecache space availabilityVSAvoidmemory access performance
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

Instead of immediately removing pages from private caches, the system preliminarily transfers them to the shared cache first. This preliminary action ensures that pages remain accessible to VMs that still need them, while the private cache is freed for new pages. The shared cache acts as a temporary holding area that prevents performance degradation during the transition.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The shared cache serves as an intermediary during the memory page transition process. When a page is designated for removal from a private cache, it is transferred to the shared cache rather than being immediately discarded or removed. This intermediary storage ensures continuous availability to any VM that may still need the page while freeing the private cache space, thus resolving the performance-speed contradiction.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS8769205B2Methods and systems for implementing transcendent page caching
Publication Date: 2014.07.01 ORACLE INT CORP
  • US8769205B2 patent drawing
  • US8769205B2 patent drawing
  • US8769205B2 patent drawing

AI summary

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.