DRF is a generalization of max min fairness for multiple resources. Each user has a demand vector (containing multiple resources; for one task of the user) and a dominant resource (xxx-bound) -- calculated using the demand vector and total resources available -- and DRF tries to equalize the dominant share (fraction of the dominant resource user is allocated) for all users.
- Introduction
- Motivation
- Allocation Properties
- Dominant Resource Fairness (DRF)
- An Example
- DRF Scheduling Algorithm
- Weighted DRF
- Alternative Fair Allocation Policies
- Asset Fairness
- Competitive Equilibrium from Equal Incomes
- Comparison with DRF
- Analysis
- Fairness Properties
- Properties Violated by Asset Fairness
- Properties Violated by CEEI
- Resource Monotonicity vs. Sharing Incentives and Pareto efficiency
- Discrete Resource Allocation
- Fairness Properties
- Experimental Results
- Dynamic Resource Sharing
- DRF vs. Alternative Allocation Policies
- Simulations using Facebook Traces
- Related Work
- Conclusion and Future Work
- Acknowledgments
- Desired properties for resource allocation policies
- Sharing incentive: Each user should be better off sharing the cluster, than exclusively using her own partition of the cluster. Consider a cluster with identical nodes and n users. Then a user should not be able to allocate more tasks in a cluster partition consisting of 1/n of all resources.
- Strategy-proofness: Users should not be able to benefit by lying about their resource demands. This provides incentive compatibility, as a user cannot improve her allocation by lying.
- The paper included two really interesting examples of users benefitting from lying
- Pareto efficiency: It should not be possible to increase the allocation of a user without decreasing the allocation of at least another user. This property is important as it leads to maximizing system utilization subject to satisfying the other properties.
- Envy freeness: A user should not prefer the allocation of another user.
- Four other nice properties that are nice-to-have
- Single resource fairness: For a single resource, the solution should reduce to max-min fairness.
- Bottleneck fairness: If there is one resource that is percent-wise demanded most of by every user, then the solution should reduce to max-min fairness for that resource.
- Population monotonicity: When a user leaves the system and relinquishes her resources, none of the allocations of the remaining users should decrease.
- Resource monotonicity: If more resources are added to the system, none of the allocations of the existing users should decrease.
- Existing (fair) allocation policies
- Equal share: Not work conserving
- Max min fairness: Maximize the allocation for most poorly-treated users
- Asset fairness: Equalizes each user's sum of resource shares (violates sharing incentive)
- (Microeconomic theory) Competitive Equilibrium from Equal Incomes (CEEI): (not strategy-proof)
- Previous work on fair allocation focuses on one single resource type