Shanjiang Tang, Bu-Sung Lee, Bingsheng He, Haikun Liu School of Computer Engineering
Nanyang Technological University
Long-Term Resource Fairness
Towards
Economic
Fairness
on
Pay-As-You-Use is Pervasive
•
Charge users based on the amount of resources
used over time (e.g., Hourly).
•
Advantages
– Elasticity
– Flexibility
– Cost efficiency
•
Pay-as-you-use is becoming common and popular.
Twitter’s Cluster
Resource Utilization =
•
User resource demands are
heterogeneous.
– Users have different demands.
– A user’s demand is changing over time.
Static provisioning/partitioning causes
underutilization.
•
Resource utilization is a
critical
problem in such
pay-as-you-use environments.
– Providers waste resources
( waste investment and lose profit).
•
Resource Sharing
can improve resource utilization.
– Allow underloaded users to release resources to other users.
– Allow overloaded users to temporarily use more resources (from others).
Reduce the idle resources at runtime.
Resolve resource contention across users.
•
What about fairness
?
– If the fairness is not solved, resource sharing is unlikely to achieve in pay-as-you-use environments.
Pay-as-you-use Fairness:
Resource-as-you-pay
•
The total resources a user gained should be
proportional to her payment.
•
This is a Service-Level Agreement (SLA).
60 $ 40 $ A: B: 60% 40% Resource Service A B
Fair Policy in Existing Systems
•
State-of-the-art: Max-min fairness
– Select the user with the minimum allocation/share ratio every time.
– Consider the present requirement only (memoryless).
• Memoryless fairness has severe problems in pay-as-you-use environments, violating the following properties:
– Resource-as-you-pay fairness guarantee.
– Non-Trivial workload incentive and sharing incentive.
Problems with MemoryLess
Fairness
•
Resource-as-you-pay Fairness
Problem
– E.g., A, B equally pay for total resource of 100 units.
Time New Demand A B
t1 20 100 A B Accumulate Resource Usage: 20 80 20 80 Unsatisfied Demand A B 0 20 Current Allocation at t1:
Problems with MemoryLess
Fairness
•
Resource-as-you-pay Fairness
Problem
– E.g., A, B equally pay for total resource of 100 units.
Time New Demand A B
t1 20 100 t2 40 60 A B Accumulate Resource Usage: 40 60 60 140 A B Unsatisfied Demand 0 20 Current Allocation at t2:
Problems with MemoryLess
Fairness
•
Resource-as-you-pay Fairness
Problem
– E.g., A, B equally pay for total resource of 100 units.
Time New Demand A B
t1 20 100 t2 40 60 t3 80 50 A B Accumulated resource usage: 50 50 110 190 A B Unsatisfied Demand 30 20 Current Allocation at t3:
Problems with MemoryLess
Fairness
•
Resource-as-you-pay Fairness
Problem
– E.g., A, B equally pay for total resource of 100 units.
Time New Demand A B
t1 20 100 t2 40 60 t3 80 50 t4 60 50 A B Accumulated resource usage: 50 50 160 240 A B Unsatisfied Demand 40 20
Existing Fair Policy fails to satisfy Resource-as-you-pay fairness!!!
Current Allocation at t4:
MemoryLess Fairness Violates
Sharing Incentives
•
Non-trivial workload and sharing incentive
Problem
– Yielding resources to others have no benefits.
– Suppose A, B, and C equally pay for total resource of 100 units. A has 13 idle resource units. In that case, A can be selfish, either idle or running trivial workloads.
CPU 20 33 33 A: B: C: A’s idle resource 13
Cheating User Benefits on
MemoryLess Fairness
•
Truthfulness
Problem
– Suppose A, B, C equally pay for a cluster of 100 units, with true demand to be 33, 21 and 80, respectively.
– Case 1: all are honest.
– Case 2: User A cheats and claims the demand to be 40.
33 21 33 A: B: C: 6 6 A’s cheating gets benefits 33 21 33 A: B: C: 12 Case 1: A is honest Case 2: A is cheating
Our Work
•
Challenges:
can we find a fair sharing policy that
satisfies the following properties?
– Resource-as-you-pay fairness
– Non-trivial workload and sharing incentives
– Truthfulness
•
Our Solution:
Long-Term Resource Fairness
– Ensure resource fairness over a period of time.
Long-Term Resource Fairness
•
Basic Concept:
Loan agreement
(Lending
w/o
interests)
– When resources are not needed, users can lend the resources to others.
– When more resources are needed, others should give back.
Long-Term Resource Fairness
•
Satisfy
Pay-as-you-use Fairness
Time New Demand A B
t1 20 100 A B Accumulated resource usage: 20 80 20 80 Unsatisfied Demand A B 0 20 Current Allocation at t1: A B Lend Resources: 30 -30
Long-Term Resource Fairness
•
Satisfy
Pay-as-you-use Fairness
Time New Demand A B
t1 20 100 t2 40 60 A B Accumulated resource usage: 40 60 60 140 A B Unsatisfied Demand 0 20 Current Allocation at t2: A B Lend Resources: 40 -40
Long-Term Resource Fairness
•
Satisfy
Pay-as-you-use Fairness
Time New Demand A B
t1 20 100 t2 40 60 A B Accumulated resource usage: 40 60 60 140 A B Unsatisfied Demand 0 20 Current Allocation at t2: A B Lend Resources: 40 -40 t3 80 50
Long-Term Resource Fairness
•
Satisfy
Pay-as-you-use Fairness
Time New Demand A B
t1 20 100 t2 40 60 t3 80 50 A B Accumulated resource usage: 80 20 140 160 A B Unsatisfied Demand 0 50 Current Allocation at t3: A B Lend Resources: 10 -10
Long-Term Resource Fairness
•
Satisfy
Pay-as-you-use Fairness
Time New Demand A B
t1 20 100 t2 40 60 t3 80 50 A B Accumulated resource usage: 80 20 140 160 A B Unsatisfied Demand 0 50 Current Allocation at t3: A B Lend Resources: 10 -10 t4 60 50
Long-Term Resource Fairness
•
Satisfy
Pay-as-you-use Fairness
Time New Demand A B
t1 20 100 t2 40 60 t3 80 50 t4 60 50 A B Accumulated resource usage: 60 40 200 200 A B Unsatisfied Demand 0 60
Long-Term Resource Fairness satisfy Resource-as-you-pay fairness.
Current Allocation at t4: A B Lend Resources: 0 0
Other Properties of Long-Term
Resource Fairness
•
Satisfy
non-trivial workload and sharing incentives
– Running trivial workload can waste money.
– Not sharing idle resource can waste money.
•
Users cannot get benefits by
lying
(strategy proof).
LTYARN
•
Implement Long-Term Resource Fairness in YARN
– Extend memoryless min fairness to long-term max-min fairness.
– Add a few components into resource manager
•
Support
full
long-term and time window-based
requirements.
•
Currently support a single resource type (main
memory).
LTYARN Design
•
Quantum Updater (QU)
– Estimates task execution time.
– Updates the resource usage history periodically.
•
Resource Controller (RC)
– Manages and updates resource for each queue.
•
Resource Allocator (RA)
– Performs long-term resource allocation.
Evaluation
•
A Hadoop Cluster
– 10 nodes, each with two Intel X5675 CPUs (6 cores per CPU with 3.07 GHz), 24GB DDR3 memory, 56GB hard disks.
– YARN-2.2.0, configured with 24GB memory per node.
•
Macro-benchmarks
– Synthetic Facebook Workload
– Purdue Workload
– HIVE/TPC-H
– Spark
Metrics
•
Evaluation metrics
–
Fairness degree for each user (>1 for sharing
benefits; <1 for sharing loss)
–
Resource-as-you-pay fairness
–
Application performance
•
Benchmark scenario
–
The four macro benchmarks equally share the
cluster.
–
Each benchmark runs in a separate queue.
Sharing Benefit/Loss
•
LTYARN enables sharing benefits for all applications.
(b). LTYARN (a). YARN
Resource-as-you-pay Fairness
Results
Performance Results
• Sharing always achieves a better performance.
• Long-term fairness is comparable to memory-less fairness (max-min).