Virtual Machine Memory Dispatching to Avoid Garbage Collection

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Virtual machines experience performance delays due to garbage collection, which pauses active tasks and objects, and existing load balancing techniques either reduce heap memory size or require multiple VMs, leading to performance degradation and communication overheads.

Innovation Solution

A computer-implemented method that estimates unused memory in virtual machines, identifies VMs with sufficient unused memory for new applications, and dispatches these applications to VMs with available memory, minimizing the risk of garbage collection and optimizing memory usage.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Quantity of substance

If existing load balancing techniques reduce heap memory size, then memory allocation efficiency improves, but virtual machine performance degrades due to frequent garbage collection

Engineering Contradiction:
Improveheap memory sizeVSAvoidvirtual machine performance
Core Design Contradiction:
Quantity of substanceVSProductivity

Solution Approach 1:

The system performs preliminary estimation of memory requirements for incoming applications before dispatching them to virtual machines. By predicting the memory needs in advance and selecting target VMs with sufficient unused memory capacity, the system prevents future memory shortages that would trigger garbage collection, thus maintaining VM performance while improving memory allocation efficiency

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system maintains historical data on actual memory usage of applications and uses this feedback to continuously improve its estimation accuracy. By comparing predicted memory usage with actual usage, the system refines its prediction model to better identify suitable target VMs, thereby optimizing both memory allocation and performance without triggering frequent garbage collection

Inventive Principle:
Principle #23Feedback

2Quantity of substance

If existing load balancing techniques require multiple virtual machines, then memory capacity increases, but system complexity and communication overhead increase

Engineering Contradiction:
Improvememory capacityVSAvoidnumber of virtual machines
Core Design Contradiction:
Quantity of substanceVSDevice complexity

Solution Approach 1:

The system proactively monitors and estimates the unused memory capacity of existing virtual machines before new applications arrive. By maintaining an updated view of available memory resources in advance, the system can allocate memory within existing VMs rather than provisioning new ones, thereby increasing effective memory capacity without increasing the number of VMs or associated complexity

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system enables existing virtual machines to serve multiple applications dynamically by reallocating memory based on actual usage patterns. Instead of dedicating fixed memory to each VM, the system allows VMs to accommodate different applications with varying memory needs, making the existing VM infrastructure more versatile and reducing the need for additional VM instances

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

3Productivity

If virtual machines allocate sufficient memory to avoid garbage collection, then application execution efficiency improves, but memory allocation efficiency deteriorates

Engineering Contradiction:
Improveapplication execution efficiencyVSAvoidmemory allocation efficiency
Core Design Contradiction:
ProductivityVSQuantity of substance

Solution Approach 1:

The system estimates the actual memory requirements of applications before dispatching them to virtual machines. By predicting memory needs in advance and allocating precisely the required amount rather than excessive memory, the system ensures sufficient memory is available for efficient execution while avoiding wasteful over-allocation that would reduce overall memory allocation efficiency

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system dynamically adjusts memory allocation parameters based on application characteristics and historical usage data. By changing the allocation strategy from fixed or conservative estimates to data-driven predictions, the system optimizes the balance between providing sufficient memory for efficient execution and maintaining high overall memory utilization across the virtualized environment

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS9547520B1Virtual machine load balancing
Publication Date: 2017.01.17 MAPLEBEAR INC
  • US9547520B1 patent drawing
  • US9547520B1 patent drawing
  • US9547520B1 patent drawing

AI summary

The method includes estimating an amount of unused memory in a memory allocation of one or more virtual machines based on a data associated with one or more applications previously dispatched to the one or more virtual machines. The method includes receiving a request for executing a new application. The method includes estimating an amount of memory utilized by one of the one or more virtual machines to execute the new application. The method includes dispatching the new application to one of the one or more virtual machine having an amount of unused memory exceeding the estimated amount of memory required to execute the new application. The method includes updating the data associated with the one or more applications previously dispatched to the one or more virtual machines by adding an identifier of the new application to the data.