Virtual Machine Manager Dynamic Resource Allocation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing virtual machine systems face challenges in dynamically managing resources and load balancing across local and remote processors, leading to inefficiencies in processing and potential failures due to unresponsive remote data processing devices.

Innovation Solution

A system that implements a resource manager and virtual machine manager to dynamically associate application threads with local and remote processors, instantiating or removing virtual processors as needed to maintain optimal load balance and replicate remote data processing devices for failover, while allowing direct memory access to remote memory.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If virtual processors are statically allocated to local processors only, then system simplicity is maintained, but resource utilization efficiency deteriorates when computation load exceeds local processing capacity

Engineering Contradiction:
Improveresource utilization efficiencyVSAvoidsystem complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The system dynamically adjusts the number of virtual processors based on computation load monitoring. When local processors reach capacity, the system automatically instantiates additional virtual processors that can be allocated to remote data processing devices, enabling flexible resource utilization without static constraints

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

A virtual machine manager is introduced as an intermediary component that mediates between application threads and physical processors. This manager handles the complexity of dynamic resource allocation, load balancing, and failover management, shielding applications from system complexity while enabling efficient resource utilization

Inventive Principle:
Principle #24Intermediary (Mediator)

2Productivity

If remote data processing devices are used to handle excess computation load, then processing capacity is improved, but system reliability deteriorates due to potential unresponsiveness of remote devices

Engineering Contradiction:
Improveprocessing capacityVSAvoidsystem reliability
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The system implements health monitoring mechanisms that detect unresponsiveness of remote data processing devices before complete failure. When a remote device becomes unresponsive, the system proactively migrates application threads from affected virtual processors to healthy local or remote processors, preventing service interruption

Inventive Principle:
Principle #11Beforehand cushioning (Prior cushioning)

Solution Approach 2:

The system creates copies of application threads and migrates them between different physical processors. When a remote processor fails, the system can copy thread execution to alternative processors, ensuring continuity of service and improving reliability through redundancy

Inventive Principle:
Principle #26Copying

3Productivity

If the number of virtual processors is dynamically adjusted based on computation load, then resource allocation efficiency is improved, but system complexity increases due to dynamic instantiation and migration requirements

Engineering Contradiction:
Improveresource allocation efficiencyVSAvoidsystem complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The virtual machine manager implements self-service mechanisms by automatically monitoring computation load, determining when additional virtual processors are needed, instantiating them, and allocating them to appropriate remote data processing devices without manual intervention. The system also automatically migrates threads when load conditions change

Inventive Principle:
Principle #25Self-service

4Productivity

If application threads are migrated between local and remote processors, then load balancing is improved, but processing time increases due to thread migration overhead

Engineering Contradiction:
Improveload balancing efficiencyVSAvoidthread migration time
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The system performs preliminary actions by pre-instantiating virtual processors and maintaining them in a ready state before they are needed. When load increases, these pre-prepared virtual processors can be activated and assigned to application threads immediately, reducing the time required for dynamic resource allocation

Inventive Principle:
Principle #10Preliminary action

Applied Scientific Principles

This section explains which scientific principles are used to turn an abstract innovation direction into a practical engineering solution.

Function Achieved in This Case

This approach enhances processing efficiency by dynamically adjusting resource allocation and ensuring continuous operation through failover mechanisms, presenting a unified memory space to applications and improving responsiveness and reliability.

Implementation Method 1

instantiating or removing virtual processors as needed to maintain optimal load balance

Methodology Applied
Scientific EffectLoad balancing:

Implementation Method 2

replicate remote data processing devices for failover

Methodology Applied
Scientific EffectFailover mechanism:

Implementation Method 3

The virtual machine may access the remote memory using remote direct memory access (RDMA)

Methodology Applied
Scientific EffectRemote direct memory access:

Data Source

PatentUS9280375B1Dynamically adjustable virtual machine
Publication Date: 2016.03.08 GOOGLE LLC
  • US9280375B1 patent drawing
  • US9280375B1 patent drawing
  • US9280375B1 patent drawing

AI summary

A system including a collection of local data processing devices and a collection of remote data processing devices. At least one local data processing device executes instructions configuring the at least one local data processing device to implement a resource manager, a virtual machine, and a virtual machine manager. The resource manager associates application threads of a software application executing on a data processing device with local processors. The virtual machine includes a plurality of virtual processors, and each virtual processor emulates a data processing device. The virtual machine associates local processors with virtual processors. Finally, the virtual machine manager associates at least one virtual processor with a local data processing device and at least one virtual processor with a remote data processing device.