OS之Karma分配法:《Resource Allocation for Dynamic Demands》将金融风控机制引入操作系统,考虑进程既往资源申请与借出行为进行动态资源调配

OS之Karma分配法:《Resource Allocation for Dynamic Demands》将金融风控机制引入操作系统,考虑用户既往资源申请与借出行为进行动态资源调配

Karma 方法简介

Karma 是一种针对动态用户需求的全新资源分配机制。Karma 的关键技术贡献是基于信用的资源分配算法:每个分配时刻,用户捐出自己未使用的资源,并在其他用户借用这些资源时分配信用;Karma 精心安排用户之间的信用交换(基于用户的即时需求、捐出的资源和借用的资源),并根据用户的信用进行优先资源分配。

  • 满足动态需求
  • 允许出借空闲资源(分为shared slices和donated sliced)
    在这里插入图片描述
  • 既往行为(出借[borrow]加分[increment credit])影响分配优先级
    在这里插入图片描述

适用场景

  • 多用户
  • 需求动态变化

在这里插入图片描述
对 Google 和 Snowflake 工作负载的分析表明,大部分用户的需求是动态的,可在短时间内发生急剧变化。

优点1-公平性

场景1:有6个资源片,3个用户平均需求和公平份额等于2。

传统分配算法
在这里插入图片描述

公平分配比最大最小公平分配——随着时间的推移,公平分配每个用户8个资源片。
在这里插入图片描述

优点2-惩罚机制

在这里插入图片描述

相对于按用户要求分配资源的算法,Karma 管理的用户无法通过指定高于实际需求的需求来分配增加其可用资源。
在这里插入图片描述

要求用户了解所有用户的未来需求。如果
用户对未来的所有需求没有精确的了解
,它可能会损失n+2倍的有用分配。
在这里插入图片描述

优点3-防组团骗资源

在这里插入图片描述

实现架构

Karma 基于开源分布式数据库 Jiff 实现,采用了三种关键的数据结构来高效地实现管理机制——
KarmaPool、CreditMap 和 RateMap。
Jiff 文章地址:https://dl.acm.org/doi/abs/10.1145/3492321.3527539
在这里插入图片描述
KarmaPool 跟踪 donated slices 和 shared slices的pool,当资源分配发生变化时更新。

RateMap 将每个用户映射到其每个量子赚取或花费其信用的比率,即用户的保证份额与
它每次分配的资源量。

CreditMap 将每个用户映射到与其当前信用相对应的计数器。

免费获取 Karma 源码地址:https://github.com/resource-disaggregation/karma

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值