[
https://issues.apache.org/jira/browse/YUNIKORN-2206?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17790716#comment-17790716
]
Peter Bacsko commented on YUNIKORN-2206:
----------------------------------------
My idea: cache Resource-Resource pairs which failed the comparison. It's safe
to assume that headroom values don't change very quickly. If a pair is found
inside the cache, then it means the given ask doesn't fit.
Basically, it's a {{map[*resource.Resource]map[*Resource.Resource]bool}}. Key
is the headroom value, value is a map that contains other resource objects
which are smaller.
> Make user/queue headroom checks more performant
> -----------------------------------------------
>
> Key: YUNIKORN-2206
> URL: https://issues.apache.org/jira/browse/YUNIKORN-2206
> Project: Apache YuniKorn
> Issue Type: Improvement
> Components: core - scheduler
> Reporter: Peter Bacsko
> Assignee: Peter Bacsko
> Priority: Major
>
> Inside Application.tryAllocate() and tryReservedAllocate(), we have the
> following code:
> {noformat}
> if !userHeadroom.FitInMaxUndef(ask.GetAllocatedResource()) {
> continue
> }
> // check if this fits in the queue's headroom
> if !headRoom.FitInMaxUndef(ask.GetAllocatedResource()) {
> continue
> }
> {noformat}
> These calls are relatively expensive, but necessary. Calling them once isn't
> a problem.
> However, repeated calls are slowing things down considerably. Yunikorn keeps
> trying to schedule asks and until there's enough room for the request, these
> checks will fail. We need a way to speed it up.
> See YUNIKORN-2201 about the details.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]