Skip to content

Reduce Merkle tree footprint by referencing FileArtifactValue#28739

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

Reduce Merkle tree footprint by referencing FileArtifactValue#28739
fmeum wants to merge 1 commit intobazelbuild:masterfrom
fmeum:optimize-merkle-tree-size-3

Conversation

@fmeum
Copy link
Copy Markdown
Collaborator

@fmeum fmeum commented Feb 22, 2026

Description

For regular files, use FileArtifactValues instead of Digests as the keys in the Merkle tree's blob map. The former are retained anyway, the latter are unique per tree.

Also describe the remaining footprint of MerkleTree and ideas for future improvements.

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-3 branch from 06600c5 to 149c68c Compare February 27, 2026 09:55
@fmeum
Copy link
Copy Markdown
Collaborator Author

fmeum commented Feb 27, 2026

@bazel-io fork 9.1.0

@fmeum fmeum force-pushed the optimize-merkle-tree-size-3 branch from 149c68c to cba87f9 Compare February 27, 2026 10:37
@fmeum fmeum marked this pull request as ready for review February 27, 2026 10:37
@fmeum fmeum requested a review from a team as a code owner February 27, 2026 10:37
@fmeum fmeum requested a review from tjgq February 27, 2026 10:37
@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 27, 2026
@fmeum fmeum removed the request for review from a team February 27, 2026 10:44
@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 Mar 5, 2026
@copybara-service copybara-service bot closed this in bbdc0c3 Mar 6, 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 Mar 6, 2026
@fmeum fmeum deleted the optimize-merkle-tree-size-3 branch March 6, 2026 17:39
iancha1992 pushed a commit to iancha1992/bazel that referenced this pull request Mar 6, 2026
…lbuild#28739)

For regular files, use `FileArtifactValue`s instead of `Digest`s as the keys in the Merkle tree's blob map. The former are retained anyway, the latter are unique per tree.

Also describe the remaining footprint of `MerkleTree` and ideas for future improvements.

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#28739.

PiperOrigin-RevId: 879654674
Change-Id: I87fc74392481a7409f3775c27d90eab8b5eb1b4b
github-merge-queue bot pushed a commit that referenced this pull request Mar 10, 2026
…e` (http… (#28918)

…s://github.com//pull/28739)

For regular files, use `FileArtifactValue`s instead of `Digest`s as the
keys in the Merkle tree's blob map. The former are retained anyway, the
latter are unique per tree.

Also describe the remaining footprint of `MerkleTree` and ideas for
future improvements.

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 #28739.

PiperOrigin-RevId: 879654674
Change-Id: I87fc74392481a7409f3775c27d90eab8b5eb1b4b

<!--
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
bbdc0c3

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