File Access Tracker for Incremental Build Dependency Detection

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Incremental software builds face challenges in determining which files are accessed during the build process and deciding which parts of the build to re-run when files change, as previous implementations either provide approximations of dependencies or are specific to the build tool itself.

Innovation Solution

A system that tracks file access patterns by redirecting operating system calls to a file access tracker, recording read, write, and delete requests from build tools, and maintaining separate lists for each thread to accurately determine dependencies and update build outputs.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If file access patterns are tracked by redirecting OS calls to a file access tracker, then measurement precision of file dependencies is improved, but device complexity increases

Engineering Contradiction:
Improvefile dependency detection accuracyVSAvoidbuild system complexity
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

The patent introduces a file access tracker as an intermediary component that sits between the build tool and the operating system. This tracker intercepts and monitors file access calls (read, write, delete operations) made during the build process, recording them in thread-specific data structures. This intermediary approach enables precise tracking of file dependencies without requiring modifications to the build tool itself or the operating system, thereby improving measurement precision while managing device complexity through a dedicated monitoring layer.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent segments the file access tracking by creating separate data structures for each thread of the build tool. Each thread maintains its own list of file access patterns, allowing independent tracking and analysis of dependencies specific to each thread's execution context. This segmentation enables precise per-thread dependency detection while keeping the overall system manageable by dividing the monitoring task into independent, thread-local units.

Inventive Principle:
Principle #1Segmentation

2Measurement precision

If separate lists are maintained for each thread to track file accesses, then measurement precision of thread-specific dependencies is improved, but loss of information is reduced

Engineering Contradiction:
Improvethread-specific dependency accuracyVSAvoiddependency information completeness
Core Design Contradiction:
Measurement precisionVSLoss of information

Solution Approach 1:

The patent divides the file access tracking into separate data structures for each thread, with each thread maintaining its own list of file access patterns. This segmentation ensures that thread-specific dependencies are tracked independently and accurately, preventing information loss that would occur with aggregated tracking. Each thread's file access history is preserved separately, enabling precise reconstruction of the build dependency graph.

Inventive Principle:
Principle #1Segmentation

3Reliability

If file access tracking is implemented through OS call redirection, then reliability of dependency detection is improved, but ease of operation deteriorates

Engineering Contradiction:
Improvedependency detection accuracyVSAvoidbuild process simplicity
Core Design Contradiction:
ReliabilityVSEase of operation

Solution Approach 1:

The file access tracker serves as an intermediary that transparently monitors file operations without requiring changes to build tool operation. The tracker intercepts OS calls automatically, recording file access patterns in the background while the build process continues normally. This approach improves reliability of dependency detection while minimizing impact on ease of operation, as the tracking occurs automatically without requiring manual configuration or intervention in the build process.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS7721272B2Tracking file access patterns during a software build
Publication Date: 2010.05.18 MICROSOFT TECHNOLOGY LICENSING LLC
  • US7721272B2 patent drawing
  • US7721272B2 patent drawing
  • US7721272B2 patent drawing

AI summary

Those files accessed by tools during a build process are invisibly tracked in such a way that the information can then be used to drive an incremental build of just enough files to bring the build fully up to date. The tracking information includes the association between distinct tool processes. Each build tool has its own file activity tracked, each thread of operation within tools are tracked separately and a tracking log is associated with a chain of tool processes so that when the tracking logs are interpreted the context in which they were created is preserved.