auction model for resource scheduling in cloud foundry diego
TRANSCRIPT
5Pivotal Confidential–Internal Use Only
Simple Auction
Who wants to run an app? Me x 100!
Me x 50!Meh…
9Pivotal Confidential–Internal Use Only
Multiple Simultaneous Auctions
Who wants to run an app? x 9 Me x 100!
Me x 50!Meh…
x 9
x 9x 9
14Pivotal Confidential–Internal Use Only
Multiple Simultaneous Auctions
Me x 33!
Me x 50!
1
2
3
5
7
4
15Pivotal Confidential–Internal Use Only
Multiple Simultaneous Auctions
Me x 33!
Me x 50!
1
2
3
6
7
4
5
16Pivotal Confidential–Internal Use Only
Multiple Simultaneous Auctions
Me x 33!
Me x 50!
1
2
3
74
6
5
8
20Pivotal Confidential–Internal Use Only
Detail: Bidding
bid := cell.score(
cell.FractionUsedContainers(),cell.FractionFreeMemory(),cell.FractionFreeDisk(),
cell.NumRunningForID(app.ID),)// => 50
Me x 50!id: 123
+ =
21Pivotal Confidential–Internal Use Only
Detail: Bidding
1. score is not parameterized> Operator can’t customize based on env-specific resource constraints
2. score does not account for AZ/cluster anti-affinity> NumRunningForID only accounts for VM anti-affinity
bid := cell.score(
cell.FractionUsedContainers(),cell.FractionFreeMemory(),cell.FractionFreeDisk(),
cell.NumRunningForID(app.ID),)// => 50
22Pivotal Confidential–Internal Use Only
( )
Parameterized Multi-AZ Bidding
1. score is not parameterized> Operator can’t customize based on env-specific resource constraints
2. score does not account for AZ/cluster anti-affinity> NumRunningForID only accounts for VM anti-affinity
bidid: 123
+ ={ }a b g d
numAZs
2
31
2
id: 123
id: 123
id: 999