• Tim Gross's avatar
    quotas: evaluate quota feasibility last in scheduler (#10753) · 2b63a093
    Tim Gross authored
    The `QuotaIterator` is used as the source of nodes passed into feasibility
    checking for constraints. Every node that passes the quota check counts the
    allocation resources agains the quota, and as a result we count nodes which
    will be later filtered out by constraints. Therefore for jobs with
    constraints, nodes that are feasibility checked but fail have been counted
    against quotas. This failure mode is order dependent; if all the unfiltered
    nodes happen to be quota checked first, everything works as expected.
    
    This changeset moves the `QuotaIterator` to happen last among all feasibility
    checkers (but before ranking). The `QuotaIterator` will never receive filtered
    nodes so it will calculate quotas correctly.
    2b63a093
To find the state of this project's repository at the time of any of these versions, check out the tags.