Peer-to-Peer Build Sharing Reducing Network Bandwidth
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Conventional build systems, such as software build systems, often rely on a single source, leading to bottlenecks as the number of clients or build sizes increase, resulting in poor performance, high resource utilization, and potential system crashes.
Innovation Solution
A computing system is configured to obtain build objects from multiple sources, including peer build systems, allowing peer build systems to recreate builds without communicating with the originating system, and providing relative changes over the network instead of entire builds, reducing latency and bandwidth requirements.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Device complexity
If a single source server system is used for build distribution, then build system simplicity is maintained, but performance degrades and resource utilization increases as client numbers and build sizes increase
Solution Approach 1:
The patent segments the centralized build server into multiple peer build systems that can independently serve build objects to clients. Each peer system maintains a local cache of build objects and can serve requests without always contacting the originating build system, distributing the load across multiple nodes and eliminating the single-point bottleneck.
Solution Approach 2:
The patent introduces a new dimension to the build distribution architecture by adding geographic distribution and peer-to-peer networking layers. Build systems are distributed across different geographic locations, and peers can serve each other based on proximity and availability, adding spatial and topological dimensions to the previously flat centralized architecture.
2Reliability
If entire builds are transmitted over the network, then build objects are available to peer systems, but network bandwidth consumption increases
Solution Approach 1:
The patent extracts and transmits only the essential build modification objects (BMOs) that represent changes between builds, rather than transmitting entire builds. This allows peer systems to reconstruct current builds by applying incremental changes to previous versions, dramatically reducing network bandwidth consumption while maintaining build object availability.
Solution Approach 2:
The patent implements preliminary action by having peer build systems pre-fetch and cache build objects and build modification objects before they are needed. Systems proactively download build data during off-peak periods or in anticipation of requested builds, so that when clients request builds, the data is already available locally or can be quickly retrieved from nearby peers.
3Measurement precision
If peer build systems communicate with the originating build system for every build request, then build accuracy is maintained, but latency increases
Solution Approach 1:
The patent introduces peer build systems as intermediaries between clients and the originating build system. Instead of clients directly contacting the originating system for every request, they first query local peers who can serve cached builds or build modification objects. This intermediary layer filters and caches requests, reducing direct communications with the originating system and lowering latency while maintaining build accuracy through verification mechanisms.
Data Source
Figure 1
Figure 2
Figure 3
AI summary
Systems and methods are provided for obtaining a build object over a communication network, the build object comprising at least a portion of a first build. The build object is stored locally. A build modification object is obtained over the communication network, the build modification object comprising a change between the first build and a second build. The build object is updated using the build modification object obtained over the communication network. At least a portion of the updated build object is provided to a first peer build system over the communication network. Further features include storage of the build objects using hash trees or Merkle trees, updating immutable build objects and predicting build objects (partly using latency).