[ 
https://issues.apache.org/jira/browse/SPARK-60480?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

ASF GitHub Bot updated SPARK-60480:
-----------------------------------
    Labels: pull-request-available  (was: )

> Avoid scanning healthy executor pods in ExecutorPodsLifecycleManager
> --------------------------------------------------------------------
>
>                 Key: SPARK-60480
>                 URL: https://issues.apache.org/jira/browse/SPARK-60480
>             Project: Spark
>          Issue Type: Improvement
>          Components: Kubernetes
>    Affects Versions: 5.0.0
>            Reporter: Victor Sunderland
>            Priority: Major
>              Labels: pull-request-available
>
> {{ExecutorPodsLifecycleManager.onNewSnapshots()}} scans the full executor pod 
> map of every snapshot twice: once to collect failed executors and once to 
> handle final and inactive pods. Healthy (pending or running) pods never need 
> lifecycle handling, so with many executors and frequent watch updates most of 
> this work is wasted.
> Each {{ExecutorPodsSnapshot}} can keep an index of its final and inactive 
> pods, maintained incrementally in {{withUpdate()}}, so the manager only 
> visits the pods it acts on. Every snapshot is still processed, so failures 
> seen in intermediate snapshots and retries of failed pod deletions are 
> preserved. Missing-pod detection keeps using the full pod map.
> In a local synthetic benchmark with 10,000 executor pods and 100 watch 
> updates per batch, snapshot updates plus lifecycle processing for healthy-pod 
> batches dropped from 14.9 ms to 0.011 ms.
> This is similar to SPARK-55963, which optimized snapshot traversal in 
> {{ExecutorPodsAllocator}}.



--
This message was sent by Atlassian Jira
(v10.3.26#10030026)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to