Proactive Build Artifact Seeding via Dependency Graph

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Software build processes are delayed due to the client-driven nature of existing approaches, which require repeated round trips between the client and the repository to download build artifacts as needed during the build process.

Innovation Solution

Implementing proactive seeding of build artifacts by a repository manager that constructs a dependency graph to predictively send necessary artifacts to the client ahead of time, using HTTP/2 server push and network monitoring to cache them, allowing the client to perform other tasks concurrently.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Loss of time

If build artifacts are downloaded on-demand during the build process, then the client can request only needed artifacts, but the build process experiences delays due to repeated round trips between client and repository

Engineering Contradiction:
Improvebuild process delayVSAvoidbuild process efficiency
Core Design Contradiction:
Loss of timeVSProductivity

Solution Approach 1:

The repository manager proactively identifies and sends build artifacts to the client before they are actually needed during the build process. By constructing a dependency graph and predicting which artifacts will be required, the system performs the download action in advance, eliminating wait time during the build execution and improving overall productivity

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system monitors network usage in the build environment to identify informal nodes in the dependency graph, using this feedback to refine predictions about which artifacts will be needed. This feedback mechanism allows the repository manager to optimize artifact delivery timing and reduce unnecessary transfers, balancing proactive delivery with actual build requirements

Inventive Principle:
Principle #23Feedback

2Productivity

If the repository manager proactively sends build artifacts ahead of time, then the build process is expedited, but network bandwidth is consumed for artifacts that may not be needed

Engineering Contradiction:
Improvebuild process speedVSAvoidnetwork bandwidth usage
Core Design Contradiction:
ProductivityVSLoss of energy

Solution Approach 1:

The system sends only a subset of potentially useful artifacts proactively, rather than all available artifacts. By using the dependency graph to identify and send only the most likely needed artifacts, the system applies partial action - delivering enough artifacts ahead of time to speed up the build process without wasting network bandwidth on unnecessary transfers

Inventive Principle:
Principle #16Partial or excessive action

3Loss of energy

If the client waits for build artifacts during the build process, then network resources are preserved, but developer time and computing resources are wasted due to delays

Engineering Contradiction:
Improvenetwork resource utilizationVSAvoiddeveloper time
Core Design Contradiction:
Loss of energyVSLoss of time

Solution Approach 1:

The repository manager performs artifact delivery in advance during idle periods or before build initiation, so that when the build process starts, artifacts are already available locally. This preliminary action shifts network resource consumption to a different time window, eliminating delays in developer workflow and computing resource idle time

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system enables continuous build processes by ensuring artifacts are available when needed, eliminating interruptions and wait states. The proactive delivery mechanism maintains continuous useful action in the build pipeline, preventing idle time for developers and computing resources while optimizing network usage patterns

Inventive Principle:
Principle #20Continuity of useful action

Data Source

PatentUS10671384B1Proactive seeding of build Artifacts
Publication Date: 2020.06.02 AMAZON TECH INC
  • US10671384B1 patent drawing
  • US10671384B1 patent drawing
  • US10671384B1 patent drawing

AI summary

Methods, systems, and computer-readable media for proactive seeding of build artifacts are disclosed. A dependency graph is determined that represents dependency relationships among a plurality of build artifacts. Using the dependency graph, a repository manager determines a first set of one or more build artifacts. The first set of build artifacts are stored in one or more repositories. The first set of build artifacts are sent from a repository manager to a client over a network. The first set of build artifacts are used by the client in generating a software build.