CI Node Allocation via Resource Matching

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In continuous integration environments, the existing build management systems face inefficiencies due to redundant cleanup and resource installation processes, leading to delays and poor utilization of computing resources, as subsequent jobs often require similar operational resources already installed on computing nodes.

Innovation Solution

A provisioning component that detects and utilizes the existing operational resources of computing nodes by generating resource logs, comparing job requirements with node resources, and dynamically installing, uninstalling, or disabling necessary resources to ensure efficient job scheduling without redundant operations.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If computing nodes perform cleanup and resource installation processes before each job execution, then resource availability is ensured, but execution time is increased and productivity is reduced

Engineering Contradiction:
Improveresource availabilityVSAvoidjob execution efficiency
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The system performs resource installation and cleanup operations in advance during the previous job's execution, so that when the next job starts, the required resources are already in place. This eliminates the need for redundant resource setup at the beginning of each job execution.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The computing node automatically manages its own resource state by detecting what resources are currently installed and what resources the next job requires, then autonomously performs the necessary installation or removal operations without external intervention, optimizing resource availability while minimizing execution delays.

Inventive Principle:
Principle #25Self-service

2Adaptability or versatility

If computing nodes install all possible operational resources, then job compatibility is improved, but resource utilization efficiency deteriorates

Engineering Contradiction:
Improvejob compatibilityVSAvoidresource utilization efficiency
Core Design Contradiction:
Adaptability or versatilityVSLoss of energy

Solution Approach 1:

Instead of uniformly installing all possible resources on every computing node, the system tailors the resource installation to the specific requirements of each computing node and its assigned job. Each node maintains only the resources necessary for its current workload, optimizing both compatibility and efficiency.

Inventive Principle:
Principle #3Local quality

Solution Approach 2:

The system dynamically changes the resource configuration parameters of computing nodes based on job requirements. Resources are installed or removed according to the specific operational resource requirements of each job, rather than maintaining a static, over-provisioned configuration.

Inventive Principle:
Principle #35Parameter changes

3Reliability

If computing nodes perform full cleanup operations between jobs, then resource cleanliness is ensured, but execution speed is reduced

Engineering Contradiction:
Improveresource cleanlinessVSAvoidjob execution speed
Core Design Contradiction:
ReliabilityVSSpeed

Solution Approach 1:

The system extracts and performs only the necessary cleanup operations specific to the resources that need to be removed for the next job, rather than performing a comprehensive cleanup of all resources. This selective approach maintains resource cleanliness while minimizing execution delays.

Inventive Principle:
Principle #2Taking out (Extraction)

4Manufacturing precision

If computing nodes install resources dynamically for each job, then resource precision is improved, but operational complexity increases

Engineering Contradiction:
Improveresource matching precisionVSAvoidresource management complexity
Core Design Contradiction:
Manufacturing precisionVSDevice complexity

Solution Approach 1:

The system uses feedback from the job requirements and current node state to automatically determine what resources need to be installed or removed. The provisioning component continuously monitors and adjusts resource allocation based on actual job needs, achieving precise resource matching through automated feedback loops rather than complex manual management.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS11720348B2Computing node allocation based on build process specifications in continuous integration environments
Publication Date: 2023.08.08 RED HAT LLC
  • US11720348B2 patent drawing
  • US11720348B2 patent drawing
  • US11720348B2 patent drawing

AI summary

The technology disclosed herein enables computing node allocation based on build process specifications. An example method comprises receiving operational resource requirements of a software build job in a waiting state; identifying, for each computing node of a plurality of computing nodes associated with one or more other software build jobs, a respective set of operational resources installed on the computing node; identifying, among the plurality of computing nodes, a computing node having a minimal, among the plurality of computing nodes, difference between a set of operational resources installed in the computing node and the operational resource requirements of the software job; and scheduling the software build job to execute on the computing node.