wilfred-s commented on PR #945:
URL: https://github.com/apache/yunikorn-core/pull/945#issuecomment-2296288307
> Reason for not doing the check in initWorkingState method is to consider
that node for further steps and to avoid elimination then and there. Though
fitIn check fails bit later in calculateVictimsByNode(), returning empty
allocations list for that specific node makes it to pass through further steps.
One important step among them is to running normal predicate checks to ensure
node doesn't have any predicate failures. So, moving the check bit higher up in
the hierarchy would eliminate the node which is something we don't want to do.
The difference in the check that I am looking at adding is that I want to
compare the size of the `ask.GetAllocatedResource()` against the capacity of
the node. Not the available size. If the allocation is larger than the node has
registered we can never place the allocation on that node. We might as well
skip that node completely.
```
ask = {memory: 192G, vcore: 4000}
node capacity = {memory: 128G, vcore: 32000}
```
Even if I kill all allocations on that node 256G will not fit on a 128G
node. That means in the end `calculateVictimsByNode()` returns a nil list as
the last check to see if the allocation fits will never trigger (part of
walking over the victim list and increasing available resources on the node.
The `FitInMaxUndef` we are now changing..
Same if I have resources like GPU etc. We should not look a the node if the
ask needs GPU and the node does not have.
--
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]