Details
-
Improvement
-
Status: Open
-
Major
-
Resolution: Unresolved
-
None
-
None
Description
Currently, quota is allocated based DRF sorting of the roles based on the role's cluster-wide allocation. This strategy is in place to attempt to allocate quota in a fair manner. However, it is ill-fitted to quota, since quota bears no connection to a fair share of the overall cluster. Rather, a more appropriate notion of fairness of quota, would be a DRF of the roles based on the role's share of its quota.
For example:
small_role: quota = [10,20,30] large_role: quota = [100,200,300] both have allocation of [0,0,0] with dominant share of 0. allocate to small_role [1,2,3], small role now has dominant share of 0.1. allocate to large_role [1,2,3], large role now has dominant share 0.01, allocate to large_role [2,4,6], large role now has dominant share 0.02, ... allocate to large_role [10,20,30], large role now has dominant share 0.1. now small_role and large_role are tied again, repeat.
This strategy attempts to evenly satisfy quota across the roles. In this example, since large_role has 10x the quota as small_role, it receives resources in a 10:1 ratio compared to small_role.