Shared Class Cache for Virtual Machine Memory Optimization

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In virtualized computer environments, virtual machine applications running on guest operating systems cannot share class data, leading to multiple copies of the same data residing in host memory, which results in suboptimal use of physical memory.

Innovation Solution

A method is implemented to share class data among virtual machine applications by using a shared memory facility, such as cross-guest shared memory or discontiguous saved segments, which designates a range of physical memory for sharing across guests, accessible via direct memory mapping, a cluster file system, or an application programming interface, and includes a class cache for storing shared class data.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If class data is loaded into each guest's allocation of host physical memory, then each virtual machine application can access and execute classes, but multiple copies of the same class data may reside in host memory resulting in suboptimal use of physical memory

Engineering Contradiction:
Improveclass data accessibilityVSAvoidphysical memory usage
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

The patent merges class data storage across multiple guests by introducing a shared class cache in host physical memory. Instead of each guest maintaining separate copies of class data, the system combines them into a single shared repository that all guests can access, thereby eliminating redundant data copies while maintaining accessibility.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The patent introduces a class cache as an intermediary structure between guests and their class data needs. This intermediary layer sits in host physical memory and mediates class data requests from multiple guests, serving as a shared resource that reduces the need for individual guests to maintain separate data copies.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Quantity of substance

If a shared class cache is implemented across guests, then physical memory usage is optimized by eliminating multiple copies of class data, but the system complexity increases due to memory management requirements

Engineering Contradiction:
Improvephysical memory usageVSAvoidmemory management complexity
Core Design Contradiction:
Quantity of substanceVSDevice complexity

Solution Approach 1:

The patent implements a universal memory management facility that handles multiple functions: it manages the shared class cache, provides direct memory mapping for guests, and coordinates memory access across different virtual machines. This multi-functional approach consolidates complexity into a single system component rather than requiring separate mechanisms for each function.

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

Solution Approach 2:

The patent uses virtual memory mapping to create virtual copies of the shared class cache in each guest's address space. This allows multiple guests to access the same physical memory region as if they had separate copies, maintaining the illusion of independence while achieving shared storage. The direct memory mapping mechanism provides efficient access without requiring complex data synchronization protocols.

Inventive Principle:
Principle #26Copying

Data Source

PatentUS10061701B2Sharing of class data among virtual machine applications running on guests in virtualized environment using memory management facility
Publication Date: 2018.08.28 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US10061701B2 patent drawing
  • US10061701B2 patent drawing
  • US10061701B2 patent drawing

AI summary

A method, system and computer program product for sharing class data among virtual machine applications running on one or more guests in a virtualized environment. A control program in a virtual operating system is used to manage the user portions of the virtual operating system, each commonly referred to as a guest. A guest operating system runs on each guest and applications can run on each guest operating system. A memory management facility manages shared memory which includes a class cache configured to store class data. The shared memory may be mounted onto each guest using a cluster file system or accessed via an API interface thereby allowing the class cache to be shared across the guests. By sharing the class cache among the guests, multiple copies of the same class data are no longer necessary thereby optimally using the physical memory on the host.