Dynamic Resource Reallocation for Connected Multi-Tenant Applications

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing multi-tenant software services face inefficiencies in resource utilization due to pre-provisioning, leading to increased likelihood of adding containers and terminating network connections when resource limits are adjusted.

Innovation Solution

Dynamically re-allocate computing resources among applications within a common computing unit, such as virtual machines or containers, while maintaining network connections by adjusting resource limits without terminating virtual machines or containers, using dynamic re-allocation logic.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If pre-provisioning is used to reserve computing resources for customers, then resource allocation is simplified and guaranteed, but resource utilization efficiency decreases and additional containers are more likely to be added

Engineering Contradiction:
Improveresource allocation guaranteeVSAvoidresource utilization efficiency
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The system dynamically adjusts computing resource allocation among containers based on real-time workload demands and resource utilization metrics, transitioning from static pre-provisioning to adaptive resource distribution. The resource allocation manager continuously monitors performance data and reallocates resources without terminating network connections, resolving the contradiction between allocation guarantee and utilization efficiency.

Inventive Principle:
Principle #15Dynamics

2Adaptability or versatility

If resource limits are changed to adjust computing capacity, then resource allocation flexibility is improved, but network connections are terminated causing service disruption

Engineering Contradiction:
Improveresource allocation flexibilityVSAvoidnetwork connection stability
Core Design Contradiction:
Adaptability or versatilityVSReliability

Solution Approach 1:

The system performs preliminary actions by gradually adjusting resource limits and monitoring container performance before making significant changes. The resource allocation manager implements incremental resource reallocation with continuous health checks, allowing flexible resource adjustment while maintaining network connection stability through controlled transitions.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The resource allocation manager acts as an intermediary between resource limit changes and container operations. It mediates the transition by coordinating resource adjustments with container lifecycle management, ensuring that network connections are preserved during resource reallocation through managed transitions rather than direct container termination.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Productivity

If additional containers are added to handle workload, then computing capacity is increased, but system complexity increases and resource overhead increases

Engineering Contradiction:
Improvecomputing capacityVSAvoidsystem complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The system merges resource allocation functions into the existing container infrastructure, utilizing the orchestration platform's native capabilities for resource management. By consolidating resource allocation, monitoring, and reallocation within the container orchestration framework, the system increases computing capacity through efficient resource sharing rather than adding separate management infrastructure.

Inventive Principle:
Principle #5Merging (Combining)

Data Source

PatentUS12375420B2Dynamically re-allocating computing resources while maintaining network connection(s)
Publication Date: 2025.07.29 MICROSOFT TECHNOLOGY LICENSING LLC
  • US12375420B2 patent drawing
  • US12375420B2 patent drawing
  • US12375420B2 patent drawing

AI summary

Techniques are described herein that are capable of dynamically re-allocating computing resources while maintaining network connection(s). Applications of users are run in a computing unit. Computing resources are allocated among the applications based at least in part on dynamic demands of the applications for the computing resources and resource limits associated with the respective customers. In a first example, the computing resources are dynamically re-allocated among the applications, as a result of changing the resource limit of at least one customer, while maintaining at least one network connection between a client device of each customer and at least one respective application. In a second example, the computing resources are dynamically re-allocated among the applications, as a result of changing the resource limit of at least one customer, while maintaining at least one network connection between an interface and a client device of each customer.