Container CPU Reallocation During Host Failover
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing systems lack flexibility in allocating CPUs to containers, leading to inefficiencies and constraints in resource utilization.
Innovation Solution
A system that dynamically allocates CPUs by detecting available resources, selecting a host, and invoking instantiation of components using previously-allocated processing units, with the ability to change dedicated CPUs to shared CPUs during failover scenarios.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If CPUs are allocated to containers on a host, then container performance and stability are improved, but the system lacks flexibility in CPU allocation when hosts fail or resources are constrained
Solution Approach 1:
The system segments CPU resources into dedicated CPU sets and shared CPU sets. Dedicated CPU sets are bound to specific containers for guaranteed performance, while shared CPU sets can be dynamically allocated to multiple containers. This segmentation allows the system to provide both reliability through dedicated allocation and flexibility through shared allocation that can be reassigned during failover scenarios.
Solution Approach 2:
The system implements dynamic CPU allocation where CPU sets can be reconfigured and reassigned based on runtime conditions. When a host fails or resources become constrained, the orchestrator agent can dynamically move containers to different hosts and reassign CPU sets, transforming the static allocation model into a dynamic one that adapts to changing system conditions.
2Reliability
If dedicated CPU sets are bound to containers, then container execution reliability is improved, but resource utilization efficiency deteriorates when hosts lack available processing units
Solution Approach 1:
CPU sets are designed to be universal resources that can serve multiple purposes and multiple containers. Shared CPU sets can be allocated to different containers based on demand, and the same CPU resources can be reassigned between containers as needed. This multi-functionality allows dedicated CPU sets to maintain reliability while shared CPU sets improve overall resource utilization efficiency.
Solution Approach 2:
The system changes the allocation parameters of CPU sets dynamically. CPU sets can transition between dedicated and shared states, and their allocation can be adjusted based on system conditions such as host availability and container demand. This parameter flexibility resolves the contradiction by allowing the system to optimize for reliability when needed and for efficiency when resources are constrained.
3Adaptability or versatility
If the system maintains both dedicated and shared CPU sets, then allocation flexibility is improved, but system complexity increases
Solution Approach 1:
The orchestrator agent serves as an intermediary that manages the complexity of CPU set allocation. It handles the logic for assigning dedicated CPU sets, managing shared CPU sets, and performing failover operations. By centralizing this management function in the orchestrator agent, the system achieves flexible CPU allocation without distributing the complexity across multiple components.
Data Source
AI summary
Upon failure of a host and, in response to a lack of hots having available processing units, a host is selected and one or more processing units of the selected host are allocated as shared CPUs for use by one or more components of the failed host. The selected host may be selected according to requirements, such as affinity, anti-affinity, and latency. The shared CPUs may have been previously allocated as a dedicated CPU. The shared CPUs may be bound to the one or more components. The one or more components may include a container.


