You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@yunikorn.apache.org by "Peter Bacsko (Jira)" <ji...@apache.org> on 2023/03/28 14:45:00 UTC

[jira] [Assigned] (YUNIKORN-1665) Group tracked resources/counters to a separate type from Queue

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

Peter Bacsko reassigned YUNIKORN-1665:
--------------------------------------

    Assignee: Peter Bacsko

> Group tracked resources/counters to a separate type from Queue
> --------------------------------------------------------------
>
>                 Key: YUNIKORN-1665
>                 URL: https://issues.apache.org/jira/browse/YUNIKORN-1665
>             Project: Apache YuniKorn
>          Issue Type: Sub-task
>          Components: core - scheduler
>            Reporter: Peter Bacsko
>            Assignee: Peter Bacsko
>            Priority: Major
>
> In core, we track a bunch of things inside a queue. Sometimes it's tracked automatically with the parent, sometimes not:
>  
> ||Tracked item||Type||Updated in the parent||
> |Applications|map[string]*Application|no|
> |Allocation|*resource.Resource|yes|
> |Reserved Apps|map[string]int|no|
> |Pending resource|*resource.Resource|yes|
> |Preempted resource|*resource.Resource|yes|
> |Reserved apps|map[string]int|no|
> |Running apps|uint64|yes|
> |AllocatingAcceptedApps|map[string]bool|yes|
> When we move an application to one leaf to another, all of these data structures need to be updated.
> For example, if an application is moved from "root.users.qa.alice" to "root.dev", then its "pending" resources tracked in "root.users.qa.alice" must be subtracted from the two parents + leaf except root and it need to be added to "root.dev".
> Whenever we add something new to track, it's easy to forget that it affects the app moving logic. So we can do two things:
> 1) We re-organize the current source code a bit better to make it clear that code in "queue_moveapp.go" needs to be updated if we add something new to track.
> 2) We extract everything to a separate Tracker type and this becomes even more obvious. The Tracker can be similar to {{ugm.QueueTracker}}, where the trackers are built in a hierarchy which accurately reflects the queue hierarchy, ie. all trackers have child trackers.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@yunikorn.apache.org
For additional commands, e-mail: issues-help@yunikorn.apache.org