StreamBox: Modern Stream Processing on a Multicore Machine Hongyu Miao and Heejin Park, Purdue ECE; Myeongjae Jeon and Gennady Pekhimenko, Microsoft Research; Kathryn S. McKinley, Google; Felix Xiaozhu Lin, Purdue ECE http://xsel.rocks/p/streambox
Humans IoT Data centers High velocity of streaming data requires real-time processing
Streaming ¡Pipeline Infinite ¡data ¡stream Input Pipeline 3
Streaming ¡Pipeline Infinite ¡data ¡stream Input Epoch Epoch Epoch Pipeline 4
Streaming ¡Pipeline Infinite ¡data ¡stream Input Transform ¡0 Epoch Epoch Epoch Pipeline 5
Streaming ¡Pipeline Infinite ¡data ¡stream Input Transform ¡0 Epoch Epoch Epoch Pipeline Transform ¡1 Epoch Epoch Epoch Transform ¡2 Epoch Epoch Epoch 6
Streaming ¡Pipeline Infinite ¡data ¡stream Input Transform ¡0 Epoch Epoch Epoch Pipeline Transform ¡1 Epoch Epoch Epoch Transform ¡2 Epoch Epoch Epoch Output 7
Why ¡is ¡it ¡hard? ¡ Infinite-data-stream Input Records ¡arrive ¡out-‑of-‑order Transform-0 Epoch Epoch Epoch Transform-1 Epoch Epoch Epoch Transform-2 Epoch Epoch Epoch Output 8
Why ¡is ¡it ¡hard? ¡ Infinite-data-stream Input Records ¡arrive ¡out-‑of-‑order Transform-0 Epoch Epoch Epoch High ¡Performance ¡on ¡Multicore Transform-1 Epoch Epoch Epoch • Data ¡parallelism Transform-2 • Pipeline ¡parallelism Epoch Epoch Epoch Output • Memory ¡locality … Core Core Core Core 1 2 13 0 … 960K 960K 960K 960K … B B B B 3584 3584 3584 3584 KB KB KB KB 35MB L3 NUMA% NUMA% NUMA% NUMA% 0 1 2 3 9 Intel ¡Xeon ¡E7-‑4830 ¡v4
Prior ¡work Out-‑of-‑order ¡processing ¡within ¡epochs Processes ¡only ¡one ¡epoch ¡in ¡each ¡transform ¡at ¡a ¡time 20:00 15:00 10:00 Transform ¡0 Epoch Epoch Epoch Pipeline 5:00 Transform ¡1 Epoch Epoch Epoch Transform ¡2 Epoch Epoch Epoch 10
Prior ¡work Out-‑of-‑order ¡processing ¡within ¡epochs Processes ¡only ¡one ¡epoch ¡in ¡each ¡transform ¡at ¡a ¡time 20:00 15:00 10:00 Transform ¡0 Epoch Epoch Epoch Pipeline 5:00 10:00 Transform ¡1 Epoch Epoch Epoch 0:00 Transform ¡2 Epoch Epoch Epoch 11
Prior ¡work Out-‑of-‑order ¡processing ¡within ¡epochs Processes ¡only ¡one ¡epoch ¡in ¡each ¡transform ¡at ¡a ¡time 20:00 15:00 10:00 Transform ¡0 Epoch Epoch Epoch Pipeline 5:00 15:00 10:00 Transform ¡1 Epoch Epoch Epoch 5:00 0:00 Transform ¡2 Epoch Epoch Epoch 12
StreamBox insight St Out-‑of-‑order ¡processing ¡across ¡epochs Process all ¡epochs ¡in ¡all ¡transforms ¡in ¡parallel 10:00 15:00 10:00 Transform ¡0 Epoch Epoch Epoch Pipeline Transform ¡1 Epoch Epoch Epoch Transform ¡2 Epoch Epoch Epoch 13
Prior ¡work ¡vs. ¡StreamBox Process all ¡epochs ¡in ¡all ¡transforms ¡ Processes ¡only ¡one ¡epoch ¡in ¡each ¡ in ¡parallel transform ¡at ¡a ¡time 20:00 15:00 10:00 10:00 15:00 10:00 Transform)0 Transform)0 Epoch Epoch Epoch Epoch Epoch Epoch Pipeline Pipeline 5:00 10:00 Transform)1 Transform)1 Epoch Epoch Epoch Epoch Epoch Epoch 0:00 Transform)2 Transform)2 Epoch Epoch Epoch Epoch Epoch Epoch StreamBox: ¡High ¡pipeline ¡and ¡data ¡parallel ¡processing ¡system 14
Result: ¡StreamBox vs. ¡existing ¡systems ¡on ¡multicore High ¡throughput ¡& ¡utilization ¡of ¡multicore ¡hardware 8000 StreamBox Throughput KRec/s Spark Streaming 6000 Beam 4000 2000 7K 10K 10K 8K 0 4 12 32 56 # Cores 15
Roadmap Background Stream pipeline, streaming data, window, watermark, and epoch StreamBox Design • Invariants to guarantee correctness • Out-of-order epoch processing Evaluation 16
Streaming pipeline for data analytics Transform a computation that consumes and produces streams Pipeline a dataflow graph of transforms Count word Group by occurrences word Ingress Transform 1 Transform 2 Egress A Simple WordCount Pipeline 17
Stream records = data + event time Records arrive out of order • Records travel diverse network paths • Computations execute at different rates infinite 0:05 0:02 0:03 Processing data System stream 18
Window A temporal processing scope of records Chopping up infinite data into finite pieces along temporal boundaries Transforms do computation based on windows 1:02 1:03 1:13 1:09 1:11 1:08 Infinite input stream Window 1:00 – 1:05 Event Time 19
Window A temporal processing scope of records 1:02 1:13 1:09 1:11 1:08 1:03 1:02 Infinite input stream Windows by event time 1:00 – 1:05 20
Window A temporal processing scope of records 1:13 1:09 1:11 1:08 1:03 Infinite input stream 1:02 Windows by event time 1:00 – 1:05 21
Window A temporal processing scope of records 1:13 1:09 1:11 1:08 Infinite input stream 1:03 1:02 Windows by event time 1:00 – 1:05 22
Window A temporal processing scope of records 1:13 1:09 1:11 Infinite input stream 1:03 1:02 1:08 Windows by event time 1:05 – 1:10 1:00 – 1:05 23
Window A temporal processing scope of records 1:13 1:09 Infinite input stream 1:03 1:02 1:08 1:11 Windows by event time 1:05 – 1:10 1:00 – 1:05 1:10 – 1:15 24
Window A temporal processing scope of records 1:13 Infinite input stream 1:03 1:02 1:09 1:08 1:11 Windows by event time 1:05 – 1:10 1:00 – 1:05 1:10 – 1:15 25
Window A temporal processing scope of records Infinite input stream 1:03 1:02 1:09 1:08 1:13 1:11 Windows by event time 1:05 – 1:10 1:00 – 1:05 1:10 – 1:15 26
Out-of-order records 1:13 1:09 1:11 Infinite input stream 1:08 Windows by event time 1:05 – 1:10 27
When a window is complete? 1:13 1:09 Infinite input stream 1:08 1:11 Windows by event time 1:05 – 1:10 1:10 – 1:15 28
Watermark Input completeness indicated by data source Watermark X all input data with event times less than X have arrived Watermark Watermark 1:05 1:10 1:13 1:09 1:11 1:08 1:03 1:02 Infinite input stream 29
Handling out-of-order with watermarks Watermark Watermark 1:05 1:10 1:13 1:09 1:11 1:08 Infinite input stream Windows by event time 1:05 – 1:10 30
Handling out-of-order with watermarks Watermark Watermark 1:05 1:10 1:13 1:09 1:11 Infinite input stream 1:08 Windows by event time 1:05 – 1:10 31
Handling out-of-order with watermarks Watermark Watermark 1:05 1:10 1:13 1:09 Infinite input stream 1:08 1:11 Windows by event time 1:05 – 1:10 1:10 – 1:15 32
Handling out-of-order with watermarks Watermark Watermark 1:05 1:10 1:13 Infinite input stream 1:09 1:08 1:11 Windows by event time 1:05 – 1:10 1:10 – 1:15 33
Handling out-of-order with watermarks Watermark Watermark 1:05 1:10 1:13 Infinite input stream 1:09 1:08 1:11 Windows by event time 1:05 – 1:10 1:10 – 1:15 34
Epoch A set of records arriving between two watermarks A window may span multiple epochs Watermark Watermark 1:05 1:10 1:13 1:09 1:11 1:08 1:03 1:02 Infinite input stream An epoch 35
Roadmap Background StreamBox Design • Invariants to guarantee correctness • Out-of-order epoch processing Evaluation 36
Stream processing engines Most of stream engines optimize for a distributed system • Neglected efficient multicore implementation • Assume a single machine incapable of handling stream data 37
Goal A stream engine for multicore 10:00 15:00 10:00 Multicore hardware with Transform)0 Epoch Epoch Epoch • High throughput I/O Pipeline Transform)1 • Terabyte DRAMs Epoch Epoch Epoch • A large number of cores Transform)2 A stream engine for multicore Epoch Epoch Epoch … • Correctness respect dependences Core Core Core Core 1 2 13 0 … with minimal synchronization 960K 960K 960K 960K … B B B B • Dynamic parallelism processes any 3584 3584 3584 3584 KB KB KB KB records in any epochs 35MB L3 • Target throughput & latency NUMA% NUMA% NUMA% NUMA% 0 1 2 3 38
Challenges Correctness • Guarantee watermark semantics by meeting two invariants Throughput • Never stall the pipeline Latency • Do not relax the watermark • Dynamically adjust parallelism to relieve bottlenecks 39
Invariant 1 Watermark ordering Transforms consume watermarks in order Transforms consume all records in an epoch before consuming the watermark Epoch 2 Epoch 1 0:20 0:10 0:22 0:12 0:18 0:05 0:11 Transform 40
Invariant 2 Respect epoch boundaries Once a transform assigns a record an epoch, the record never changes epochs Epoch 2 Epoch 1 0:20 0:10 0:22 0:12 0:18 0:05 0:11 Transform 41
Recommend
More recommend