Transcendent Page Cache for Virtual Machine Memory Optimization

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In virtualized computer systems, a significant portion of physical memory remains idle or underutilized due to inefficiencies in memory management, leading to performance and cost issues, as existing methods like ballooning struggle to rapidly respond to changing demands and accurately determine memory needs.

Innovation Solution

Implementing a shared cache system where idle memory from multiple virtual machines is consolidated and managed by a hypervisor to optimize resource allocation, allowing virtual machines to access a transcendent page cache for improved performance and efficiency.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If ballooning is used to transfer idle memory from one VM to another, then memory can be reallocated between VMs, but the system cannot respond rapidly enough to changing demands and it is difficult to determine the amount of memory that can be safely surrendered

Engineering Contradiction:
Improvememory reallocation responsivenessVSAvoidmemory reallocation time
Core Design Contradiction:
Adaptability or versatilityVSLoss of time

Solution Approach 1:

The system pre-identifies and designates idle memory pages in each VM's private cache as candidates for the shared cache before they are needed. The hypervisor maintains a mapping of these pre-identified idle pages, so when a VM needs memory, the reallocation can occur immediately from the pre-prepared shared cache rather than requiring time-consuming identification and transfer operations at the moment of need.

Inventive Principle:
Principle #10Preliminary action

2Reliability

If large amounts of physical memory are left unassigned or fallow in a virtualized system, then memory can be preserved for future use, but significant capital costs and IT costs are incurred due to inefficient memory utilization

Engineering Contradiction:
Improvememory availability for future useVSAvoidcapital costs and IT costs
Core Design Contradiction:
ReliabilityVSLoss of energy

Solution Approach 1:

The system merges the idle memory resources from multiple different VMs into a single shared cache pool managed by the hypervisor. Instead of leaving memory fallow in individual VMs or transferring it one-on-one between VMs, the system consolidates all available idle memory across the virtualized environment into a unified shared resource that can be dynamically allocated to any VM that needs it, maximizing utilization while maintaining availability.

Inventive Principle:
Principle #5Merging (Combining)

3Ease of operation

If each virtual machine maintains its own private cache, then each VM has dedicated memory access, but a large portion of physical memory remains idle or underutilized across the system

Engineering Contradiction:
Improvededicated memory access for each VMVSAvoidoverall memory utilization
Core Design Contradiction:
Ease of operationVSProductivity

Solution Approach 1:

The shared cache serves multiple functions simultaneously: it acts as an extension of private caches for individual VMs, a pool for dynamic memory reallocation, and a mechanism for improving overall system utilization. The same shared cache infrastructure supports multiple VMs' memory needs without requiring separate dedicated memory pools for each function, allowing the system to maintain ease of operation while dramatically improving productivity through better memory utilization.

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

Data Source

PatentUS9519585B2Methods and systems for implementing transcendent page caching
Publication Date: 2016.12.13 ORACLE INT CORP
  • US9519585B2 patent drawing
  • US9519585B2 patent drawing
  • US9519585B2 patent drawing

AI summary

A method of implementing a shared cache between a plurality of virtual machines may include maintaining the plurality of virtual machines on one or more physical machines. Each of the plurality of virtual machines may include a private cache. The method may also include determining portions of the private caches that are idle and maintaining a shared cache that comprises the portions of the private caches that are idle. The method may additionally include storing data associated with the plurality of virtual machines in the shared cache and load balancing use of the shared cache between the plurality of virtual machines.