Typhoon: An SDN Enhanced Real-Time Big Data Streaming Framework
Junguk Cho, Hyunseok Chang, Sarit Mukherjee, T.V. Lakshman, and Jacobus Van der Merwe
1
Real-Time Big Data Streaming Framework Junguk Cho, Hyunseok Chang, - - PowerPoint PPT Presentation
Typhoon: An SDN Enhanced Real-Time Big Data Streaming Framework Junguk Cho, Hyunseok Chang, Sarit Mukherjee, T.V. Lakshman, and Jacobus Van der Merwe 1 Big Data Era Big data analysis is increasingly common Recommendation systems
1
○ Recommendation systems (e.g., Netflix, Amazon) ○ Targeted advertising (e.g., Google, Facebook) ○ Mobile network management (e.g., AT&T, Verizon)
○ Continuously process unlimited streams of data ○ High throughput and low latency using computation parallelism ○ Fault tolerance ○ A lot of open-source stream frameworks (e.g., Storm, Heron,
2
○ Scale-in/out, computation logic, and routing policy
3
○ Scale-in/out, computation logic, and routing policy ○ Solutions ■ Shutdown -> modification -> restart
4
○ Scale-in/out, computation logic, and routing policy ○ Solutions ■ Shutdown -> modification -> restart
■ Instant swapping
5
○ Scale-in/out, computation logic, and routing policy ○ Solutions ■ Shutdown -> modification -> restart
■ Instant swapping
○ No broadcast concept ○ Multiple same computations in application-layer
6
○ Scale-in/out, computation logic, and routing policy ○ Solutions ■ Shutdown -> modification -> restart
■ Instant swapping
○ No broadcast concept ○ Multiple same computations in application-layer
7
○ Scale-in/out, computation logic, and routing policy ○ Solutions ■ Shutdown -> modification -> restart
■ Instant swapping
○ No broadcast concept ○ Multiple same computations in application-layer
○ Limited to application monitoring
8
○ Scale-in/out, computation logic, routing policy
○ Broadcast concept at network layer
○ SDN control plane applications
○ Partially offload application data routing layer into network layer ○ Manage both layers from an SDN controller
9
○ Centralized views and control ○ Programmability
○ More efficient packet-level replications at the network layer
○ OpenFlow
○ Extensible via control plane applications
10
11
Round-Robin Key-based
12
Logical Topology Aggreg ator (1) Input (1) Split (2) Count (2) Aggreg ator Input Split Count Split Count Physical Topology
Stream frameworks App Developer
New Application Or Reconfiguration Request 13
Stream frameworks App Developer
New Application Or Reconfiguration Request
14 Logical Topology Aggreg ator (1) Input (1) Split (2) Count (2) Aggreg ator Input Split Count Split Count Physical Topology
15
Streaming Manager Central Coordinator Worker Agent Worker ….. Topology Builder & Scheduler Worker Compute Cluster
SDN Controller Streaming Manager Central Coordinator Worker Agent Worker ….. Topology Builder & Scheduler Worker Dynamic Topology Manager Software SDN Switch SDN Control Plane Application Compute Cluster
16
17
18
Worker Agent Worker ….. Worker Software SDN Switch
19
Worker Agent Worker ….. Worker Software SDN Switch Worker Agent Data Routing Data Computation Worker I/O Layer Software SDN Switch Data Routing Data Computation Worker I/O Layer
20
Worker Agent Worker ….. Worker Software SDN Switch Worker Agent Data Routing Data Computation Worker I/O Layer Software SDN Switch Port Port Data Routing Data Computation Worker I/O Layer
21
Worker Agent Worker ….. Worker Software SDN Switch Worker Agent Data Routing Data Computation Worker I/O Layer Software SDN Switch Port Port Data Routing Data Computation Worker I/O Layer
22
Source worker ID Destination worker ID StreamID Tuple Length Output from Data Computation
23
Metadata
Source worker ID Destination worker ID StreamID Tuple Length Output from Data Computation
24
Metadata
Tuple Length Destination worker ID StreamID Output from Data Computation Source worker ID Ether type Ethernet header Payload (Data tuple)
25
Metadata
In Typhoon
Source worker ID Destination worker ID StreamID Tuple Length Output from Data Computation
Metadata
Data Routing Data Computation Port Data Routing Data Computation I/O Layer Port Software SDN Switch Source worker Destination worker
Match in_port=[src worker port], dl_dst=[dest worker ID], dl_src=[src worker ID] Action
26
Destination worker ID Set of data tuples Source worker ID Ethernet header Payload Ether type I/O Layer
○
27
○ Policy-specific routing states ○ Policy-independent routing states ○ Routing computations Data Routing Data Computation
I/O Layer
Routing Type States Round-robin Counter Key-based Index for hash One-to-many
Index = (counter++) % numDestWorkers; dstWorker = nextWorkers[index];
28 Destination Worker IDs Destination 1 ... Destination N
Policy-specific routing states Policy-independent routing states Routing computations
○
■
Scale-in/out
■
Computation logic update
○ Policy-specific routing states ■
Change routing type and states
Data Routing Data Computation
I/O Layer
29 Routing Type States Round-robin Counter Key-based Index for hash One-to-many Destination Worker IDs Destination 1 ... Destination N
Policy-specific routing states Policy-independent routing states
○
■
Updating per-worker routing states for reconfigurations
30
○
■
Updating per-worker routing states for reconfigurations
■
Framework-level coordination to avoid packet loss during reconfiguration
31
○
■
Updating per-worker routing states for reconfigurations
■
Framework-level coordination to avoid packet loss during reconfiguration
○
○
○
32
○ Manage application-layer routing states with centralized
■ Policy-independent routing states (e.g., forwarding tables) ■ Policy-specific routing states (e.g., index for key-based routing)
33
○ PacketOut in OpenFlow ○ Each worker is coupled to a port in a software SDN switch.
34
Worker Agent Data Routing Data Computation Worker I/O Layer Software SDN Switch SDN Controller SDN Control Plane Application Port
○ PacketOut in OpenFlow ○ Each worker is coupled to a port in a software SDN switch.
○ Control tuple: Re-use data tuple format
35
Control tuple type Tuple Length Routing States (e.g., New destination IDs) Metadata Worker Agent Data Routing Data Computation Worker I/O Layer Software SDN Switch SDN Controller SDN Control Plane Application Port
Control Tuple
○ Well-defined order to update each component under framework
36
37
38
○ Offload routing managements to an SDN controller ■ Leverage control tuples carried by OpenFlow PacketOut ○ Offload the data forwarding to network with SDN flow rules
○ Prevent packet loss during reconfigurations
39
40
41
Data Routing Data Computation I/O Layer
Output from Data Computation
Destination Worker 1 Destination Worker 2
Source Worker
42
Data Routing Data Computation I/O Layer
Source worker ID Destination worker ID StreamID Tuple Length Output from Data Computation
Destination Worker 1 Destination Worker 2
Source Worker
○ Multiple same computations ■ Heavy multiple serializations ■ Data copy to different TCP connections ○ No broadcast concept in application layers
43
Data Routing Data Computation Source Worker
Destination Worker 1
I/O Layer
Source worker ID Destination worker ID StreamID Tuple Length Output from Data Computation
Destination Worker 2
44
Data Routing Data Computation I/O Layer Port Data Routing Data Computation I/O Layer Port Data Routing Data Computation I/O Layer Port Software SDN Switch
Source Worker Destination Worker 1 Destination Worker 2
Match in_port=[source worker port], dl_dst=[BROADCAST], dl_src=[source worker ID] Action
45
Data Routing Data Computation I/O Layer Port Data Routing Data Computation I/O Layer Port Data Routing Data Computation I/O Layer Port Software SDN Switch
BROADCAST Set of tuples Source Worker ID 0xffff Ethernet header Payload Source Worker Destination Worker 1 Destination Worker 2
Match in_port=[source worker port], dl_dst=[BROADCAST], dl_src=[source worker ID] Action
46
Data Routing Data Computation I/O Layer Port Data Routing Data Computation I/O Layer Port Data Routing Data Computation I/O Layer Port
Match in_port=[source worker port], dl_dst=[BROADCAST], dl_src=[source worker ID] Action
Software SDN Switch
BROADCAST Set of tuples Source Worker ID 0xffff Ethernet header Payload Source Worker Destination Worker 1 Destination Worker 2
○
○
47
48
49
○
○
○
○
○
50
○
○
■
Expensive in case of large scale
■
Not instantaneous
○
○
■
Unexpected port deletion events
■
Traffic steering with flow rule changes
51
○
■
Capacity = (# of processed tuples * average process time) / measurement time
○
52
○
Update global states to include reconfigurations and detailed topology information stored in a central coordinator (i.e., zookeeper)
○
Extend the topology builder and the scheduler
○
Implement dynamic topology manager module
■
For updating global states for initial submissions and reconfigurations
○
Replace netty-based Storm transport with Typhoon custom transport
○
Implement with JAVA and C using JNI to bridge them
■
C using the DPDK framework
■
Java implementing Storm transport interface
53
○
○
○
○
○
54
○
○
○
○
○
55
○
○
○
○
○
56
57
Destination
Destination Source
58
Destination
# of destination workers
Destination Source
59
Destination
# of destination workers
Destination Source
60 Input Split Count Split Count Count
Count
61 Input Split Count Split Count Count Split
Count
62 Input Split Count Split Count Count Split
Count
63