[
https://issues.apache.org/jira/browse/YUNIKORN-1787?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17767382#comment-17767382
]
Wilfred Spiegelenburg commented on YUNIKORN-1787:
-------------------------------------------------
There is another assumption that is not correct. We might not have run the
predicates at all for the node we try to reserve. We first do a fit in check in
tryNode() if that fails we return directly without ever trying the predicates.
If after checking all nodes no nodes were good, either fit or predicates, we
choose the best fit node. That node might be one that not passed the fit at
all. Unless we keep track that the predicates were run in that cycle for that
node we must not assume we did.
We also do not know which predicate failed and if that predicate is part of the
reservation set or not. Since the core does not define those lists the shim
would need to pass that back as part of the predicate result. Based on what I
can see predicates will be run only up to the first failure. Which could mean
that not all of predicates needed for the reservation have been run unless we
make sure that they are the first in the allocate slice.
Too much overhead and complexity for too little gain I think.
Looking through the predicates we have enabled: should we not remove the
{{InterPodAffinity}} from the reservation checks? We reserve if the node cannot
fit the pod. That means at least one pod has to go from that node to fit the
new one. That changes the pod affinity. Might make the reservation predicates
even lighter...
> Re-use predicate results for reservation
> ----------------------------------------
>
> Key: YUNIKORN-1787
> URL: https://issues.apache.org/jira/browse/YUNIKORN-1787
> Project: Apache YuniKorn
> Issue Type: Sub-task
> Components: core - scheduler, shim - kubernetes
> Reporter: Peter Bacsko
> Assignee: Peter Bacsko
> Priority: Minor
>
> As mentioned in
> https://issues.apache.org/jira/browse/YUNIKORN-1378?focusedCommentId=17720232&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-17720232,
> we don't need to run predicates again for reservation.
> If the cluster is busy and no suitable node were found for the request, we
> check if the predicate that failed is a reservation predicate. If it is, then
> there's no reason to run the reservation predicates.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]