Container Resource Pooling via Fake Process Migration
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Conventional cluster systems face inefficiencies in resource usage and load balancing, as Containers running on nodes either overload some nodes or waste resources on others, as they cannot utilize available resources from other nodes within the cluster.
Innovation Solution
A method for joining Containers across different nodes in a computer cluster, where processes are migrated and replaced with fake program modules that imitate the real processes, allowing for efficient resource sharing and load balancing by using available CPU and memory resources across the cluster.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Use of energy by moving object
If Containers are launched on a node and use all available CPU time, then CPU resources are fully utilized, but memory resources are wasted because they cannot be used by other Containers
Solution Approach 1:
The patent merges CPU and memory resources across multiple nodes into a unified pool that can be dynamically shared by Containers. Instead of binding memory to single nodes, the system creates a cluster-wide resource pool where memory from any node can be allocated to any Container that needs it, resolving the contradiction between full CPU utilization and memory waste.
Solution Approach 2:
The patent implements universal resource allocation where memory resources serve multiple purposes across the entire cluster rather than being dedicated to single nodes. The same memory pool can serve different Containers on different nodes, allowing memory to perform multiple functions and serve multiple Containers simultaneously, eliminating the waste while maintaining CPU efficiency.
2Device complexity
If Containers are isolated on single nodes, then resource allocation is simple, but load balancing across the cluster is inefficient
Solution Approach 1:
The patent introduces a resource management intermediary layer that sits between Containers and physical nodes. This intermediary abstracts the complexity of cross-node resource allocation by providing a unified interface for resource requests, automatically routing them to appropriate nodes with available resources, thus maintaining simplicity while enabling efficient load balancing.
Solution Approach 2:
The patent transitions from single-node resource allocation to multi-dimensional cluster-wide allocation. By adding the dimension of cross-node resource sharing, the system can balance loads across the entire cluster while maintaining simple Container execution models. Resources are allocated not just within a node but across the full cluster dimension.
3Productivity
If processes are migrated between nodes, then resource utilization improves, but system complexity increases due to process management
Solution Approach 1:
The patent uses copying mechanisms to replicate process states and resource allocations across nodes during migration. Instead of complex direct migration, the system creates copies of process contexts and resource mappings, allowing seamless transitions between nodes while simplifying the management overhead through standardized copy operations.
Data Source
AI summary
Method for joining containers. On a plurality of nodes connected into a cluster, where each node hosts at least one container, executing real processes in the containers, where each real process is executed on a single container and other containers execute fake process corresponding to the real process; the fake process includes interfaces identical to interfaces of a corresponding real process; determining the real process on a source container to be migrated; for the target container, replacing the fake process with the real process and replacing the real process with the fake process on the source container; re-launching a process on the same hardware node with settings from another node. Interfaces of real processes are connected to interfaces of fake processes to establish data flow of fake process identical to the data flow outputted by interfaces of a real process. Interfaces of the fake process receive data from conjugated interfaces.


