stephen-bracken commented on code in PR #69107:
URL: https://github.com/apache/airflow/pull/69107#discussion_r3491251685


##########
providers/keycloak/src/airflow/providers/keycloak/auth_manager/keycloak_auth_manager.py:
##########
@@ -457,10 +458,27 @@ def filter_authorized_dag_ids(
         cache_key = (user.get_id(), method, team_name, frozenset(dag_ids))
 
         def query_keycloak() -> set[str]:
-            kwargs: dict = dict(dag_ids=dag_ids, user=user, method=method)
-            if team_name is not None:
-                kwargs["team_name"] = team_name
-            return super(KeycloakAuthManager, 
self).filter_authorized_dag_ids(**kwargs)
+            if not dag_ids:
+                return set()
+
+            max_workers = min(
+                len(dag_ids), conf.getint(CONF_SECTION_NAME, 
CONF_REQUESTS_POOL_SIZE_KEY, fallback=10)
+            )
+
+            def check(dag_id: str) -> tuple[str, bool]:
+                details_kwargs: dict[str, Any] = {"id": dag_id}
+                if team_name is not None:
+                    details_kwargs["team_name"] = team_name
+                return dag_id, self.is_authorized_dag(

Review Comment:
   @SameerMesiah97 I tested this in my dev environment, increasing the pool 
size from 10 to 100 had a noticeable improvement (7s to load `/dags` down from 
10s), but increasing beyond this has not improved it so I agree with Andrew's 
assessment that the serialised calls are a problem here.



-- 
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]

Reply via email to