Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[7.5.0] Do not invalidate remote metadata during action dirtiness check #24941

Merged
merged 1 commit into from
Jan 16, 2025

Conversation

coeuvre
Copy link
Member

@coeuvre coeuvre commented Jan 16, 2025

... if the corresponding output is materialized afterwards and hasn't been changed.

Failing to do so will cause an incremental build to re-check the action cache for actions whose outputs were materialized during last build. This can be very slow if the size of the outputs are large.

We achieved this by storing FileContentsProxy in the remote metadata after materialization. During dirtiness check, we compare remote metadata and the corresponding local metadata with their digest, or proxy if digest is not available for local metadata,

A user reported back the wall time of their very first increment build is improved by this change from 14s to less than 1s in common case, and from 115s to less than 1s in worst case. #24763

PiperOrigin-RevId: 715734718
Change-Id: Id1a1a59d8b5f3e91a7ae05a73663ff37eee6d163

Fixes #24920.

@coeuvre coeuvre requested a review from a team as a code owner January 16, 2025 10:21
@github-actions github-actions bot added awaiting-review PR is awaiting review from an assigned reviewer team-Performance Issues for Performance teams team-Remote-Exec Issues and PRs for the Execution (Remote) team labels Jan 16, 2025
@coeuvre coeuvre force-pushed the release-7.5.0 branch 2 times, most recently from c5c5bae to f1333c3 Compare January 16, 2025 10:39
... if the corresponding output is materialized afterwards and hasn't been changed.

Failing to do so will cause an incremental build to re-check the action cache for actions whose outputs were materialized during last build. This can be very slow if the size of the outputs are large.

We achieved this by storing `FileContentsProxy` in the remote metadata after materialization. During dirtiness check, we compare remote metadata and the corresponding local metadata with their `digest`, or `proxy` if `digest` is not available for local metadata,

A user reported back the wall time of their very first increment build is improved by this change from `14s` to less than `1s` in common case, and from `115s` to less than `1s` in worst case. bazelbuild#24763

PiperOrigin-RevId: 715734718
Change-Id: Id1a1a59d8b5f3e91a7ae05a73663ff37eee6d163
@iancha1992 iancha1992 added this pull request to the merge queue Jan 16, 2025
@github-merge-queue github-merge-queue bot removed this pull request from the merge queue due to no response for status checks Jan 16, 2025
@iancha1992 iancha1992 added this pull request to the merge queue Jan 16, 2025
Merged via the queue into bazelbuild:release-7.5.0 with commit 19ea55d Jan 16, 2025
50 checks passed
@github-actions github-actions bot removed the awaiting-review PR is awaiting review from an assigned reviewer label Jan 16, 2025
@coeuvre coeuvre deleted the release-7.5.0 branch January 20, 2025 09:42
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
team-Performance Issues for Performance teams team-Remote-Exec Issues and PRs for the Execution (Remote) team
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants