IP Library Granted Patent US 11,720,348
Granted Patent B2
US 11,720,348 · App. 17/242,469 · Granted Aug 8, 2023

Computing node allocation based on build process specifications in continuous integration environments

Inventors: Arie Bregman (Gan Yavne, IL); David Sariel (Holon, IL)
Assignee: Red Hat, Inc.
G06F8/71G06F9/4881G06F9/5055
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,720,348
App. No.
17/242,469
Granted
Aug 8, 2023
Kind
B2
Abstract

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.

Claims (40)

1. A method comprising:

receiving, by a processor, 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 build job;

responsive to determining that an operational resource is to be uninstalled on the computing node to satisfy the operational resource requirements of the software build job, uninstalling the operational resource on the computing node; and

scheduling the software build job to execute on the computing node.

2. The method of claim 1 , further comprising:

responsive to determining that an operational resource needs to be installed on the computing node to satisfy the operational resource requirements of the software build job, installing the operational resource on the computing node.

3. The method of claim 1 , wherein an operational resource comprises at least one of an operating system, an application package, or a computer service.

4. The method of claim 1 , wherein identifying the respective set of operational resources installed on the computing node comprises extracting operational resource data from a log file received from the computing node.

5. The method of claim 4 , wherein the log file is received while the computing node is executing a final stage of a pipeline of another software build job.

6. The method of claim 1 , further comprising:

responsive to determining that an operational resource needs to be enabled on the computing node to satisfy the operational resource requirements of the software build job, enabling the operational resource on the computing node.

7. A system comprising:

a memory;

a processing device operatively coupled to the memory, the processing device configured to:

receive operational resource requirements of a software build job in a waiting state;

identify, 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;

identify, 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 build job;

responsive to determining that an operational resource is to be uninstalled on the computing node to satisfy the operational resource requirements of the software build job, uninstall the operational resource on the computing node; and

schedule the software build job to execute on the computing node.

8. The system of claim 7 , wherein the processing device is further configured to:

responsive to determining that an operational resource needs to be installed on the computing node to satisfy the operational resource requirements of the software build job, install the operational resource on the computing node.

9. The system of claim 7 , wherein an operational resource comprises at least one of an operating system, an application package, or a computer service.

10. The system of claim 7 , wherein identifying the respective set of operational resources installed on the computing node comprises extracting operational resource data from a log file received from the computing node.

11. The system of claim 10 , wherein the log file is received while the computing node is executing a final stage of a pipeline of another software build job.

12. The system of claim 7 , wherein the processing device is further configured to:

responsive to determining that an operational resource needs to be enabled on the computing node to satisfy the operational resource requirements of the software build job, enable the operational resource on the computing node.

13. A non-transitory machine-readable storage medium storing executable instructions that, when executed by a processing device, cause the processing device to:

receive operational resource requirements of a software build job in a waiting state;

identify, 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;

identify, 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 build job;

responsive to determining that an operational resource is to be uninstalled on the computing node to satisfy the operational resource requirements of the software build job, uninstall the operational resource on the computing node; and

schedule the software build job to execute on the computing node.

14. The non-transitory machine-readable storage medium of claim 13 , further comprising executable instructions that, when executed by the processing device, cause the processing device to:

responsive to determining that an operational resource needs to be installed on the computing node to satisfy the operational resource requirements of the software build job, install the operational resource on the computing node.

15. The non-transitory machine-readable storage medium of claim 13 , wherein an operational resource comprises at least one of an operating system, an application package, or a computer service.

16. The non-transitory machine-readable storage medium of claim 13 , wherein identifying the respective set of operational resources installed on the computing node comprises extracting operational resource data from a log file received from the computing node, wherein the log file is received while the computing node is executing a final stage of a pipeline of another software build job.

17. The non-transitory machine-readable storage medium of claim 13 , further comprising executable instructions that, when executed by the processing device, cause the processing device to:

responsive to determining that an operational resource needs to be enabled on the computing node to satisfy the operational resource requirements of the software build job, enabling the operational resource on the computing node.

Assignments (2)
CHANGE OF NAME Recorded Mar 3, 2026
From: RED HAT, INC.
To: RED HAT, LLC
Reel/Frame 074913/0759 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 28, 2021
From: BREGMAN, ARIE; SARIEL, DAVID
To: RED HAT, INC.
Reel/Frame 056070/0458 →
Continuity (1)
Related Publication 20220350596A1 · Nov 3, 2022