Active Build Migration in CI Environments

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing build systems do not allow job migration during execution, leading to delays and poor resource utilization due to the inability to transfer jobs from stronger computing nodes to weaker nodes, causing idle resources and delayed execution of jobs requiring stronger computing resources.

Innovation Solution

A build system that detects executing jobs and waiting jobs, determines resource capabilities of computing nodes, and migrates jobs to optimize resource utilization by transferring jobs from stronger nodes to weaker nodes capable of executing them, allowing for the execution of job stages across multiple computing nodes.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If jobs are assigned to stronger computing nodes, then job execution capability is improved, but resource utilization deteriorates because weaker nodes remain idle

Engineering Contradiction:
Improvejob execution capabilityVSAvoidresource utilization
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The system dynamically migrates jobs between computing nodes based on real-time resource availability and job requirements. Instead of statically assigning jobs to stronger nodes, the system continuously monitors node capabilities and relocates jobs to optimize resource utilization while maintaining execution reliability.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The build system acts as an intermediary that manages job placement and migration between computing nodes. It evaluates node capabilities, mediates job assignments, and coordinates migrations to ensure jobs are executed on appropriate nodes while maximizing overall resource utilization efficiency.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Productivity

If job migration is enabled, then resource utilization is improved, but system complexity increases

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

Solution Approach 1:

The build system automatically monitors computing node capabilities and initiates job migrations without manual intervention. It self-manages the complexity of job placement by detecting resource availability and autonomously relocating jobs to optimize utilization, reducing the operational burden on users.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The system continuously monitors the state of computing nodes and job execution progress, using this feedback to make intelligent migration decisions. By real-time tracking node capabilities and job status, the system adapts its migration strategy to balance resource utilization with execution reliability.

Inventive Principle:
Principle #23Feedback

3Reliability

If jobs wait for stronger computing nodes, then execution quality is improved, but execution time increases

Engineering Contradiction:
Improveexecution qualityVSAvoidexecution time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The system performs preliminary assessment of computing node capabilities before job assignment and continuously monitors during execution. By pre-evaluating node suitability and preparing migration paths, the system ensures jobs receive appropriate computational resources while minimizing wait times through proactive resource allocation.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system dynamically adjusts job placement based on changing node capabilities and execution progress. Instead of rigidly assigning jobs to specific nodes, it maintains flexibility to relocate jobs that complete faster or become unavailable, reducing overall execution time while preserving execution quality through continuous adaptation.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS12026545B2Active build migration in continuous integration environments
Publication Date: 2024.07.02 RED HAT INC
  • US12026545B2 patent drawing
  • US12026545B2 patent drawing
  • US12026545B2 patent drawing

AI summary

The technology disclosed herein enables migrating a software build job from a first computing node to a second computing node. An example method may comprise detecting, by a processor, a first software build job executing on a first computing node; detecting a second software build job in a waiting state; determining that the first computing node is capable of executing the second software build job; responsive to determining that a second computing node is capable of executing the first software build job, migrating the first software build job to the second node; and executing the second software build job on the first node.