Container Job Flow Resource Management via Message Queues

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The increasing complexity and scale of data analysis tasks in various scientific and technical fields require advanced mechanisms for organizing development, ensuring reproducibility, and efficiently allocating resources in distributed computing environments, particularly in managing job flows and task routines across multiple containers.

Innovation Solution

A system that dynamically allocates and manages containers based on available processing and storage resources, using message queues to coordinate the execution of task routines within a distributed processing system, allowing for parallel execution of tasks and efficient resource utilization by deriving task orders based on data dependencies and resource availability.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If dynamic container allocation is implemented to improve resource utilization, then productivity increases, but device complexity increases

Engineering Contradiction:
Improveresource utilizationVSAvoidsystem complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

A resource allocation routine is introduced as an intermediary component that manages container allocation and task routing. This mediator handles the complexity of dynamic resource management by receiving task requests, determining resource needs, allocating appropriate containers, and coordinating task execution across the distributed system, thereby improving productivity while containing system complexity through centralized management logic

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If message queues are used to coordinate task execution, then reliability improves, but device complexity increases

Engineering Contradiction:
Improveexecution coordinationVSAvoidsystem complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The system is segmented into distinct functional components: message queues for coordination, resource allocation routine for management, and task execution environments for processing. This segmentation allows each component to specialize in its function, improving reliability through clear separation of concerns while managing complexity by distributing functionality across modular elements rather than consolidating everything in a single complex system

Inventive Principle:
Principle #1Segmentation

3Productivity

If parallel task execution is enabled to increase throughput, then productivity increases, but loss of information increases due to data dependency management

Engineering Contradiction:
Improvetask throughputVSAvoiddata dependency errors
Core Design Contradiction:
ProductivityVSLoss of information

Solution Approach 1:

The resource allocation routine implements feedback mechanisms by monitoring task execution status, container availability, and data dependency requirements. This feedback loop enables the system to dynamically adjust task allocation, ensuring that tasks with data dependencies are executed in the correct sequence while maximizing parallel execution of independent tasks, thereby maintaining data integrity while improving throughput

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS11144293B2Automated message-based job flow resource management in container-supported many task computing
Publication Date: 2021.10.12 SAS INSTITUTE INC
  • US11144293B2 patent drawing
  • US11144293B2 patent drawing
  • US11144293B2 patent drawing

AI summary

An apparatus includes at least one processor to retrieve a job flow definition defining a job flow as a set of tasks and dependencies thereamong, store a job performance request message to perform the job flow within a job queue, and in response to the storage of the job performance request message, execute instructions of a performance routine within a storage container to: based on the dependencies, derive an order of performance of the set of tasks that specifies a first task to perform; store, within a task queue, a first task routine execution request message requesting execution of a first task routine; and provide, to a resource allocation routine, an indication of a need for a first task container in which to execute the first task routine to perform the first task, wherein execution of the resource allocation routine causes dynamic allocation of containers based on availability of resources.