Automated Dependency Graph for Software Deployment Bottlenecks

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Software deployment processes often face bottlenecks due to manual procedures and rigid order of operations among teams, leading to unnecessary delays and inefficiencies in software development and deployment.

Innovation Solution

Automatically generating a dependency graph based on input and output requirements of information, which determines the execution order of modules and establishes connections to ensure seamless data flow and re-evaluation of dependencies in case of changes.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If manual procedures and rigid order of operations are used among teams, then deployment control and coordination are maintained, but unnecessary delays and inefficiencies occur in software development and deployment

Engineering Contradiction:
Improvedeployment efficiencyVSAvoiddeployment delay
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The system automatically generates the dependency graph and determines execution order without manual intervention. Teams no longer need to manually coordinate deployment sequences - the system self-determines the optimal execution order based on input/output requirements, eliminating coordination overhead and delays

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The dependency graph is generated in advance before deployment execution. By pre-analyzing input and output requirements of all modules, the system determines the complete execution order beforehand, allowing teams to prepare and execute deployments without waiting for real-time coordination decisions

Inventive Principle:
Principle #10Preliminary action

2Reliability

If each operation knows about the data format of other operations, then data validation and compatibility are ensured, but networking resources and power consumption increase due to excessive communication

Engineering Contradiction:
Improvedata compatibilityVSAvoidnetworking resource consumption
Core Design Contradiction:
ReliabilityVSUse of energy by moving object

Solution Approach 1:

The dependency graph acts as an intermediary that captures all data format and compatibility requirements. Instead of operations directly communicating with each other to validate data formats, they reference the pre-established dependency graph which encodes all compatibility rules, reducing communication overhead while maintaining reliability

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The system creates a copy of the data flow requirements in the form of a dependency graph. This graphical representation captures all input/output data format specifications without requiring actual data transmission between operations, allowing validation through reference rather than communication

Inventive Principle:
Principle #26Copying

Data Source

PatentUS20230134573A1Automated generation of dependency hierarchy based on input and output requirements of information
Publication Date: 2023.05.04 SNOWFLAKE INC
  • US20230134573A1 patent drawing
  • US20230134573A1 patent drawing
  • US20230134573A1 patent drawing

AI summary

A system and method for automatically routing datasets based on input and output requirements of information is disclosed. The example method includes obtaining a list of modules executing on one or more processing devices, each module to generate an output dataset of a respective output requirement based on an input dataset of a respective input requirement. The method also includes establishing connections between the modules based on the input requirements and output requirements, including a first connection between a first module and a third module and a second connection between a second module and the third module. The method also includes receiving a first output dataset from the first module and receiving a second output dataset from the second module and, responsive to determining that the first module reported an error, routing the second output dataset to the third module without routing the first output dataset to the third module.