International Conference on Data Engineering (ICDE 2016)

Slides:



Advertisements
Similar presentations
Dynamic Replica Placement for Scalable Content Delivery Yan Chen, Randy H. Katz, John D. Kubiatowicz {yanchen, randy, EECS Department.
Advertisements

Alex Cheung and Hans-Arno Jacobsen August, 14 th 2009 MIDDLEWARE SYSTEMS RESEARCH GROUP.
LIBRA: Lightweight Data Skew Mitigation in MapReduce
Pete Bohman Adam Kunk.  Introduction  Related Work  System Overview  Indexing Scheme  Ranking  Evaluation  Conclusion.
LOAD BALANCING IN A CENTRALIZED DISTRIBUTED SYSTEM BY ANILA JAGANNATHAM ELENA HARRIS.
Lecture 18-1 Lecture 17-1 Computer Science 425 Distributed Systems CS 425 / ECE 428 Fall 2013 Hilfi Alkaff November 5, 2013 Lecture 21 Stream Processing.
Parallel Database Systems
Adaptive Data Collection Strategies for Lifetime-Constrained Wireless Sensor Networks Xueyan Tang Jianliang Xu Sch. of Comput. Eng., Nanyang Technol. Univ.,
A Stratified Approach for Supporting High Throughput Event Processing Applications July 2009 Geetika T. LakshmananYuri G. RabinovichOpher Etzion IBM T.
1 Fast Failure Recovery in Distributed Graph Processing Systems Yanyan Shen, Gang Chen, H.V. Jagadish, Wei Lu, Beng Chin Ooi, Bogdan Marius Tudor.
Advanced Software Engineering PROJECT. 1. MapReduce Join (2 students)  Focused on performance analysis on different implementation of join processors.
Multiple Aggregations Over Data Streams Rui ZhangNational Univ. of Singapore Nick KoudasUniv. of Toronto Beng Chin OoiNational Univ. of Singapore Divesh.
© Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice. LogKV: Exploiting Key-Value.
임규찬. 1. Abstract 2. Introduction 3. Design Goals 4. Sample-Based Scheduling for Parallel Jobs 5. Implements.
Qingqing Gan Torsten Suel CSE Department Polytechnic Institute of NYU Improved Techniques for Result Caching in Web Search Engines.
Zibin Zheng DR 2 : Dynamic Request Routing for Tolerating Latency Variability in Cloud Applications CLOUD 2013 Jieming Zhu, Zibin.
On Selfish Routing In Internet-like Environments Lili Qiu (Microsoft Research) Yang Richard Yang (Yale University) Yin Zhang (AT&T Labs – Research) Scott.
A Roadmap towards Machine Intelligence
Client Assignment in Content Dissemination Networks for Dynamic Data Shetal Shah Krithi Ramamritham Indian Institute of Technology Bombay Chinya Ravishankar.
Pete Bohman Adam Kunk.  Introduction  Related Work  System Overview  Indexing Scheme  Ranking  Evaluation  Conclusion.
1 Traffic Engineering By Kavitha Ganapa. 2 Introduction Traffic engineering is concerned with the issue of performance evaluation and optimization of.
Adaptive Online Scheduling in Storm Paper by Leonardo Aniello, Roberto Baldoni, and Leonardo Querzoni Presentation by Keshav Santhanam.
Stela: Enabling Stream Processing Systems to Scale-in and Scale-out On- demand Le Xu ∗, Boyang Peng†, Indranil Gupta ∗ ∗ Department of Computer Science,
Online Parameter Optimization for Elastic Data Stream Processing Thomas Heinze, Lars Roediger, Yuanzhen Ji, Zbigniew Jerzak (SAP SE) Andreas Meister (University.
BAHIR DAR UNIVERSITY Institute of technology Faculty of Computing Department of information technology Msc program Distributed Database Article Review.
SketchVisor: Robust Network Measurement for Software Packet Processing
Performance Assurance for Large Scale Big Data Systems
Connected Infrastructure
Impact of Interference on Multi-hop Wireless Network Performance
Distributed, real-time actionable insights on high-volume data streams
Architecture and Algorithms for an IEEE 802
Data Driven Resource Allocation for Distributed Learning
Guangxiang Du*, Indranil Gupta
Original Slides by Nathan Twitter Shyam Nutanix
CSCI5570 Large Scale Data Processing Systems
A Study of Group-Tree Matching in Large Scale Group Communications
Resource Elasticity for Large-Scale Machine Learning
Connected Infrastructure
Drum: A Rhythmic Approach to Interactive Analytics on Large Data
Augmented Sketch: Faster and More Accurate Stream Processing
Load Balancing Memcached Traffic Using SDN
Performance Evaluation of Adaptive MPI
Apache Spark Resilient Distributed Datasets: A Fault-Tolerant Abstraction for In-Memory Cluster Computing Aditya Waghaye October 3, 2016 CS848 – University.
Benchmarking Modern Distributed Stream Processing Systems
Kijung Shin1 Mohammad Hammoud1
COS 518: Advanced Computer Systems Lecture 11 Michael Freedman
Query-Friendly Compression of Graph Streams
Introduction to Spark.
Boyang Peng, Le Xu, Indranil Gupta
Optimizing Interactive Analytics Engines for Heterogeneous Clusters
StreamApprox Approximate Stream Analytics in Apache Flink
Pyramid Sketch: a Sketch Framework
StreamApprox Approximate Stream Analytics in Apache Spark
StreamApprox Approximate Computing for Stream Analytics
Edge computing (1) Content Distribution Networks
Henge: Intent-Driven Multi-Tenant Stream Processing
Discretized Streams: A Fault-Tolerant Model for Scalable Stream Processing Zaharia, et al (2012)
Efficient Document Analytics on Compressed Data:
Chi: A Scalable & Programmable Control Plane for Distributed Stream Processing Luo Mai, Kai Zeng, Rahul Potharaju, Le Xu, Steve Suh, Shivaram Venkataraman,
Dynamic Replica Placement for Scalable Content Delivery
Tahsin Reza Matei Ripeanu Nicolas Tripoul
Adaptive Offloading for Pervasive Computing
Programming with data Lecture 3
Big DATA.
Computational Advertising and
Data science laboratory (DSLAB)
Fast, Interactive, Language-Integrated Cluster Computing
COS 518: Advanced Computer Systems Lecture 12 Michael Freedman
Lu Tang , Qun Huang, Patrick P. C. Lee
EdgeWise: A Better Stream Processing Engine for the Edge
Presentation transcript:

International Conference on Data Engineering (ICDE 2016) When Two Choices Are not Enough: Balancing at Scale in Distributed Stream Processing Hey everyone: I am Anis. A PhD student from KTH Royal Institute of Technology. The work I will present today is a result of my internship at Yahoo Labs Barcelona For this work, I was working with people at the top. There is Gianmarco, David, Nicolas and Marco In our work, we propose a very simple and practical approach for load balancing for Stream processing Engines Muhammad Anis Uddin Nasir International Conference on Data Engineering (ICDE 2016)

Past work: ICDE 2015 Hey everyone, I am Anis :D I am a PhD Student at KTH Royal Institute of Technology The work I will present today is the result of my internship during the PhD at Yahoo Labs Barcelona On the top is our team, where, David and Nicolas were from Yahoo Labs Barcelona, Gianmarco, currently is in Alto University in Helsinki and Marco is from Qatar Computing Research Institute Our work focuses on solving the problem of load imabalance in Stream Processing Engines. So during the talk, I will briefly describe Stream Processing Systems and Model, explain about the issues that cause load imbalance and discuss our simple solution to achieve load balance in Streaming environment

Stream Processing Streams are produced through event logs, user activity logs, web logs, network traffic, mobile traffic, sensors, High rate of incoming traffic millions of messages per sec 3 Vs, variety, velocity, volume

1st challenge: Velocity stream

2nd challenge: Volume

Requirements Low Latency High throughput Utilization of Resources Results in microseconds High throughput Millions of events per second Utilization of Resources Workload sharing

Stream Processing Engines Streaming Application Online Machine Learning Real Time Query Processing Continuous Computation Streaming Frameworks Storm, S4, Flink Streaming, Spark Streaming Stream processing systems are specialized for low latency and high throughput processing for real time data Few common domains of streaming applications are online machine learning, real time query processing, continuous computation Due to the need of real time processing, various frameworks have been proposed in the last decade.

Stream Processing Model Streaming Applications are represented by Directed Acyclic Graphs (DAGs) Worker Streaming Applications are represented as DAGs In a DAG a vertex are set of operators that are distributed across cluster, which apply various light weight transformation of the incoming stream. For example, filters, join, union, aggregrate are common stream transformation. Edges are data channels that are use to route the data from one operator to another In stream processing systems, there are various stream grouping strategies for routing the keys from one level of operators to the never level of operators In todays talk, I will be concentrating on load balancing between the group of operators at each level of DAG Source Worker Data Stream Source Operators Worker Data Channels

Real-Life Example (1)

Real-Life Example (2) k1 (p1) kn (pn) m = <timestamp, key, value> = <14477912, 046-XXXX817, 217> k1 (p1) kn (pn)

Stream Grouping 1. Key or Fields Grouping (Hash-Based) Single worker per key Stateful operators 2. Shuffle Grouping (Round Robin) All workers per key Stateless Operators 3. Partial Key Grouping Two workers per key MapReduce-like Operators Key grouping uses hash based assignment. It applies a hash function on the incoming data and assign the worker to the message by taking the mod of the hash Key grouping is a good choice for stateful operators like aggregates Shuffle grouping is a simple round roibin assignment scheme. Shuffle grouping is a good choice for stateless operators

Key Grouping Key Grouping Scalable ✖ Low Memory ✔ Load Imbalance ✖ Worker Source To understand stream grouping strategies, lets take an example of word count Suppose we want to count the words in the tweets from twitter To implement twitter wordcount, we need to set of operators, A first level of operator to split the tweets into set of words. And the next level of operator to count the words As we know that many of the real workloads are highly skewed. Worker Source Key Grouping Scalable ✖ Low Memory ✔ Load Imbalance ✖ Worker

Shuffle Grouping Shuffle Grouping Load Balance ✔ Memory O(W) ✖ Worker Source Worker Aggr. Source Shuffle Grouping Load Balance ✔ Memory O(W) ✖ Aggregation O(W) ✖ Worker

Partial Key Grouping Partial Key Grouping Scalable ✖ Low Memory ✔ Worker Aggr. Source Partial Key Grouping Scalable ✖ Low Memory ✔ Load Imbalance ✖

Partial Key Grouping P1 = 9.32%

Problem Formulation Input is a unbounded sequence of messages from a key distribution Each message is assigned to a worker for processing (i.e., filter, aggregate, join) Load balance properties Memory Load Balance Network Load Balance Processing Load Balance Metric: Load Imbalance Talk about different load balance schemes. Memory Network Processing In particular, we are interested in balancing the workload for processing. So total number of messages processing

High-Level Idea splits head from the tail k1 (p1) kn (pn) This is the average imbalance across the system and time, for Twitter, Wikipedia, Cashtags and a synthetic lognormal distribution. We study how well the local load estimation compares with global information. It is always very close, regardless of how many sources we allow the system to have. Some different patterns for the various datasets, but the trend is the same. Hashing is worst. Hashing is just for reference k1 (p1) kn (pn)

How to find the optimal threshold? Any key that exceeds the capacity of two workers requires more than two workers pi ≥ 2/(n) We need to consider the collision of the keys while deciding the number of workers PKG guarantees nearly perfect load balance for p1 ≤ 1/(5n)

How to find optimal threshold?

How many keys are in the head? Plots for the number of keys in head for two different thresholds

How many workers for the head? D-Choices: adapts to the frequencies of the keys in the head W-Choices: allows all the workers for the keys in the head Round-Robin: employs shuffle grouping for the keys in the head

How many workers for the head? How to assign a key to set of d workers? Greedy-d: uses d different hash functions generates set of d candidate workers assigns the key to the least-loaded worker In case of W-Choices, all the workers are candidates for a key

How to find the optimal d? Optimization problem:

How to find the optimal d? We rewrite the constraint: For instance for the first key with p1:

How to find the optimal d? We rewrite the constraint: where

What are the values of d?

Memory Overhead Compared to PKG

Memory Overhead Compared to SG

Experimental Evaluation Datasets

Experimental Evaluation Algorithms

How good are estimated d? Estimated d vs. the minimal experimental value of d

Load Imbalance for Zipf

Load balance for real workloads Comparison of D-C, WC with PKG

Load Imbalance over time Load imbalance over time for the real-world datasets

Throughput on real DSPE Throughput on a cluster deployment on Apache Storm for KG, PKG, SG, D-C, and W-C on the ZF dataset

Latency on a real DSPE Latency (on a cluster deployment on Apache Storm) for KG, PKG, SG, D-C, and W-C

Conclusion We propose two algorithms to achieve load balance at scale for DSPEs Use heavy hitters to separate the head of the distribution and process on larger set of workers Improvement translates into 150% gain in throughput and 60% gain in latency over PKG

International Conference on Data Engineering (ICDE 2016) When Two Choices Are not Enough: Balancing at Scale in Distributed Stream Processing Hey everyone: I am Anis. A PhD student from KTH Royal Institute of Technology. The work I will present today is a result of my internship at Yahoo Labs Barcelona For this work, I was working with people at the top. There is Gianmarco, David, Nicolas and Marco In our work, we propose a very simple and practical approach for load balancing for Stream processing Engines Muhammad Anis Uddin Nasir International Conference on Data Engineering (ICDE 2016)