We consider the problem of fair resource allocation in a system where user demands are dynamic, that is, where user demands vary over time. Our key observation is that the classical max-min fairness algorithm for resource allocation provides many desirable properties (e.g., Pareto efficiency, strategy-proofness, and fairness), but only under the strong assumption of user demands being static over time. For the realistic case of dynamic user demands, the max-min fairness algorithm loses one or more of these properties. We present Karma, a new resource allocation mechanism for dynamic user demands. The key technical contribution in Karma is a credit-based resource allocation algorithm: in each quantum, users donate their unused resources and are assigned credits when other users borrow these resources; Karma carefully orchestrates the exchange of credits across users (based on their instantaneous demands, donated resources and borrowed resources), and performs prioritized resource allocation based on users' credits. We theoretically establish Karma guarantees related to Pareto efficiency, strategy-proofness, and fairness for dynamic user demands. Empirical evaluations over production workloads show that these properties translate well into practice: Karma is able to reduce disparity in performance across users to a bare minimum while maintaining Pareto-optimal system-wide performance.
翻译:我们研究系统中用户需求动态变化(即用户需求随时间变化)时的公平资源分配问题。关键发现是:经典的资源分配最大最小公平算法在用户需求随时间保持静态的强假设下,具备帕累托最优性、策略证明性和公平性等诸多理想属性。但在用户需求动态变化的现实场景下,该算法会丧失其中一项或多项属性。为此,我们提出Karma——一种面向动态用户需求的资源分配新机制。其核心技术贡献在于基于信用积分的资源分配算法:在每个时间量子中,用户捐赠未使用的资源,当其他用户借用这些资源时,捐赠者获得信用积分;Karma通过精密编排用户间的信用交换(基于其实时需求、已捐赠资源和已借用资源),并根据用户信用执行优先级资源分配。我们从理论上证明Karma在动态用户需求下具备帕累托最优性、策略证明性和公平性保障。基于生产工作负载的实证评估表明,这些属性在实践中得到良好体现:Karma能在保持系统级帕累托最优性能的同时,将用户间性能差异降至最低。