Skip to content

scheduler: deduplicate build and pull of elements with same cache key - #2211

Open
ownik wants to merge 1 commit into
apache:masterfrom
ownik:scheduler-deduplicate-build-and-pull
Open

ownik wants to merge 1 commit into
apache:masterfrom
ownik:scheduler-deduplicate-build-and-pull

Conversation

@ownik

@ownik ownik commented Oct 23, 2026

Copy link
Copy Markdown
Contributor

When the same element is included through several junctions, its instances share a strong cache key and with multiple builders get built or pulled in parallel, writing the same artifact concurrently. This change makes the build and pull queues process one instance per cache key at a time. The others wait and then reuse the cached artifact, or take over if the first job failed.

Added tests in tests/scheduler/deduplication.py. I ran the full test suite and checked that everything passes.

Please review.

When one element is included through several junctions, the pipeline
has several instances of it with the same strong cache key. With
multiple builders they are built or pulled in parallel and write the
same artifact concurrently, which can fail the build.

Build and pull queues now process one instance per cache key at a
time. Other instances wait, then link the cached artifact under their
own name, or take over if the first job failed.
@abderrahim

Copy link
Copy Markdown
Contributor

Thanks, this should help with #2120. I'll try to review it soon.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants