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

Intern module extension repo mapping entries via a SkyFunction #20095

Closed

Conversation

fmeum
Copy link
Collaborator

@fmeum fmeum commented Nov 8, 2023

Since 74aadb2, the entries of RepositoryMappings are interned to prevent quadratic memory usage for module extensions that create many repos. By using a dedicated SkyFunction instead of an interner, the CPU time spent on computing the identical repository mappings for extension repos, which showed up in profiles, is saved in addition to the memory usage.

Since 74aadb2, the entries of
`RepositoryMapping`s are interned to prevent quadratic memory usage for
module extensions that create many repos. By using a dedicated
`SkyFunction` instead of an interner, the CPU time spent on computing
the identical repository mappings for extension repos, which showed up
in profiles, is saved in addition to the memory usage.
@fmeum fmeum marked this pull request as ready for review November 8, 2023 11:01
@fmeum fmeum requested review from a team, Wyverald and meteorcloudy as code owners November 8, 2023 11:01
@fmeum fmeum requested review from aiuto and removed request for a team, meteorcloudy and aiuto November 8, 2023 11:01
@github-actions github-actions bot added awaiting-review PR is awaiting review from an assigned reviewer team-Configurability platforms, toolchains, cquery, select(), config transitions team-ExternalDeps External dependency handling, remote repositiories, WORKSPACE file. labels Nov 8, 2023
@fmeum
Copy link
Collaborator Author

fmeum commented Nov 8, 2023

@bazel-io flag

@bazel-io bazel-io added the potential release blocker Flagged by community members using "@bazel-io flag". Should be added to a release blocker milestone label Nov 8, 2023
@meteorcloudy
Copy link
Member

@bazel-io fork 7.0.0

@bazel-io bazel-io removed the potential release blocker Flagged by community members using "@bazel-io flag". Should be added to a release blocker milestone label Nov 8, 2023
@fmeum fmeum removed the team-Configurability platforms, toolchains, cquery, select(), config transitions label Nov 8, 2023
@fmeum fmeum requested a review from Wyverald November 8, 2023 20:14
@Wyverald Wyverald 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 Nov 8, 2023
@sgowroji
Copy link
Member

sgowroji commented Nov 10, 2023

Hi @fmeum, Could you please resolve the code conflicts? This PR is awaiting to merge. Thanks!

@fmeum
Copy link
Collaborator Author

fmeum commented Nov 10, 2023

@sgowroji I resolved it.

@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 Nov 10, 2023
bazel-io pushed a commit to bazel-io/bazel that referenced this pull request Nov 10, 2023
Since 74aadb2, the entries of `RepositoryMapping`s are interned to prevent quadratic memory usage for module extensions that create many repos. By using a dedicated `SkyFunction` instead of an interner, the CPU time spent on computing the identical repository mappings for extension repos, which showed up in profiles, is saved in addition to the memory usage.

Closes bazelbuild#20095.

PiperOrigin-RevId: 581177545
Change-Id: Ied5682ba90f5f771fedffbea1491e7b2f6c27145
@fmeum fmeum deleted the faster-repo-mapping-construction branch November 10, 2023 11:40
meteorcloudy pushed a commit that referenced this pull request Nov 10, 2023
…on` (#20137)

Since 74aadb2, the entries of
`RepositoryMapping`s are interned to prevent quadratic memory usage for
module extensions that create many repos. By using a dedicated
`SkyFunction` instead of an interner, the CPU time spent on computing
the identical repository mappings for extension repos, which showed up
in profiles, is saved in addition to the memory usage.

Closes #20095.

Commit
07a571f

PiperOrigin-RevId: 581177545
Change-Id: Ied5682ba90f5f771fedffbea1491e7b2f6c27145

Co-authored-by: Fabian Meumertzheim <fabian@meumertzhe.im>
@iancha1992
Copy link
Member

The changes in this PR have been included in Bazel 7.0.0 RC5. Please test out the release candidate and report any issues as soon as possible. If you're using Bazelisk, you can point to the latest RC by setting USE_BAZEL_VERSION=last_rc.
Thanks!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
team-ExternalDeps External dependency handling, remote repositiories, WORKSPACE file.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants