Performance Isolation and Fairness for Multi-Tenant Cloud Storage - - PowerPoint PPT Presentation

performance isolation and fairness for multi tenant cloud
SMART_READER_LITE
LIVE PREVIEW

Performance Isolation and Fairness for Multi-Tenant Cloud Storage - - PowerPoint PPT Presentation

PrincetonUniversity Performance Isolation and Fairness for Multi-Tenant Cloud Storage David Shue *, Michael Freedman*, and Anees Shaikh *Princeton IBM Research Setting: Shared Storage in the Cloud Y Y F F Z Z T T 2 Setting:


slide-1
SLIDE 1

PrincetonUniversity

Performance Isolation and Fairness for Multi-Tenant Cloud Storage

David Shue*, Michael Freedman*, and Anees Shaikh✦

*Princeton ✦IBM Research

slide-2
SLIDE 2

Setting: Shared Storage in the Cloud

2

Z Y T F Z Y F T

slide-3
SLIDE 3

Setting: Shared Storage in the Cloud

2

Z Y T F Z Y F T S3 EBS SQS

slide-4
SLIDE 4

Setting: Shared Storage in the Cloud

2

Z Y T F Z Y F T S3 EBS SQS Shared Key-Value Storage

slide-5
SLIDE 5

DD DD DD DD Shared Key-Value Storage

3

Z Y T F Z Y F T Y Y Z F F F

Multiple co-located tenants ⇒ resource contention

Predictable Performance is Hard

slide-6
SLIDE 6

DD DD DD DD DD DD DD DD Shared Key-Value Storage

4

Z Y T F Z Y F T Y Y Z F F F

Multiple co-located tenants ⇒ resource contention

Predictable Performance is Hard

slide-7
SLIDE 7

DD DD DD DD DD DD DD DD Shared Key-Value Storage

4

Z Y T F Z Y F T Y Y Z F F F

Fair queuing @ big iron Multiple co-located tenants ⇒ resource contention

Predictable Performance is Hard

slide-8
SLIDE 8

5

Distributed system ⇒ distributed resource allocation Multiple co-located tenants ⇒ resource contention

Z Y T F Z Y F T Y Y Z F F F SS SS SS SS

Predictable Performance is Hard

slide-9
SLIDE 9

Z Y T F Z Y F T Y Y Z F F F SS SS SS SS

6

Multiple co-located tenants ⇒ resource contention Distributed system ⇒ distributed resource allocation Z keyspace T keyspace F

keyspace

Y keyspace

Predictable Performance is Hard

slide-10
SLIDE 10

Z Y T F Z Y F T Y Y Z F F F SS SS SS SS

6

popularity data partition

Multiple co-located tenants ⇒ resource contention Distributed system ⇒ distributed resource allocation

Predictable Performance is Hard

slide-11
SLIDE 11

Z Y T F Z Y F T Y Y Z F F F Z Y T F Z Y F T Y Y Z F F F SS SS SS SS

7

Skewed object popularity ⇒ variable per-node demand Multiple co-located tenants ⇒ resource contention Distributed system ⇒ distributed resource allocation

Predictable Performance is Hard

slide-12
SLIDE 12

Z Y T F Z Y F T Y Y Z F F F Z Y T F Z Y F T Y Y Z F F F SS SS SS SS

7

Skewed object popularity ⇒ variable per-node demand Multiple co-located tenants ⇒ resource contention Distributed system ⇒ distributed resource allocation

1kB

GET

10B

GET

1kB

SET

10B

SET (small reads) (large reads) (large writes) (small writes)

Disparate workloads ⇒ different bottleneck resources

Predictable Performance is Hard

slide-13
SLIDE 13

Zynga Yelp Foursquare TP Shared Key-Value Storage

8

Tenants Want System-wide Resource Guarantees

Z Y T F Z Y F T Y Y Z F F F SS SS SS SS

d d Skewed object popularity ⇒ variable per-node demand Multiple co-located tenants ⇒ resource contention Distributed system ⇒ distributed resource allocation Disparate workloads ⇒ different bottleneck resources

slide-14
SLIDE 14

Zynga Yelp Foursquare TP Shared Key-Value Storage

8

Tenants Want System-wide Resource Guarantees

Z Y T F Z Y F T Y Y Z F F F SS SS SS SS

80 kreq/s 120 kreq/s 160 kreq/s 40 kreq/s

d d Skewed object popularity ⇒ variable per-node demand Multiple co-located tenants ⇒ resource contention Distributed system ⇒ distributed resource allocation Disparate workloads ⇒ different bottleneck resources

slide-15
SLIDE 15

Zynga Yelp Foursquare TP Shared Key-Value Storage

9

Pisces Provides Weighted Fair-shares

wz = 20% wy = 30% wf = 40% wt = 10%

d

Z Y T F Z Y F T Y Y Z F F F SS SS SS SS

Skewed object popularity ⇒ variable per-node demand Multiple co-located tenants ⇒ resource contention Distributed system ⇒ distributed resource allocation Disparate workloads ⇒ different bottleneck resources

slide-16
SLIDE 16

Pisces: Predictable Shared Cloud Storage

10

  • Pisces
  • Per-tenant max-min fair shares of system-wide resources

~ min guarantees, high utilization

  • Arbitrary object popularity
  • Different resource bottlenecks
slide-17
SLIDE 17

Pisces: Predictable Shared Cloud Storage

10

  • Pisces
  • Per-tenant max-min fair shares of system-wide resources

~ min guarantees, high utilization

  • Arbitrary object popularity
  • Different resource bottlenecks
  • Amazon DynamoDB
  • Per-tenant provisioned rates

~ rate limited, non-work conserving

  • Uniform object popularity
  • Single resource (1kB requests)
slide-18
SLIDE 18

Tenant A

Predictable Multi-Tenant Key-Value Storage

11

Tenant B

VM VM VM VM VM VM

GET 1101100

RR Controller

slide-19
SLIDE 19

Tenant A

Predictable Multi-Tenant Key-Value Storage

11

Tenant B

VM VM VM VM VM VM

GET 1101100

RR Controller

PP

slide-20
SLIDE 20

Tenant A

Predictable Multi-Tenant Key-Value Storage

11

Tenant B

VM VM VM VM VM VM

RS

GET 1101100

RR Controller

PP

slide-21
SLIDE 21

Tenant A

Predictable Multi-Tenant Key-Value Storage

11

Tenant B

VM VM VM VM VM VM

RS FQ

GET 1101100

RR Controller

PP

slide-22
SLIDE 22

Tenant A

Predictable Multi-Tenant Key-Value Storage

12

Tenant B

VM VM VM VM VM VM

WeightA WeightB

RS FQ PP WA WA2 WB2

GET 1101100

RR Controller

slide-23
SLIDE 23

Tenant A

Predictable Multi-Tenant Key-Value Storage

12

Tenant B

VM VM VM VM VM VM

WeightA WeightB

RS FQ PP WA WA2 WB2

GET 1101100

RR Controller

WA2 WB2 WA1 WB1

slide-24
SLIDE 24

Strawman: Place Partitions Randomly

13

Tenant A Tenant B

VM VM VM VM VM VM

WeightA WeightB

PP RS FQ WA WA2 WB2

Controller RR

slide-25
SLIDE 25

Strawman: Place Partitions Randomly

14

Tenant A Tenant B

VM VM VM VM VM VM

WeightA WeightB

PP RS FQ WA WA2 WB2

RR Controller

Overloaded

slide-26
SLIDE 26

Pisces: Place Partitions By Fairness Constraints

15

Tenant A Tenant B

VM VM VM VM VM VM

WeightA WeightB

PP RS FQ WA WA2 WB2

RR

Collect per-partition tenant demand

Controller

slide-27
SLIDE 27

Pisces: Place Partitions By Fairness Constraints

15

Bin-pack partitions

Tenant A Tenant B

VM VM VM VM VM VM

WeightA WeightB

PP RS FQ WA WA2 WB2

RR

Collect per-partition tenant demand

Controller

slide-28
SLIDE 28

Pisces: Place Partitions By Fairness Constraints

16

Tenant A Tenant B

VM VM VM VM VM VM

WeightA WeightB

PP

Results in feasible partition placement

RS FQ WA WA2 WB2

RR Controller

slide-29
SLIDE 29

Pisces: Place Partitions By Fairness Constraints

16

Tenant A Tenant B

VM VM VM VM VM VM

WeightA WeightB

PP

Results in feasible partition placement

RS FQ WA WA2 WB2

RR Controller

slide-30
SLIDE 30

Controller

Strawman: Allocate Local Weights Evenly

17

WA1 = WB1 WA2 = WB2

Tenant A Tenant B

VM VM VM VM VM VM

WeightA WeightB

PP WA WA2 WB2

RR

RS FQ

slide-31
SLIDE 31

Controller

Strawman: Allocate Local Weights Evenly

17

WA1 = WB1 WA2 = WB2

Tenant A Tenant B

VM VM VM VM VM VM

WeightA WeightB

PP WA WA2 WB2

RR

RS FQ

slide-32
SLIDE 32

Controller

Strawman: Allocate Local Weights Evenly

17

WA1 = WB1 WA2 = WB2

Tenant A Tenant B

VM VM VM VM VM VM

WeightA WeightB

PP WA WA2 WB2

RR

RS FQ

Overloaded

slide-33
SLIDE 33

Pisces: Allocate Local Weights By Tenant Demand

18

Tenant A Tenant B

VM VM VM VM VM VM

WeightA WeightB

PP WA WA2 WB2

Controller

WA1 = WB1 WA2 = WB2

RR

RS FQ

slide-34
SLIDE 34

Pisces: Allocate Local Weights By Tenant Demand

18

max mismatch

Tenant A Tenant B

VM VM VM VM VM VM

WeightA WeightB

Compute per-tenant +/- mismatch

PP WA WA2 WB2

Controller

WA1 = WB1 WA2 = WB2

RR

RS FQ

slide-35
SLIDE 35

Pisces: Allocate Local Weights By Tenant Demand

18

A←B WA1 > WB1

Tenant A Tenant B

VM VM VM VM VM VM

WeightA WeightB

Compute per-tenant +/- mismatch

PP WA WA2 WB2

Controller

WA2 = WB2

RR

RS FQ

slide-36
SLIDE 36

Pisces: Allocate Local Weights By Tenant Demand

18

A←B A→B WA1 > WB1 WA2 < WB2

Tenant A Tenant B

VM VM VM VM VM VM

WeightA WeightB

Compute per-tenant +/- mismatch

PP WA WA2 WB2

Controller

Reciprocal weight swap

RR

RS FQ

slide-37
SLIDE 37

Strawman: Select Replicas Evenly

19

50% 50%

RS PP WA WA2 WB2

Controller Tenant A Tenant B

VM VM VM VM VM VM

WeightA WeightB

GET 1101100

RR

WA1 > WB1 WA2 < WB2

FQ

slide-38
SLIDE 38

Strawman: Select Replicas Evenly

19

50% 50%

RS PP WA WA2 WB2

Controller Tenant A Tenant B

VM VM VM VM VM VM

WeightA WeightB

GET 1101100

RR

WA1 > WB1 WA2 < WB2

FQ

slide-39
SLIDE 39

Tenant A

Pisces: Select Replicas By Local Weight

20

Tenant B

VM VM VM

WeightB

Controller 50% 50%

RS PP WA WA2 WB2

VM VM VM

WeightA

GET 1101100

WA1 > WB1 WA2 < WB2

FQ

RR

slide-40
SLIDE 40

Tenant A

Pisces: Select Replicas By Local Weight

20

detect weight mismatch by request latency

Tenant B

VM VM VM

WeightB

Controller 50% 50%

RS PP WA WA2 WB2

VM VM VM

WeightA

GET 1101100

WA1 > WB1 WA2 < WB2

FQ

RR

slide-41
SLIDE 41

Tenant A

Pisces: Select Replicas By Local Weight

20

60% 40%

detect weight mismatch by request latency

Tenant B

VM VM VM

WeightB

Controller

RS PP WA WA2 WB2

VM VM VM

WeightA

GET 1101100

WA1 > WB1 WA2 < WB2

FQ

RR

slide-42
SLIDE 42

Tenant A

Pisces: Select Replicas By Local Weight

20

60% 40%

detect weight mismatch by request latency

Tenant B

VM VM VM

WeightB

Controller

RS PP WA WA2 WB2

VM VM VM

WeightA

GET 1101100

WA1 > WB1 WA2 < WB2

FQ

RR

slide-43
SLIDE 43

Strawman: Queue Tenants By Single Resource

21

Tenant A Tenant B

VM VM VM VM VM VM

Controller

RS PP WA WA2 WB2 FQ

WA2 < WB2 WA1 > WB1

RR

GET 1101100 GET 0100111

slide-44
SLIDE 44

Strawman: Queue Tenants By Single Resource

21

Tenant A Tenant B

VM VM VM VM VM VM

Controller

RS PP WA WA2 WB2 FQ

WA2 < WB2 WA1 > WB1

RR

slide-45
SLIDE 45

Strawman: Queue Tenants By Single Resource

Bandwidth limited Request Limited

21

  • ut req out req

Tenant A Tenant B

VM VM VM VM VM VM

Controller

RS PP WA WA2 WB2 FQ

WA2 < WB2

RR

slide-46
SLIDE 46

Strawman: Queue Tenants By Single Resource

Bandwidth limited Request Limited bottleneck resource (out bytes) fair share

21

  • ut req out req

Tenant A Tenant B

VM VM VM VM VM VM

Controller

RS PP WA WA2 WB2 FQ

WA2 < WB2

RR

slide-47
SLIDE 47

Pisces: Queue Tenants By Dominant Resource

Bandwidth limited Request Limited

22

  • ut req out req

Tenant A Tenant B

VM VM VM VM VM VM

Track per-tenant resource vector

Controller

RS PP WA WA2 WB2 FQ

WA2 < WB2

RR

slide-48
SLIDE 48

Pisces: Queue Tenants By Dominant Resource

Bandwidth limited Request Limited

22

  • ut req out req

Tenant A Tenant B

VM VM VM VM VM VM

Track per-tenant resource vector dominant resource fair share

Controller

RS PP WA WA2 WB2 FQ

WA2 < WB2

RR

slide-49
SLIDE 49

Pisces: Queue Tenants By Dominant Resource

Bandwidth limited Request Limited

22

  • ut req out req

Tenant A Tenant B

VM VM VM VM VM VM

Track per-tenant resource vector dominant resource fair share

Controller

RS PP WA WA2 WB2 FQ

WA2 < WB2

RR

slide-50
SLIDE 50

Pisces Mechanisms Solve For Global Fairness

23

Timescale System Visibility

RS

d

PP WA WA2 WB2 FQ

slide-51
SLIDE 51

Pisces Mechanisms Solve For Global Fairness

23

minutes Timescale System Visibility global

RS

Controller

d

PP WA WA2 WB2 FQ

slide-52
SLIDE 52

Pisces Mechanisms Solve For Global Fairness

23

minutes seconds Timescale System Visibility global

RS

Controller

d

PP WA WA2 WB2 FQ

slide-53
SLIDE 53

Pisces Mechanisms Solve For Global Fairness

23

minutes seconds microseconds Timescale System Visibility local global

RS

RR RR

...

SS SS

...

Controller

d

PP WA WA2 WB2 FQ

slide-54
SLIDE 54

Pisces Mechanisms Solve For Global Fairness

23

minutes seconds microseconds Timescale System Visibility local global

RS

RR RR

...

SS SS

...

Controller

d

Replica Selection Policies Weight Allocations

PP WA WA2 WB2 FQ

slide-55
SLIDE 55

Pisces Mechanisms Solve For Global Fairness

23

minutes seconds microseconds Timescale System Visibility local global

RS

RR RR

...

SS SS

...

Controller

d

Replica Selection Policies Weight Allocations

PP WA WA2 WB2 FQ

slide-56
SLIDE 56

Pisces Mechanisms Solve For Global Fairness

23

minutes seconds microseconds Timescale System Visibility local global

RS

RR RR

...

SS SS

...

Controller

d

Replica Selection Policies Weight Allocations

PP WA WA2 WB2 FQ

slide-57
SLIDE 57

Pisces Mechanisms Solve For Global Fairness

23

minutes seconds microseconds Timescale System Visibility local global

RS

RR RR

...

SS SS

...

Controller

d

Replica Selection Policies Weight Allocations

fairness and capacity constraints

PP WA WA2 WB2 FQ

slide-58
SLIDE 58

Pisces Mechanisms Solve For Global Fairness

23

minutes seconds microseconds Timescale System Visibility local global

RS

RR RR

...

SS SS

...

Controller

d

Replica Selection Policies Weight Allocations

fairness and capacity constraints

PP WA WA2 WB2 FQ

slide-59
SLIDE 59

Pisces Mechanisms Solve For Global Fairness

23

minutes seconds microseconds Timescale System Visibility local global

RS

RR RR

...

SS SS

...

Controller

d

Replica Selection Policies Weight Allocations

fairness and capacity constraints

PP WA WA2 WB2 FQ

slide-60
SLIDE 60

Pisces Mechanisms Solve For Global Fairness

23

minutes seconds microseconds Timescale System Visibility local global

RS

RR RR

...

SS SS

...

Controller

d

Replica Selection Policies Weight Allocations

fairness and capacity constraints

PP WA WA2 WB2 FQ

slide-61
SLIDE 61

Pisces Mechanisms Solve For Global Fairness

23

minutes seconds microseconds Timescale System Visibility local global

RS

RR RR

...

SS SS

...

Controller

d

Replica Selection Policies Weight Allocations

fairness and capacity constraints

PP WA WA2 WB2 FQ

slide-62
SLIDE 62

Pisces Mechanisms Solve For Global Fairness

23

minutes seconds microseconds Timescale System Visibility local global

RS

RR RR

...

SS SS

...

Controller

d

Replica Selection Policies Weight Allocations

fairness and capacity constraints

PP WA WA2 WB2 FQ

slide-63
SLIDE 63

Pisces Mechanisms Solve For Global Fairness

23

minutes seconds microseconds Timescale System Visibility local global

RS

RR RR

...

SS SS

...

Controller

d

Replica Selection Policies Weight Allocations

fairness and capacity constraints

PP WA WA2 WB2 FQ

slide-64
SLIDE 64

Pisces Mechanisms Solve For Global Fairness

23

minutes seconds microseconds Timescale System Visibility local global

RS

RR RR

...

SS SS

...

Controller

d

Maximum bottleneck flow weight exchange Replica Selection Policies Weight Allocations

fairness and capacity constraints

PP WA WA2 WB2 FQ

slide-65
SLIDE 65

Pisces Mechanisms Solve For Global Fairness

23

minutes seconds microseconds Timescale System Visibility local global

RS

RR RR

...

SS SS

...

Controller

d

Maximum bottleneck flow weight exchange FAST

  • TCP based

replica selection Replica Selection Policies Weight Allocations

fairness and capacity constraints

PP WA WA2 WB2 FQ

slide-66
SLIDE 66

Pisces Mechanisms Solve For Global Fairness

23

minutes seconds microseconds Timescale System Visibility local global

RS

RR RR

...

SS SS

...

Controller

d

Maximum bottleneck flow weight exchange FAST

  • TCP based

replica selection DRR token-based DRFQ scheduler Replica Selection Policies Weight Allocations

fairness and capacity constraints

PP WA WA2 WB2 FQ

slide-67
SLIDE 67

Evaluation

24

slide-68
SLIDE 68

Evaluation

24

  • Does Pisces achieve (even) system-wide fairness?
slide-69
SLIDE 69

Evaluation

24

  • Does Pisces achieve (even) system-wide fairness?
  • Is each Pisces mechanism necessary for fairness?
slide-70
SLIDE 70

Evaluation

24

  • Does Pisces achieve (even) system-wide fairness?
  • Is each Pisces mechanism necessary for fairness?
  • What is the overhead of using Pisces?
slide-71
SLIDE 71

Evaluation

24

  • Does Pisces achieve (even) system-wide fairness?
  • Is each Pisces mechanism necessary for fairness?
  • What is the overhead of using Pisces?
  • Does Pisces handle mixed workloads?
slide-72
SLIDE 72

Evaluation

24

  • Does Pisces achieve (even) system-wide fairness?
  • Is each Pisces mechanism necessary for fairness?
  • What is the overhead of using Pisces?
  • Does Pisces handle mixed workloads?
  • Does Pisces provide weighted system-wide fairness?
slide-73
SLIDE 73

Evaluation

24

  • Does Pisces achieve (even) system-wide fairness?
  • Is each Pisces mechanism necessary for fairness?
  • What is the overhead of using Pisces?
  • Does Pisces handle mixed workloads?
  • Does Pisces provide weighted system-wide fairness?
  • Does Pisces provide local dominant resource fairness?
slide-74
SLIDE 74

Evaluation

24

  • Does Pisces achieve (even) system-wide fairness?
  • Is each Pisces mechanism necessary for fairness?
  • What is the overhead of using Pisces?
  • Does Pisces handle mixed workloads?
  • Does Pisces provide weighted system-wide fairness?
  • Does Pisces provide local dominant resource fairness?
  • Does Pisces handle dynamic demand?
slide-75
SLIDE 75

Evaluation

24

  • Does Pisces achieve (even) system-wide fairness?
  • Is each Pisces mechanism necessary for fairness?
  • What is the overhead of using Pisces?
  • Does Pisces handle mixed workloads?
  • Does Pisces provide weighted system-wide fairness?
  • Does Pisces provide local dominant resource fairness?
  • Does Pisces handle dynamic demand?
  • Does Pisces adapt to changes in object popularity?
slide-76
SLIDE 76

Evaluation

25

  • Does Pisces achieve (even) system-wide fairness?
  • Is each Pisces mechanism necessary for fairness?
  • What is the overhead of using Pisces?
  • Does Pisces handle mixed workloads?
  • Does Pisces provide weighted system-wide fairness?
  • Does Pisces provide local dominant resource fairness?
  • Does Pisces handle dynamic demand?
  • Does Pisces adapt to changes in object popularity?
slide-77
SLIDE 77

Pisces Achieves System-wide Per-tenant Fairness

20 40 60 80 100 120 140 160 180 10 20 30 40 50 60 70 80 GET Requests (kreq/s) Time (s)

Unmodified Membase Ideal fair share: 110 kreq/s (1kB requests)

0.57 MMR

Min-Max Ratio: min rate/max rate (0,1] 8 Tenants - 8 Client - 8 Storage Nodes Zipfian object popularity distribution

slide-78
SLIDE 78

Pisces Achieves System-wide Per-tenant Fairness

20 40 60 80 100 120 140 160 180 10 20 30 40 50 60 70 80 GET Requests (kreq/s) Time (s) 20 40 60 80 100 120 140 160 180 10 20 30 40 50 60 70 80 GET Requests (kreq/s) Time (s)

Unmodified Membase Ideal fair share: 110 kreq/s (1kB requests) Pisces

0.57 MMR 0.98 MMR

Min-Max Ratio: min rate/max rate (0,1] 8 Tenants - 8 Client - 8 Storage Nodes Zipfian object popularity distribution

slide-79
SLIDE 79

Each Pisces Mechanism Contributes to System- wide Fairness and Isolation

27

Unmodified Membase

20 40 60 80 100 120 140 160 180 10 20 30 40 50 60 70 80 GET Requests (kreq/s) Time (s)

0.57 MMR

slide-80
SLIDE 80

Each Pisces Mechanism Contributes to System- wide Fairness and Isolation

27

Unmodified Membase

0.36 MMR

20 40 60 80 100 120 140 160 180 10 20 30 40 50 60 70 80 GET Requests (kreq/s) Time (s)

0.57 MMR

20 40 60 80 100 120 140 160 180 10 20 30 40 50 60 70 80 GET Requests (kreq/s) Time (s)

2x vs 1x demand

slide-81
SLIDE 81

Each Pisces Mechanism Contributes to System- wide Fairness and Isolation

27

Unmodified Membase

0.59 MMR 0.36 MMR 0.58 MMR

20 40 60 80 100 120 140 160 180 10 20 30 40 50 60 70 80 90

20 40 60 80 100 120 140 160 180 10 20 30 40 50 60 70 80 90

20 40 60 80 100 120 140 160 180 10 20 30 40 50 60 70 80 GET Requests (kreq/s) Time (s)

0.57 MMR FQ

20 40 60 80 100 120 140 160 180 10 20 30 40 50 60 70 80 GET Requests (kreq/s) Time (s)

2x vs 1x demand

slide-82
SLIDE 82

Each Pisces Mechanism Contributes to System- wide Fairness and Isolation

27

Unmodified Membase

0.59 MMR 0.36 MMR 0.58 MMR 0.74 MMR

20 40 60 80 100 120 140 160 180 10 20 30 40 50 60 70 80 90 20 40 60 80 100 120 140 160 180 10 20 30 40 50 60 70 80 90

PP FQ

20 40 60 80 100 120 140 160 180 10 20 30 40 50 60 70 80 90 20 40 60 80 100 120 140 160 180 10 20 30 40 50 60 70 80 90

20 40 60 80 100 120 140 160 180 10 20 30 40 50 60 70 80 GET Requests (kreq/s) Time (s)

0.57 MMR FQ

20 40 60 80 100 120 140 160 180 10 20 30 40 50 60 70 80 GET Requests (kreq/s) Time (s)

2x vs 1x demand

0.64 MMR

slide-83
SLIDE 83

Each Pisces Mechanism Contributes to System- wide Fairness and Isolation

27

Unmodified Membase

0.59 MMR 0.93 MMR 0.36 MMR 0.58 MMR 0.74 MMR

20 40 60 80 100 120 140 160 180 10 20 30 40 50 60 70 80 90 20 40 60 80 100 120 140 160 180 10 20 30 40 50 60 70 80 90

WA PP FQ

20 40 60 80 100 120 140 160 180 10 20 30 40 50 60 70 80 90 20 40 60 80 100 120 140 160 180 10 20 30 40 50 60 70 80 90

0.96 MMR

20 40 60 80 100 120 140 160 180 10 20 30 40 50 60 70 80 GET Requests (kreq/s) Time (s)

0.57 MMR FQ

20 40 60 80 100 120 140 160 180 10 20 30 40 50 60 70 80 GET Requests (kreq/s) Time (s)

2x vs 1x demand

0.64 MMR

slide-84
SLIDE 84

Each Pisces Mechanism Contributes to System- wide Fairness and Isolation

27

Unmodified Membase

0.59 MMR 0.93 MMR 0.36 MMR 0.58 MMR 0.74 MMR

20 40 60 80 100 120 140 160 180 10 20 30 40 50 60 70 80 90 20 40 60 80 100 120 140 160 180 10 20 30 40 50 60 70 80 90 20 40 60 80 100 120 140 160 180 10 20 30 40 50 60 70 80 90

RS WA PP FQ PP FQ 0.90 MMR

20 40 60 80 100 120 140 160 180 10 20 30 40 50 60 70 80 90 20 40 60 80 100 120 140 160 180 10 20 30 40 50 60 70 80 90 20 40 60 80 100 120 140 160 180 10 20 30 40 50 60 70 80 90

0.96 MMR 0.89 MMR

20 40 60 80 100 120 140 160 180 10 20 30 40 50 60 70 80 GET Requests (kreq/s) Time (s)

0.57 MMR FQ

20 40 60 80 100 120 140 160 180 10 20 30 40 50 60 70 80 GET Requests (kreq/s) Time (s)

2x vs 1x demand

0.64 MMR

slide-85
SLIDE 85

Each Pisces Mechanism Contributes to System- wide Fairness and Isolation

27

Unmodified Membase

0.59 MMR 0.93 MMR 0.98 MMR 0.36 MMR 0.58 MMR 0.74 MMR

20 40 60 80 100 120 140 160 180 10 20 30 40 50 60 70 80 90 20 40 60 80 100 120 140 160 180 10 20 30 40 50 60 70 80 90 20 40 60 80 100 120 140 160 180 10 20 30 40 50 60 70 80 90

RS WA PP FQ WA PP FQ 0.90 MMR

20 40 60 80 100 120 140 160 180 10 20 30 40 50 60 70 80 90 20 40 60 80 100 120 140 160 180 10 20 30 40 50 60 70 80 90 20 40 60 80 100 120 140 160 180 10 20 30 40 50 60 70 80 90

0.96 MMR 0.97 MMR 0.89 MMR

20 40 60 80 100 120 140 160 180 10 20 30 40 50 60 70 80 GET Requests (kreq/s) Time (s)

0.57 MMR FQ

20 40 60 80 100 120 140 160 180 10 20 30 40 50 60 70 80 GET Requests (kreq/s) Time (s)

2x vs 1x demand

0.64 MMR

slide-86
SLIDE 86

Pisces Imposes Low-overhead

28

875 1750 2625 3500

1kB Requests 10B Requests

Aggregate System Throughput

GET Requests (kreq/s) Unmodified Membase Pisces < 5% > 19%

slide-87
SLIDE 87

Pisces Achieves System-wide Weighted Fairness

29

4 heavy hitters 20 moderate demand 40 low demand

slide-88
SLIDE 88

Pisces Achieves System-wide Weighted Fairness

29

20 40 60 80 100 120 140 160 25 30 35 40 45 50 55 60 100x weight (4) 10x weight (20) 1x weight (40)

GET Requests (kreq/s) Time (s)

4 heavy hitters 20 moderate demand 40 low demand

slide-89
SLIDE 89

Pisces Achieves System-wide Weighted Fairness

29

20 40 60 80 100 120 140 160 25 30 35 40 45 50 55 60 100x weight (4) 10x weight (20) 1x weight (40)

GET Requests (kreq/s) Time (s) 0.98 MMR

4 heavy hitters 20 moderate demand 40 low demand

0.89 MMR 0.91 MMR

slide-90
SLIDE 90

Pisces Achieves System-wide Weighted Fairness

29

20 40 60 80 100 120 140 160 25 30 35 40 45 50 55 60 100x weight (4) 10x weight (20) 1x weight (40)

GET Requests (kreq/s) Time (s) 0.98 MMR

4 heavy hitters 20 moderate demand 40 low demand

0.89 MMR 0.91 MMR 0.91 MMR

slide-91
SLIDE 91

Pisces Achieves System-wide Weighted Fairness

29

20 40 60 80 100 120 140 160 25 30 35 40 45 50 55 60 100x weight (4) 10x weight (20) 1x weight (40)

GET Requests (kreq/s) Time (s) 0.98 MMR

4 heavy hitters 20 moderate demand 40 low demand

0.56 MMR 0.89 MMR 0.91 MMR 0.91 MMR

slide-92
SLIDE 92

Pisces Achieves Dominant Resource Fairness

30

1kB workload bandwidth limited 10B workload request limited

slide-93
SLIDE 93

100 200 300 400 500 600 700 800 20 25 30 35 40 45 50 55 60 1kB bandwidth limited 10B request limited

Pisces Achieves Dominant Resource Fairness

30

Time (s)

Bandwidth (Mb/s)

1kB workload bandwidth limited 10B workload request limited

slide-94
SLIDE 94

100 200 300 400 500 600 700 800 20 25 30 35 40 45 50 55 60 1kB bandwidth limited 10B request limited 50 100 150 200 250 300 20 25 30 35 40 45 50 55 60

Pisces Achieves Dominant Resource Fairness

30

Time (s)

Bandwidth (Mb/s) GET Requests (kreq/s)

Time (s)

1kB workload bandwidth limited 10B workload request limited

slide-95
SLIDE 95

100 200 300 400 500 600 700 800 20 25 30 35 40 45 50 55 60 1kB bandwidth limited 10B request limited 50 100 150 200 250 300 20 25 30 35 40 45 50 55 60

Pisces Achieves Dominant Resource Fairness

30

Time (s)

Bandwidth (Mb/s) GET Requests (kreq/s)

76% of bandwidth 76% of request rate

Time (s)

1kB workload bandwidth limited 10B workload request limited

slide-96
SLIDE 96

100 200 300 400 500 600 700 800 20 25 30 35 40 45 50 55 60 1kB bandwidth limited 10B request limited 50 100 150 200 250 300 20 25 30 35 40 45 50 55 60

Pisces Achieves Dominant Resource Fairness

30

Time (s)

Bandwidth (Mb/s) GET Requests (kreq/s)

76% of bandwidth 76% of request rate

Time (s)

1kB workload bandwidth limited 10B workload request limited

24% of request rate

slide-97
SLIDE 97

Pisces Adapts to Dynamic Demand

31

Constant Bursty Diurnal (2x wt) Tenant Demand

slide-98
SLIDE 98

Pisces Adapts to Dynamic Demand

31

Constant Bursty Diurnal (2x wt)

50 100 150 200 10 20 30 40 50 60 70 80 90 GET Requests (kreq/s) Time (s)

Tenant Demand

slide-99
SLIDE 99

Pisces Adapts to Dynamic Demand

31

Constant Bursty Diurnal (2x wt)

~2x

50 100 150 200 10 20 30 40 50 60 70 80 90 GET Requests (kreq/s) Time (s)

Tenant Demand

slide-100
SLIDE 100

Pisces Adapts to Dynamic Demand

31

Constant Bursty Diurnal (2x wt)

~2x even

50 100 150 200 10 20 30 40 50 60 70 80 90 GET Requests (kreq/s) Time (s)

Tenant Demand

slide-101
SLIDE 101

Conclusion

  • Pisces Contributions
  • Per-tenant weighted max-min fair shares of system-wide

resources w/ high utilization

  • Arbitrary object distributions
  • Different resource bottlenecks
  • Novel decomposition into 4 complementary mechanisms

32

PP

Partition Placement

WA RS FQ

Weight Allocation Replica Selection Fair Queuing