Optimize scheduler backfill completion updates - #71216
Open
fat-catTW wants to merge 1 commit into
Open
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Why:
The scheduler checks whether backfills are complete as part of its regular loop. The previous implementation loaded every matching
Backfillrow into the ORM session and then updated each object in Python, even though the completion condition can be expressed entirely in SQL.Using a bulk update keeps this scheduler path lighter while preserving the existing AIP-78 backfill lifecycle guards.
Solution:
Update
_mark_backfills_complete()to issue a single bulkUPDATEfor backfills that are ready to complete.The existing guards are preserved:
Add a regression test that verifies the completion path uses a single update statement.
Was generative AI tooling used to co-author this PR?
[X]Yes (please specify the tool below)Generated-by: [Codex] following the guidelines
{pr_number}.significant.rst, in airflow-core/newsfragments. You can add this file in a follow-up commit after the PR is created so you know the PR number.