Slides

advertisement
Storage: Isolation and Fairness
Lecture 24
Aditya Akella
Performance Isolation and Fairness in MultiTenant Cloud Storage, D. Shue, M. Freedman
and A. Shaikh, OSDI 2012.
Setting: Shared Storage in the Cloud
Y
Z
Y
F
Z
T
T
Shared
S3 Key-Value
EBS Storage
SQS
3
F
Predictable Performance is Hard
Z
Z
Z
Y
Y
Y
Y
T
T
F
F
F
F
F
DD
DD
DDStorage
DD
Shared Key-Value
Multiple co-located tenants ⇒ resource contention
4
Predictable Performance is Hard
Z
Z
Z
Y
Y
Y
Y
T
T
F
F
F
F
F
Fair queuing
DD
DD
DDStorage
DD
Shared Key-Value
@ big iron
Multiple co-located tenants ⇒ resource contention
5
Predictable Performance is Hard
Z
Z
Z
Y
Y
SS
Y
Y
SS
T
T
SS
F
F
F
F
F
SS
Multiple co-located tenants ⇒ resource contention
Distributed system ⇒ distributed resource allocation
6
popularity
Predictable Performance is Hard
data partition
Z keyspace Y keyspace T keyspace
F keyspace
Z
F
Z
Z
Y
Y
SS
Y
Y
SS
T
T
SS
F
F
F
F
SS
Multiple co-located tenants ⇒ resource contention
Distributed system ⇒ distributed resource allocation
7
Predictable Performance is Hard
GET 10B
(small reads)
GET 1kB
(large reads)
Z
Z
Z
Y
Y
SS
Y
SET 1kB
(large writes)
Y
SS
T
T
SS
SET 10B
(small writes)
F
F
F
F
F
SS
Multiple co-located tenants ⇒ resource contention
Distributed system ⇒ distributed resource allocation
Skewed object popularity ⇒ variable per-node demand
Disparate workloads ⇒ different bottleneck resources
8
Tenants Want System-wide Resource Guarantees
80 kreq/s
120 kreq/s
Zynga
Z
Z
Yelp
Z
Y
TP
Y
Y
160 kreq/s
40 kreq/s
Y
T
Foursquare
T
F
F
F
F
F
Shared Key-Value Storage
SS
SS
SS
SS
Multiple co-located tenants ⇒ resource contention
Distributed system ⇒ distributed resource allocation
Skewed object popularity ⇒ variable per-node demand
Disparate workloads ⇒ different bottleneck resources
9
Pisces Provides Weighted Fair-shares
wz = 20%
wy = 30%
Zynga
Z
Z
wt = 10%
Yelp
Z
Y
TP
Y
Y
Y
T
wf = 40%
Foursquare
T
F
F
F
F
F
Shared Key-Value Storage
SS
SS
SS
SS
Multiple co-located tenants ⇒ resource contention
Distributed system ⇒ distributed resource allocation
Skewed object popularity ⇒ variable per-node demand
Disparate workloads ⇒ different bottleneck resources
10
Pisces: Predictable Shared Cloud
Storage
• 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)
11
Predictable Multi-Tenant Key-Value
Storage
Tenant A
Tenant B
VM VM VM
VM VM VM
PP
GET 1101100
Controller
RR
RS
FQ
12
Predictable Multi-Tenant Key-Value
Storage
WeightA
WeightB
Tenant A
Tenant B
VM VM VM
VM VM VM
PP
GET 1101100
Controller
RR
WA WA2 WB2
RS
FQ
WA1 WB1
13
WA2 WB2
Strawman: Place Partitions Randomly
WeightA
WeightB
Tenant A
Tenant B
VM VM VM
VM VM VM
PP
Controller
RR
WA WA2 WB2
RS
FQ
14
Strawman: Place Partitions Randomly
WeightA
WeightB
Tenant A
Tenant B
VM VM VM
VM VM VM
PP
Controller
Overloaded
RR
WA WA2 WB2
RS
FQ
15
Pisces: Place Partitions By Fairness Constraints
WeightA
WeightB
Tenant A
Tenant B
VM VM VM
VM VM VM
PP
Collect per-partition
tenant demand
Controller
RR
WA WA2 WB2
RS
FQ
Bin-pack partitions
16
Pisces: Place Partitions By Fairness Constraints
WeightA
WeightB
Tenant A
Tenant B
VM VM VM
VM VM VM
PP
Controller
RR
WA WA2 WB2
RS
FQ
17
Results in feasible partition placement
Strawman: Allocate Local Weights Evenly
WeightA
WeightB
Tenant A
Tenant B
VM VM VM
VM VM VM
PP
Controller
Overloaded
RR
WA WA2 WB2
RS
FQ
WA1 = WB1
18
WA2 = WB2
Pisces: Allocate Local Weights By Tenant Demand
WeightA
WeightB
Tenant A
Tenant B
VM VM VM
VM VM VM
PP
Compute per-tenant
max
mismatch +/- mismatch
Controller
RR
WA WA2 WB2
RS
FQ
WA1W>A1W= B1
WB1
19
A←B
WA2W<A2W= B2
WB2
Reciprocal weight swap
A→B
Strawman: Select Replicas Evenly
WeightA
WeightB
Tenant A
Tenant B
VM VM VM
VM VM VM
PP
GET 1101100
50%
RR
Controller
50%
WA WA2 WB2
RS
FQ
WA1 > WB1
20
WA2 < WB2
Pisces: Select Replicas By Local Weight
WeightA
WeightB
Tenant A
Tenant B
VM VM VM
VM VM VM
PP
GET 1101100
detect weight
mismatch by
request latency
60%
50%
RR
Controller
50%
40%
WA WA2 WB2
RS
FQ
WA1 > WB1
21
WA2 < WB2
Strawman: Queue Tenants By Single
Resource
Tenant A
Tenant B
VM VM VM
VM VM VM
Bandwidth limited
Request Limited
Controller
bottleneck resource
(out bytes) fair share
RR
out req out req
22
WA WA2 WB2
RS
GET 0100111
GET 1101100
WA1 > WB1
PP
FQ
WA2 < WB2
Pisces: Queue Tenants By Dominant
Resource
Tenant A
Tenant B
VM VM VM
VM VM VM
Bandwidth limited
Request Limited
Controller
dominant resource
fair share
RR
PP
WA WA2 WB2
RS
FQ
Track per-tenant
resource vector
WA2 < WB2
out req out req
23
SS
SS
24
WA WA2 WB2
FAST-TCP
basedreplica
selection
RS
DRR tokenbasedDRFQ
scheduler
FQ
Weight Allocations
Controller
RR
PP
weight exchange
...
RR
local
...
System Visibility
global
Pisces Mechanisms Solve For Global
Fairness
Maximum bottleneck flow
fairness and capacity
constraints
Replica Selection
Policies
microseconds
seconds
Timescale
minutes
Issues
• RS < -- > consistency
– Turn off RS. Why does it not matter?
• What happens to previous picture?
• Translating SLAs to weights
– How are SLAs specified?
• Overly complex mechanisms: weight swap and FAST-based replica
selection?
• Why make it distributed?
– Paper argues configuration is not scalable, but requires server
configuration for FQ anyway
• What happens in a congested network?
• Assumes stable tenant workloads  reasonable?
• Is DynamoDB bad?
Pisces Summary
• Pisces Contributions
– Per-tenant weighted max-min fair shares of systemwide resources w/ high utilization
– Arbitrary object distributions
– Different resource bottlenecks
– Novel decomposition into 4 complementary
mechanisms
PP
26
Partition
Placement
WA
Weight
Allocation
RS
Replica
Selection
FQ
Fair
Queuing
Evaluation
Evaluation
• 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?
28
Evaluation
• 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?
29
Pisces Achieves System-wide Pertenant Fairness
Ideal fair share: 110 kreq/s (1kB requests)
Unmodified Membase
0.57 MMR
8 Tenants - 8 Client - 8 Storage Nodes
Zipfian object popularity distribution
Min-Max Ratio: min rate/max rate (0,1]
Pisces
0.98 MMR
Each Pisces Mechanism Contributes to
System-wide Fairness and Isolation
Unmodified Membase
0.57 MMR
FQ
FQ
PP
WA
FQ
PP
RS
WA
0.59 MMR
0.64 MMR 0.93 MMR
0.90 MMR 0.98 MMR
0.58 MMR
0.74 MMR 0.96 MMR
0.89 MMR 0.97 MMR
2x vs 1x demand
0.36 MMR
31
Pisces Imposes Low-overhead
> 19%
< 5%
32
Pisces Achieves System-wide Weighted
Fairness
0.98 MMR
0.89 MMR
4 heavy hitters
20 moderate demand
0.91 MMR
40 low demand
0.91 MMR
0.56 MMR
33
Pisces Achieves Dominant Resource
Fairness
Bandwidth (Mb/s)
76% of bandwidth
Time (s)
34
10B workload
request limited
GET Requests (kreq/s)
1kB workload
bandwidth limited
76% of request rate
24% of request rate
Time (s)
Pisces Adapts to Dynamic Demand
Tenant
Demand
Constant
Diurnal (2x wt)
Bursty
even
~2x
35
Download