Mirrored File System for Distributed Build Speed

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing methods for distributing the build of a code base are limited by CPU and I/O intensive pre-processing of source code files, which consumes processing resources and results in suboptimal parallel processing performance when using traditional shared file systems.

Innovation Solution

Implementing a mirrored file system on volunteer machines, where inputs are locally retrieved and reused if consistent with the recruiter machine's file system, and inputs not cached are obtained from the recruiter machine, allowing for efficient distribution of data processing tasks and improved build speeds through parallel processing.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If pre-processing of source code files is performed at the recruiter machine, then the code base can be built, but CPU and I/O resources are consumed and the number of volunteer machines that can be recruited is limited

Engineering Contradiction:
Improvebuild speedVSAvoidCPU and I/O resource consumption
Core Design Contradiction:
ProductivityVSUse of energy by moving object

Solution Approach 1:

The patent divides the file system into multiple mirrors distributed across different volunteer machines. Each mirror contains a portion of the source code files, allowing the recruiter machine to distribute pre-processing tasks to multiple volunteer machines simultaneously. This segmentation enables parallel pre-processing without concentrating all CPU and I/O loads on a single recruiter machine.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces a distributed file system architecture that adds a spatial dimension to file storage and access. Instead of a single centralized file system, multiple mirrored copies are distributed across different machines, allowing volunteer machines to access files locally or from other mirrors, thereby reducing the I/O burden on the recruiter machine and enabling recruitment of more volunteer machines.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

2Productivity

If traditional shared file systems are used for distributing builds, then volunteer machines can access source code files, but the file system operations are slow and parallel processing performance is suboptimal

Engineering Contradiction:
Improveparallel processing performanceVSAvoidfile system operation speed
Core Design Contradiction:
ProductivityVSSpeed

Solution Approach 1:

The patent segments the file system into multiple independent mirrors distributed across different volunteer machines. Each mirror can be accessed independently, allowing multiple volunteer machines to perform file operations in parallel without contending for access to a single shared file system. This eliminates the bottleneck of traditional shared file systems and enables optimal parallel processing performance.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent creates multiple copies (mirrors) of the file system and distributes them across different volunteer machines. Each volunteer machine can access files from its local mirror or from other mirrors, eliminating the need for slow network file operations over a traditional shared file system. This copying approach maintains data consistency while dramatically improving file access speed for parallel processing.

Inventive Principle:
Principle #26Copying

3Adaptability or versatility

If all source code files are pre-processed at the recruiter machine, then compilation can be distributed, but the recruiter machine's processing resources are exhausted limiting the number of recruitable volunteer machines

Engineering Contradiction:
Improvenumber of recruitable volunteer machinesVSAvoidprocessing power availability
Core Design Contradiction:
Adaptability or versatilityVSPower

Solution Approach 1:

The patent segments the pre-processing workload by distributing source code files across multiple mirrors on different volunteer machines. The recruiter machine only needs to coordinate this distribution and handle metadata operations, while actual file access and local pre-processing occur on volunteer machines themselves. This enables the recruiter machine to coordinate many more volunteer machines without being constrained by its own processing power.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent enables volunteer machines to serve themselves by providing local mirrors of source code files. Each volunteer machine can access files from its local mirror without requiring the recruiter machine to provide continuous processing support. This self-service capability allows the recruiter machine to recruit and coordinate a large number of volunteer machines while maintaining its processing resources for coordination tasks.

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS8286127B2Mirrored file system
Publication Date: 2012.10.09 APPLE INC
  • US8286127B2 patent drawing
  • US8286127B2 patent drawing
  • US8286127B2 patent drawing

AI summary

Mounting and populating a mirrored version of at least a portion of a file system of a recruiter machine at a volunteer machine performing one or more data processing tasks for the recruiter machine is disclosed. In some embodiments, an input stored in such a dedicated file system for the recruiter machine at the volunteer machine may be locally retrieved and reused, if still consistent with a corresponding input stored in a file system at the recruiter machine, when performing a data processing task for the recruiter machine at the volunteer machine. In some embodiments, if an input required by the volunteer machine to perform a data processing task for the recruiter machine is not cached in such a dedicated file system for the recruiter machine at the volunteer machine in a state that is consistent with a corresponding input stored in a file system at the recruiter machine, the input is obtained from the recruiter machine.