Git-based delta rpm package versioning

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current delta-difference mechanisms require significant resource consumption and time to update packages, as they can only generate differences between consecutive versions, leading to the need to download entire new versions if not updated to the immediate previous version, and lack the ability to revert to previous versions by removing changes.

Innovation Solution

A processing device generates and commits delta differences between each version of a package to a Git repository, allowing clients to build any version, including previous or subsequent versions, by retrieving and combining delta differences, enabling targeted updates and reversion capabilities.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of manufacture

If delta-difference mechanisms generate differences only between consecutive versions, then the update process is simple to implement, but significant resource consumption and time are required when clients are multiple versions behind

Engineering Contradiction:
Improvesimplicity of implementationVSAvoidupdate time
Core Design Contradiction:
Ease of manufactureVSLoss of time

Solution Approach 1:

The patent pre-generates and stores delta differences between non-consecutive versions (e.g., version 1 to version 3) in advance, so that when a client needs to update, the appropriate pre-computed delta is already available. This eliminates the need for clients to sequentially apply multiple small deltas or download entire package versions, significantly reducing update time and resource consumption for clients that are multiple versions behind.

Inventive Principle:
Principle #10Preliminary action

2Quantity of substance

If delta-difference mechanisms only support consecutive version updates, then the storage requirements are minimal, but the ability to revert to previous versions is lost

Engineering Contradiction:
Improvestorage requirementsVSAvoidreversion capability
Core Design Contradiction:
Quantity of substanceVSAdaptability or versatility

Solution Approach 1:

The patent segments the package update process into discrete delta-difference units that can be independently stored and applied. Each delta represents a specific transformation between versions, allowing clients to selectively apply or revert specific version changes. This segmentation enables efficient storage by only keeping essential delta information rather than full package versions, while simultaneously providing versatile reversion capabilities through the Git repository's version control mechanisms.

Inventive Principle:
Principle #1Segmentation

3Reliability

If entire package versions are downloaded for updates, then version consistency is guaranteed, but bandwidth consumption and update time increase significantly

Engineering Contradiction:
Improveversion consistencyVSAvoidbandwidth consumption
Core Design Contradiction:
ReliabilityVSLoss of energy

Solution Approach 1:

The patent extracts only the essential difference information (delta) between package versions rather than transmitting entire package versions. By using Git to store and manage these extracted deltas, the system maintains version consistency through structured version control while dramatically reducing bandwidth consumption. Clients can reliably update by applying these compact delta representations to their existing packages, avoiding the need to download complete package versions.

Inventive Principle:
Principle #2Taking out (Extraction)

Data Source

PatentUS20240012636A1Git-based delta rpm
Publication Date: 2024.01.11 RED HAT INC
  • US20240012636A1 patent drawing
  • US20240012636A1 patent drawing
  • US20240012636A1 patent drawing

AI summary

Embodiments of the present disclosure involve determining that a first subsequent version of a plurality of subsequent versions of a package is available, a repository is generated and a delta difference between a current version of the package and the first subsequent version of the package is committed to the repository. For each further subsequent version of the plurality of subsequent version of the package that is determined to be available, a delta difference between the further subsequent version of the package and an immediately preceding version of the package is generated and committed to the repository. In this way, a volume of discreet repositories that includes the delta difference history between each of the existing versions of the package is maintained and can be accessed to enable a client to build a subsequent (or previous) version of a package even if the current version they are running is multiple versions behind (or ahead).