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]

Reply via email to