File Access Tracker for Incremental Build Dependency Detection
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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.
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
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.
3Reliability
If file access tracking is implemented through OS call redirection, then reliability of dependency detection is improved, but ease of operation deteriorates
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.
Data Source
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.


