Skip to content

Reduce Merkle tree footprint by lazily converting to Paths#28737

Closed
fmeum wants to merge 1 commit intobazelbuild:masterfrom
fmeum:optimize-merkle-tree-size-2
Closed

Reduce Merkle tree footprint by lazily converting to Paths#28737
fmeum wants to merge 1 commit intobazelbuild:masterfrom
fmeum:optimize-merkle-tree-size-2

Conversation

@fmeum
Copy link
Copy Markdown
Collaborator

@fmeum fmeum commented Feb 21, 2026

Description

Paths of ActionInputs are typically not retained, which means that keeping them in memory as part of a Merkle tree is wasteful. Instead, retain the inputs and lazily convert to Path when uploading using the ArtifactPathResolver anyway retained by SpawnExecutionContext.

Motivation

Work towards #20478
Work towards #28734

Build API Changes

No

Checklist

  • I have added tests for the new use cases (if any).
  • I have updated the documentation (if applicable).

Release Notes

RELNOTES: None

@fmeum fmeum force-pushed the optimize-merkle-tree-size-2 branch 5 times, most recently from 5f2c6d5 to 798d3ab Compare February 26, 2026 11:04
@fmeum fmeum marked this pull request as ready for review February 26, 2026 11:05
@fmeum fmeum requested a review from a team as a code owner February 26, 2026 11:05
@fmeum fmeum requested a review from tjgq February 26, 2026 11:05
@github-actions github-actions Bot added team-Remote-Exec Issues and PRs for the Execution (Remote) team awaiting-review PR is awaiting review from an assigned reviewer labels Feb 26, 2026
@fmeum fmeum force-pushed the optimize-merkle-tree-size-2 branch from 798d3ab to 7238f9e Compare February 26, 2026 11:05
@fmeum
Copy link
Copy Markdown
Collaborator Author

fmeum commented Feb 26, 2026

@bazel-io fork 9.1.0

@tjgq tjgq added awaiting-PR-merge PR has been approved by a reviewer and is ready to be merge internally and removed awaiting-review PR is awaiting review from an assigned reviewer labels Feb 26, 2026
@github-actions github-actions Bot removed the awaiting-PR-merge PR has been approved by a reviewer and is ready to be merge internally label Feb 27, 2026
iancha1992 pushed a commit to iancha1992/bazel that referenced this pull request Feb 27, 2026
…ild#28737)

`Path`s of `ActionInput`s are typically not retained, which means that keeping them in memory as part of a Merkle tree is wasteful. Instead, retain the inputs and lazily convert to `Path` when uploading using the `ArtifactPathResolver` anyway retained by `SpawnExecutionContext`.

Work towards bazelbuild#20478
Work towards bazelbuild#28734

No

- [ ] I have added tests for the new use cases (if any).
- [ ] I have updated the documentation (if applicable).

RELNOTES: None

Closes bazelbuild#28737.

PiperOrigin-RevId: 876039610
Change-Id: Id4af6af2daf7ef72e8a8e3da35f00e2dccd81bd0
github-merge-queue Bot pushed a commit that referenced this pull request Mar 3, 2026
…(https:/… (#28831)

…/github.com//pull/28737)

`Path`s of `ActionInput`s are typically not retained, which means that
keeping them in memory as part of a Merkle tree is wasteful. Instead,
retain the inputs and lazily convert to `Path` when uploading using the
`ArtifactPathResolver` anyway retained by `SpawnExecutionContext`.

Work towards #20478
Work towards #28734

No

- [ ] I have added tests for the new use cases (if any).
- [ ] I have updated the documentation (if applicable).

RELNOTES: None

Closes #28737.

PiperOrigin-RevId: 876039610
Change-Id: Id4af6af2daf7ef72e8a8e3da35f00e2dccd81bd0

<!--
Thank you for contributing to Bazel!
Please read the contribution guidelines:
https://bazel.build/contribute.html
-->

### Description
<!--
Please provide a brief summary of the changes in this PR.
-->

### Motivation
<!--
Why is this change important? Does it fix a specific bug or add a new
feature?
If this PR fixes an existing issue, please link it here (e.g. "Fixes
#1234").
-->

### Build API Changes
<!--
Does this PR affect the Build API? (e.g. Starlark API, providers,
command-line flags, native rules)
If yes, please answer the following:
1. Has this been discussed in a design doc or issue? (Please link it)
2. Is the change backward compatible?
3. If it's a breaking change, what is the migration plan?
-->

No

### Checklist

- [ ] I have added tests for the new use cases (if any).
- [ ] I have updated the documentation (if applicable).

### Release Notes

<!--
If this is a new feature, please add 'RELNOTES[NEW]: <description>'
here.
If this is a breaking change, please add 'RELNOTES[INC]: <reason>' here.
If this change should be mentioned in release notes, please add
'RELNOTES: <reason>' here.
-->

RELNOTES: None

Commit
21ac6c1

Co-authored-by: Fabian Meumertzheim <fabian@meumertzhe.im>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

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