Clarinet: WAN-Aware Optimization for Analyt ytics Queries
Raajay Viswanathan, Ganesh Ananthanarayanan, Aditya Akella
1
Clarinet: WAN-Aware Optimization for Analyt ytics Queries Raajay - - PowerPoint PPT Presentation
Clarinet: WAN-Aware Optimization for Analyt ytics Queries Raajay Viswanathan, Ganesh Ananthanarayanan, Aditya Akella 1 Overview Web apps hosted on multiple DCs Low latency access to end-user 2 Overview Web apps hosted on
1
2
2
2
2
2
3
3
Intra-data center Analytics Framework
SELECT * … FROM .. WHERE .. ;
3
Intra-data center Analytics Framework
SELECT * … FROM .. WHERE .. ;
50 100 150 200 250 300 350 400 450 500 1 11 21 31 41 51 61 71 81
Bandwidth (Mbps) Directional WAN links sorted by bandwidth Measured pairwise bandwidth between EC2 regions
3
Intra-data center Analytics Framework
SELECT * … FROM .. WHERE .. ;
4
4
Analytics framework
4
Analytics framework
4
Analytics framework
SELECT * … FROM .. WHERE .. ;
Multi-stage parallelizable jobs
4
Analytics framework
SELECT * … FROM .. WHERE .. ;
Multi-stage parallelizable jobs Geo-distributed
4
Analytics framework
SELECT * … FROM .. WHERE .. ;
Multi-stage parallelizable jobs Geo-distributed
Iridium [SIGCOMM 15] GeoDe [NSDI 15]
4
Analytics framework
SELECT * … FROM .. WHERE .. ;
Multi-stage parallelizable jobs Geo-distributed
4
Analytics framework
SELECT * … FROM .. WHERE .. ;
Multi-stage parallelizable jobs Geo-distributed
2.7x reduction in query runtime
T2 DC2 T3 DC3 T1 DC1
5
T1, T2, T3: Tables storing click logs
T2 DC2 T3 DC3 T1 DC1
80 Gbps 40 Gbps 100 Gbps
5
T1, T2, T3: Tables storing click logs
T2 DC2 T3 DC3 T1 DC1
80 Gbps 40 Gbps 100 Gbps
5
QUERY SELECT T1.user, T1.latency, T2.latency, T3.latency FROM T1, T2, T3 WHERE T1.user == T2.user AND T1.user == T3.user AND T1.device == T2.device == T3.device == “mobile”;
T1, T2, T3: Tables storing click logs
T2 DC2 T3 DC3 T1 DC1
80 Gbps 40 Gbps 100 Gbps
5
T2 T3
𝜏𝑁𝑝𝑐𝑗𝑚𝑓 𝜏𝑁𝑝𝑐𝑗𝑚𝑓
QUERY SELECT T1.user, T1.latency, T2.latency, T3.latency FROM T1, T2, T3 WHERE T1.user == T2.user AND T1.user == T3.user AND T1.device == T2.device == T3.device == “mobile”;
T1, T2, T3: Tables storing click logs
T2 DC2 T3 DC3 T1 DC1
80 Gbps 40 Gbps 100 Gbps
5
T2 T3
𝜏𝑁𝑝𝑐𝑗𝑚𝑓 𝜏𝑁𝑝𝑐𝑗𝑚𝑓
T1
𝜏𝑁𝑝𝑐𝑗𝑚𝑓
QUERY SELECT T1.user, T1.latency, T2.latency, T3.latency FROM T1, T2, T3 WHERE T1.user == T2.user AND T1.user == T3.user AND T1.device == T2.device == T3.device == “mobile”;
T1, T2, T3: Tables storing click logs
T2 DC2 T3 DC3 T1 DC1
80 Gbps 40 Gbps 100 Gbps
5
10 GB 200 GB 200 GB 200 GB
T2 T3
𝜏𝑁𝑝𝑐𝑗𝑚𝑓 𝜏𝑁𝑝𝑐𝑗𝑚𝑓
T1
𝜏𝑁𝑝𝑐𝑗𝑚𝑓
QUERY SELECT T1.user, T1.latency, T2.latency, T3.latency FROM T1, T2, T3 WHERE T1.user == T2.user AND T1.user == T3.user AND T1.device == T2.device == T3.device == “mobile”;
T1, T2, T3: Tables storing click logs
T2 DC2 T3 DC3 T1 DC1
80 Gbps 40 Gbps 100 Gbps
5
10 GB 200 GB 200 GB 200 GB
T2 T3
𝜏𝑁𝑝𝑐𝑗𝑚𝑓 𝜏𝑁𝑝𝑐𝑗𝑚𝑓
T1
𝜏𝑁𝑝𝑐𝑗𝑚𝑓
Plan running time: 41 s
QUERY SELECT T1.user, T1.latency, T2.latency, T3.latency FROM T1, T2, T3 WHERE T1.user == T2.user AND T1.user == T3.user AND T1.device == T2.device == T3.device == “mobile”;
T1, T2, T3: Tables storing click logs
T2 DC2 T3 DC3 T1 DC1
80 Gbps 40 Gbps 100 Gbps
5
10 GB 200 GB 200 GB 200 GB
T2 T3
𝜏𝑁𝑝𝑐𝑗𝑚𝑓 𝜏𝑁𝑝𝑐𝑗𝑚𝑓
T1
𝜏𝑁𝑝𝑐𝑗𝑚𝑓
Plan running time: 41 s
QUERY SELECT T1.user, T1.latency, T2.latency, T3.latency FROM T1, T2, T3 WHERE T1.user == T2.user AND T1.user == T3.user AND T1.device == T2.device == T3.device == “mobile”;
T1, T2, T3: Tables storing click logs
T2 DC2 T3 DC3 T1 DC1
80 Gbps 40 Gbps 100 Gbps
5
10 GB 200 GB 200 GB 200 GB
T2 T3
𝜏𝑁𝑝𝑐𝑗𝑚𝑓 𝜏𝑁𝑝𝑐𝑗𝑚𝑓
T1
𝜏𝑁𝑝𝑐𝑗𝑚𝑓
Plan running time: 41 s
QUERY SELECT T1.user, T1.latency, T2.latency, T3.latency FROM T1, T2, T3 WHERE T1.user == T2.user AND T1.user == T3.user AND T1.device == T2.device == T3.device == “mobile”;
T1, T2, T3: Tables storing click logs WAN-only bottleneck
T2 DC2 T3 DC3 T1 DC1
80 Gbps 40 Gbps 100 Gbps
5
10 GB 200 GB 200 GB 200 GB
T2 T3
𝜏𝑁𝑝𝑐𝑗𝑚𝑓 𝜏𝑁𝑝𝑐𝑗𝑚𝑓
T1
𝜏𝑁𝑝𝑐𝑗𝑚𝑓
Plan running time: 41 s
QUERY SELECT T1.user, T1.latency, T2.latency, T3.latency FROM T1, T2, T3 WHERE T1.user == T2.user AND T1.user == T3.user AND T1.device == T2.device == T3.device == “mobile”;
T1, T2, T3: Tables storing click logs
12 GB 200 GB 200 GB
T2 T1 T3
200 GB
𝜏𝑁𝑝𝑐𝑗𝑚𝑓 𝜏𝑁𝑝𝑐𝑗𝑚𝑓 𝜏𝑁𝑝𝑐𝑗𝑚𝑓
16 GB 200 GB 200 GB
T1 T3 T2
200 GB
𝜏𝑁𝑝𝑐𝑗𝑚𝑓 𝜏𝑁𝑝𝑐𝑗𝑚𝑓 𝜏𝑁𝑝𝑐𝑗𝑚𝑓
Plan running time: 20.96 s Plan running time: 17.6 s WAN-only bottleneck
T2 DC2 T3 DC3 T1 DC1
80 Gbps 40 Gbps 100 Gbps
5
10 GB 200 GB 200 GB 200 GB
T2 T3
𝜏𝑁𝑝𝑐𝑗𝑚𝑓 𝜏𝑁𝑝𝑐𝑗𝑚𝑓
T1
𝜏𝑁𝑝𝑐𝑗𝑚𝑓
Plan running time: 41 s
QUERY SELECT T1.user, T1.latency, T2.latency, T3.latency FROM T1, T2, T3 WHERE T1.user == T2.user AND T1.user == T3.user AND T1.device == T2.device == T3.device == “mobile”;
T1, T2, T3: Tables storing click logs
12 GB 200 GB 200 GB
T2 T1 T3
200 GB
𝜏𝑁𝑝𝑐𝑗𝑚𝑓 𝜏𝑁𝑝𝑐𝑗𝑚𝑓 𝜏𝑁𝑝𝑐𝑗𝑚𝑓
16 GB 200 GB 200 GB
T1 T3 T2
200 GB
𝜏𝑁𝑝𝑐𝑗𝑚𝑓 𝜏𝑁𝑝𝑐𝑗𝑚𝑓 𝜏𝑁𝑝𝑐𝑗𝑚𝑓
Plan running time: 20.96 s Plan running time: 17.6 s Chosen by network agnostic query
WAN-only bottleneck
T2 DC2 T3 DC3 T1 DC1
80 Gbps 40 Gbps 100 Gbps
5
10 GB 200 GB 200 GB 200 GB
T2 T3
𝜏𝑁𝑝𝑐𝑗𝑚𝑓 𝜏𝑁𝑝𝑐𝑗𝑚𝑓
T1
𝜏𝑁𝑝𝑐𝑗𝑚𝑓
Plan running time: 41 s
QUERY SELECT T1.user, T1.latency, T2.latency, T3.latency FROM T1, T2, T3 WHERE T1.user == T2.user AND T1.user == T3.user AND T1.device == T2.device == T3.device == “mobile”;
T1, T2, T3: Tables storing click logs
12 GB 200 GB 200 GB
T2 T1 T3
200 GB
𝜏𝑁𝑝𝑐𝑗𝑚𝑓 𝜏𝑁𝑝𝑐𝑗𝑚𝑓 𝜏𝑁𝑝𝑐𝑗𝑚𝑓
16 GB 200 GB 200 GB
T1 T3 T2
200 GB
𝜏𝑁𝑝𝑐𝑗𝑚𝑓 𝜏𝑁𝑝𝑐𝑗𝑚𝑓 𝜏𝑁𝑝𝑐𝑗𝑚𝑓
Plan running time: 20.96 s Plan running time: 17.6 s Chosen by network agnostic query
WAN-only bottleneck
T2 DC2 T3 DC3 T1 DC1
80 Gbps 40 Gbps 100 Gbps
5
10 GB 200 GB 200 GB 200 GB
T2 T3
𝜏𝑁𝑝𝑐𝑗𝑚𝑓 𝜏𝑁𝑝𝑐𝑗𝑚𝑓
T1
𝜏𝑁𝑝𝑐𝑗𝑚𝑓
Plan running time: 41 s
QUERY SELECT T1.user, T1.latency, T2.latency, T3.latency FROM T1, T2, T3 WHERE T1.user == T2.user AND T1.user == T3.user AND T1.device == T2.device == T3.device == “mobile”;
T1, T2, T3: Tables storing click logs
12 GB 200 GB 200 GB
T2 T1 T3
200 GB
𝜏𝑁𝑝𝑐𝑗𝑚𝑓 𝜏𝑁𝑝𝑐𝑗𝑚𝑓 𝜏𝑁𝑝𝑐𝑗𝑚𝑓
16 GB 200 GB 200 GB
T1 T3 T2
200 GB
𝜏𝑁𝑝𝑐𝑗𝑚𝑓 𝜏𝑁𝑝𝑐𝑗𝑚𝑓 𝜏𝑁𝑝𝑐𝑗𝑚𝑓
Plan running time: 20.96 s Plan running time: 17.6 s Chosen by network agnostic query
WAN-only bottleneck
6
7
80 Gbps 40 Gbps 100 Gbps
T2 DC2 T3 DC3 T1 DC1
7
80 Gbps 40 Gbps 100 Gbps
T2 DC2 T3 DC3 T1 DC1
200 GB 200 GB
T1 T2
𝜏𝐷 𝜏𝐷
7
80 Gbps 40 Gbps 100 Gbps
T2 DC2 T3 DC3 T1 DC1
200 GB 200 GB
T1 T2
𝜏𝐷 𝜏𝐷
T1 T2
MAP: SELECT MAP: SELECT REDUCE: JOIN
200 GB 200 GB
7
80 Gbps 40 Gbps 100 Gbps
T2 DC2 T3 DC3 T1 DC1
200 GB 200 GB
T1 T2
𝜏𝐷 𝜏𝐷 20 s
T1 T2
MAP: SELECT MAP: SELECT REDUCE: JOIN
200 GB 200 GB
Tasks placed in single DC
7
80 Gbps 40 Gbps 100 Gbps
T2 DC2 T3 DC3 T1 DC1
200 GB 200 GB
T1 T2
𝜏𝐷 𝜏𝐷 10 s
T1 T2
MAP: SELECT MAP: SELECT REDUCE: JOIN
200 GB 200 GB
Tasks are placed uniformly across DC1 and DC2
7
80 Gbps 40 Gbps 100 Gbps
T2 DC2 T3 DC3 T1 DC1
200 GB 200 GB
T1 T2
𝜏𝐷 𝜏𝐷
T1 T2
MAP: SELECT MAP: SELECT REDUCE: JOIN
200 GB 200 GB
Tasks are placed uniformly across DC1 and DC2
7
80 Gbps 40 Gbps 100 Gbps
T2 DC2 T3 DC3 T1 DC1
200 GB 200 GB
T1 T2
𝜏𝐷 𝜏𝐷
T1 T2
MAP: SELECT MAP: SELECT REDUCE: JOIN
200 GB 200 GB
Tasks are placed uniformly across DC1 and DC2
7
80 Gbps 40 Gbps 100 Gbps
T2 DC2 T3 DC3 T1 DC1
200 GB 200 GB
T1 T2
𝜏𝐷 𝜏𝐷
T1 T2
MAP: SELECT MAP: SELECT REDUCE: JOIN
200 GB 200 GB
Tasks are placed uniformly across DC1 and DC2
Used by high priority application
7
80 Gbps 40 Gbps 100 Gbps
T2 DC2 T3 DC3 T1 DC1
200 GB 200 GB
T1 T2
𝜏𝐷 𝜏𝐷
T1 T2
MAP: SELECT MAP: SELECT REDUCE: JOIN
200 GB 200 GB
Tasks are placed uniformly across DC1 and DC2
Used by high priority application
7
80 Gbps 40 Gbps 100 Gbps
T2 DC2 T3 DC3 T1 DC1
200 GB 200 GB
T1 T2
𝜏𝐷 𝜏𝐷
T1 T2
MAP: SELECT MAP: SELECT REDUCE: JOIN
200 GB 200 GB
Tasks are placed uniformly across DC1 and DC2
Used by high priority application
7
80 Gbps 40 Gbps 100 Gbps
T2 DC2 T3 DC3 T1 DC1
200 GB 200 GB
T1 T2
𝜏𝐷 𝜏𝐷
T1 T2
MAP: SELECT MAP: SELECT REDUCE: JOIN
200 GB 200 GB
Tasks are placed uniformly across DC1 and DC2
Used by high priority application
8
SELECT * FROM … WHERE.. ;
8
SELECT * FROM … WHERE.. ;
8
SELECT * FROM … WHERE.. ;
8
SELECT * FROM … WHERE.. ;
8
9
T1 T3 T2
SELECT SELECT SELECT JOIN JOIN
9
T1 T3 T2
SELECT SELECT SELECT JOIN JOIN
9
T1 T3 T2
SELECT SELECT SELECT JOIN JOIN
scheduling
9
T1 T3 T2
SELECT SELECT SELECT JOIN JOIN
10
11
80 Gbps 40 Gbps 100 Gbps
T2 DC2 T3 DC3 T1 DC1
11
80 Gbps 40 Gbps 100 Gbps
T2 DC2 T3 DC3 T1 DC1 QUERY 1 SELECT … device == “mobile” …; QUERY 2 SELECT … genre == “pc” …;
11
16 GB 200 GB 200 GB
T1 T3 T2
200 GB
𝜏𝑁𝑝𝑐𝑗𝑚𝑓 𝜏𝑁𝑝𝑐𝑗𝑚𝑓 𝜏𝐷
80 Gbps 40 Gbps 100 Gbps
T2 DC2 T3 DC3 T1 DC1 QUERY 1 SELECT … device == “mobile” …; QUERY 2 SELECT … genre == “pc” …;
16 GB 200 GB 200 GB
T1 T3 T2
200 GB
𝜏𝑄𝐷 𝜏𝑄𝐷 𝜏𝑆 Same query plan (Plan C) for Query 1 and Query 2
11
16 GB 200 GB 200 GB
T1 T3 T2
200 GB
𝜏𝑁𝑝𝑐𝑗𝑚𝑓 𝜏𝑁𝑝𝑐𝑗𝑚𝑓 𝜏𝐷
80 Gbps 40 Gbps 100 Gbps
T2 DC2 T3 DC3 T1 DC1 QUERY 1 SELECT … device == “mobile” …; QUERY 2 SELECT … genre == “pc” …;
16 GB 200 GB 200 GB
T1 T3 T2
200 GB
𝜏𝑄𝐷 𝜏𝑄𝐷 𝜏𝑆 Same query plan (Plan C) for Query 1 and Query 2 Contention increases query run time
11
80 Gbps 40 Gbps 100 Gbps
T2 DC2 T3 DC3 T1 DC1 QUERY 1 SELECT … device == “mobile” …; QUERY 2 SELECT … genre == “pc” …;
16 GB 200 GB 200 GB
T1 T3 T2
200 GB
𝜏𝑁𝑝𝑐𝑗𝑚𝑓 𝜏𝑁𝑝𝑐𝑗𝑚𝑓 𝜏𝐷
12 GB 200 GB 200 GB
T2 T1 T3
200 GB
𝜏𝑄𝐷 𝜏𝑄𝐷 𝜏𝐷
11
80 Gbps 40 Gbps 100 Gbps
T2 DC2 T3 DC3 T1 DC1 QUERY 1 SELECT … device == “mobile” …; QUERY 2 SELECT … genre == “pc” …;
16 GB 200 GB 200 GB
T1 T3 T2
200 GB
𝜏𝑁𝑝𝑐𝑗𝑚𝑓 𝜏𝑁𝑝𝑐𝑗𝑚𝑓 𝜏𝐷
12 GB 200 GB 200 GB
T2 T1 T3
200 GB
𝜏𝑄𝐷 𝜏𝑄𝐷 𝜏𝐷
No contention of network links
11
80 Gbps 40 Gbps 100 Gbps
T2 DC2 T3 DC3 T1 DC1 QUERY 1 SELECT … device == “mobile” …; QUERY 2 SELECT … genre == “pc” …;
16 GB 200 GB 200 GB
T1 T3 T2
200 GB
𝜏𝑁𝑝𝑐𝑗𝑚𝑓 𝜏𝑁𝑝𝑐𝑗𝑚𝑓 𝜏𝐷
12 GB 200 GB 200 GB
T2 T1 T3
200 GB
𝜏𝑄𝐷 𝜏𝑄𝐷 𝜏𝐷
No contention of network links
QUERY A QUERY B
QUERY C
12
QUERY A QUERY B
QUERY C
1. Pick shortest physical query plan in each iteration
12
QUERY A QUERY B
QUERY C
1. Pick shortest physical query plan in each iteration
10 12 18 5 8 20 30 Iter 1:
12
QUERY A QUERY B
QUERY C
1. Pick shortest physical query plan in each iteration
10 12 18 5 8 20 30 Iter 1:
12
QUERY A QUERY B
QUERY C
1. Pick shortest physical query plan in each iteration
10 12 18 5 8 20 30 Iter 1: t
12
B1
5
QUERY A
QUERY B
QO
QUERY C
1. Pick shortest physical query plan in each iteration
t
12
B1
5
QUERY A
QUERY B
QO
QUERY C
1. Pick shortest physical query plan in each iteration
15 17 18 25 30 Iter 2: t
12
B1
5
QUERY A
QUERY B
QO
QUERY C
1. Pick shortest physical query plan in each iteration
15 17 18 25 30 Iter 2: t
12
B1
5
QUERY A
QUERY B
QO
QUERY C
1. Pick shortest physical query plan in each iteration
15 17 18 25 30 Iter 2: A1 A2 t
12
B1
5 15 7
13
13
13
A1 A2 t B1
12 10
22
13
A1 A2 t B1
12 10
22 Dominant transfers execute sequentially
13
Extended idling A1 A2 t B1
12 10
22 Dominant transfers execute sequentially
13
t B1 A1 A2 12 2 Extended idling A1 A2 t B1
12 10
22 Dominant transfers execute sequentially
13
t B1 A1 A2 12 2 Extended idling A1 A2 t B1
12 10
22 Dominant transfers execute sequentially
14
Link 1 Link 2 Link n Offline schedule
14
Link 1 Link 2
Link n Offline schedule
14
Link 1 Link 2
Link n Offline schedule
14
Link 1 Link 2
Link n Offline schedule
15
QUERY 1 QUERY 2 QUERY 3
Existing Query Optimizers Batch of queries
15
QUERY 1 QUERY 2 QUERY 3
Existing Query Optimizers
plans Batch of queries
15
QUERY 1 QUERY 2 QUERY 3
Existing Query Optimizers
plans
Batch of queries
15
QUERY 1 QUERY 2 QUERY 3
Existing Query Optimizers
plans
Batch of queries Enforces Clarinet’s schedule
15
QUERY 1 QUERY 2 QUERY 3
Existing Query Optimizers
plans
Batch of queries Enforces Clarinet’s schedule
15
QUERY 1 QUERY 2 QUERY 3
Existing Query Optimizers
plans
Batch of queries Online query arrivals Enforces Clarinet’s schedule
16
16
16
16
16
16
16
17
17
17
0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 1 6 11 16 21 26 31 36 41 46 51 56
CDF
Link ID sorted by bandwidth
WAN bandwidth distribution Hive bytes distribution Clarinet bytes distribution
Data from a single batch 12 queries
17
0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 1 6 11 16 21 26 31 36 41 46 51 56
CDF
Link ID sorted by bandwidth
WAN bandwidth distribution Hive bytes distribution Clarinet bytes distribution
Data from a single batch 12 queries
17
0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 1 6 11 16 21 26 31 36 41 46 51 56
CDF
Link ID sorted by bandwidth
WAN bandwidth distribution Hive bytes distribution Clarinet bytes distribution
Data from a single batch 12 queries
18
18
18
18
18
19
Distributed Storage Layer Distributed Execution Layer Query Optimizer
19
Distributed Storage Layer Distributed Execution Layer Query Optimizer
19
Distributed Storage Layer Distributed Execution Layer Query Optimizer