github-actions[bot] opened a new pull request, #71889: URL: https://github.com/apache/airflow/pull/71889
delete_dag forced SQLAlchemy's "fetch" synchronization strategy on every bulk delete it issues. That strategy reads the primary key of every deleted row back from the database so it can mark matching in-memory objects as deleted, but the session holds nothing beyond the Dag's own DagModel row — the keys were matched against an effectively empty identity map and discarded, once per table with a dag_id column. The cost scaled with the Dag's history rather than with the number of objects actually needing synchronization: roughly 211 bytes of transient Python heap per deleted row on PostgreSQL, or about 1 GiB in the API server for a Dag with five million task instances. The default strategy evaluates the criteria in Python against the objects already loaded, so synchronization still happens without a round-trip sized by the row count. (cherry picked from commit b61c9c63298a6f171bd04cd4090e9d1b4387d896) Co-authored-by: Jyun-An Chen <[email protected]> -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
