jason810496 opened a new issue, #70548: URL: https://github.com/apache/airflow/issues/70548
### Background Since https://github.com/apache/airflow/pull/69757, ti_run derives per-map-index arg bindings for mapped `@task.stub` tasks via `SchedulerDictOfListsExpandInput.resolve_expansion_sub_indexes` → `_get_map_lengths` (`airflow-core/src/airflow/models/expandinput.py`). `_get_map_lengths` carries a pre-existing TODO: ```python # TODO: This initiates one database call for each XComArg. Would it be # more efficient to do one single db call and unpack the value here? ``` Upstream map lengths are immutable once populated for a DagRun, yet every ti_run of every map index re-queries them: a stub expanded over K XComArg kwargs producing N map indexes issues N×K identical `get_task_map_length` queries per DagRun, on the hot ti_run route. (Stubs expanding over a single kwarg short-circuit and skip the lookups; literal kwargs cost `len()` only.) ### What needs to happen 1. Batch the per-kwarg length lookups into a single query (addressing the pre-existing `_get_map_lengths` TODO). 2. Consider memoizing resolved lengths per `(dag_id, run_id, task_id)` so repeated ti_run calls for sibling map indexes stop re-querying. ### Acceptance criteria - One ti_run of a mapped stub issues at most one map-length query. - Existing sub-index decomposition tests (`airflow-core/tests/unit/api_fastapi/execution_api/versions/head/test_task_instances.py`) stay green. ### Context - Originating PR: https://github.com/apache/airflow/pull/69757 (review finding) - Caller: `airflow-core/src/airflow/api_fastapi/execution_api/services/task_instances.py` (`_resolve_mapped_stub_arg_bindings`) --- Drafted-by: Claude Code (Fable 5); reviewed by @jason810496 before posting -- 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]
