Sunil G commented on YARN-2004:

About the priority inversion problem, I feel we could use below approach

1. To identify lower priority application which is waiting for resource over a 
long period,  *lastScheduledContainer* in *SchedulerApplicationAttempt* can be 
used to get the timestamp of last allocation. And based on a time limit 
configuration, it is possible to identify the apps which are starving.
2. Identify few higher applications and decrease its headroom explicitly by one 
resource request of lower priority application.
3. Reset the headroom of higher priority application back once lower priority 
application has got the container. 
Kindly share the thoughts on same.

> Priority scheduling support in Capacity scheduler
> -------------------------------------------------
>                 Key: YARN-2004
>                 URL: https://issues.apache.org/jira/browse/YARN-2004
>             Project: Hadoop YARN
>          Issue Type: Sub-task
>          Components: capacityscheduler
>            Reporter: Sunil G
>            Assignee: Sunil G
>         Attachments: 0001-YARN-2004.patch
> Based on the priority of the application, Capacity Scheduler should be able 
> to give preference to application while doing scheduling.
> Comparator<FiCaSchedulerApp> applicationComparator can be changed as below.   
> 1.    Check for Application priority. If priority is available, then return 
> the highest priority job.
> 2.    Otherwise continue with existing logic such as App ID comparison and 
> then TimeStamp comparison.

This message was sent by Atlassian JIRA

Reply via email to