Dynamic Container Image Distribution for Multi-Node Graph Execution
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing systems are unable to dynamically generate connections between components of data processing graphs executing in containers across multiple nodes, leading to latency and inefficient resource utilization.
Innovation Solution
A system that dynamically distributes data processing graphs across multiple nodes, generating connections between components at run-time within containers, allowing for real-time execution and reduced latency.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Speed
If connections between components of data processing graphs are pre-established in containers, then system complexity is reduced, but execution latency increases and real-time processing capability deteriorates
Solution Approach 1:
The patent implements dynamic connection establishment between container components at runtime rather than static pre-configuration. The system dynamically generates connections between data processing graph components when containers are executed, allowing the system to adapt connection topology based on actual execution needs and resource availability, thereby achieving real-time processing without excessive pre-planning complexity
Solution Approach 2:
The patent performs preliminary preparation of container images with all necessary components and dependencies, but defers the actual connection establishment to runtime. This allows the system to prepare execution environments in advance while maintaining flexibility to establish optimal connections dynamically when execution begins, balancing preparation benefits with real-time adaptability
2Productivity
If container images are statically assigned to host systems, then resource allocation is simplified, but resource utilization efficiency decreases
Solution Approach 1:
The patent implements dynamic assignment of container images to host systems based on real-time resource availability and execution requirements. The system can reassign containers between hosts during runtime, optimize resource utilization by placing workloads on appropriate hosts, and adapt to changing system conditions, thereby achieving high productivity without permanent static bindings
Solution Approach 2:
The patent creates universal container images that can execute on multiple different host systems with varying resources. These containerized applications are designed to be portable and can run on any compatible host, allowing the system to flexibly allocate containers to appropriate hosts based on current resource availability rather than being constrained to predetermined assignments
3Productivity
If data processing graphs are executed on single nodes, then connection management is simplified, but parallelism and throughput are limited
Solution Approach 1:
The patent segments data processing graphs into multiple containerized components that can be distributed across different host nodes. Each container represents an independent executable unit that can run in parallel on separate nodes, enabling the system to achieve high throughput by dividing workloads while maintaining manageable connection complexity through standardized inter-container communication interfaces
Data Source
AI summary
A method implemented by a data processing system including: accessing the container image that includes the first application and a second application; determining, by the data processing system, the number of parallel executions of the given module of the first application; for the given module, generating a plurality of instances of the container image in accordance with the number of parallel executions determined, for each instance, configuring that instance to execute the given module of the first application; causing each of the plurality of configured instances to execute on one or more of the host systems; and for at least one of the plurality of configured instances, causing, by the second application of that configured instance, communication between the data processing system and the one or more of the host systems executing that configured instance.


