Speculative Region-based Memory Management for Big Data Systems

Slides:



Advertisements
Similar presentations
Dataflow Analysis for Datarace-Free Programs (ESOP 11) Arnab De Joint work with Deepak DSouza and Rupesh Nasre Indian Institute of Science, Bangalore.
Advertisements

Object-Orientation Meets Big Data Language Techniques towards Highly- Efficient Data-Intensive Computing Harry Xu UC Irvine.
Automatic Memory Management Noam Rinetzky Schreiber 123A /seminar/seminar1415a.html.
Parallel Computing MapReduce Examples Parallel Efficiency Assignment
Spark: Cluster Computing with Working Sets
Data-Intensive Computing with MapReduce/Pig Pramod Bhatotia MPI-SWS Distributed Systems – Winter Semester 2014.
APACHE GIRAPH ON YARN Chuan Lei and Mohammad Islam.
1 Large-Scale Machine Learning at Twitter Jimmy Lin and Alek Kolcz Twitter, Inc. Presented by: Yishuang Geng and Kexin Liu.
Shark Cliff Engle, Antonio Lupher, Reynold Xin, Matei Zaharia, Michael Franklin, Ion Stoica, Scott Shenker Hive on Spark.
Facade: A Compiler and Runtime for (Almost) Object-Bounded Big Data Applications UC Irvine USA Khanh Nguyen Khanh Nguyen, Kai Wang, Yingyi Bu, Lu Fang,
A Lightweight Infrastructure for Graph Analytics Donald Nguyen Andrew Lenharth and Keshav Pingali The University of Texas at Austin.
Ex-MATE: Data-Intensive Computing with Large Reduction Objects and Its Application to Graph Mining Wei Jiang and Gagan Agrawal.
A Metadata Based Approach For Supporting Subsetting Queries Over Parallel HDF5 Datasets Vignesh Santhanagopalan Graduate Student Department Of CSE.
Introduction to Hadoop and HDFS
Towards Low Overhead Provenance Tracking in Near Real-Time Stream Filtering Nithya N. Vijayakumar, Beth Plale DDE Lab, Indiana University {nvijayak,
SALSASALSASALSASALSA Design Pattern for Scientific Applications in DryadLINQ CTP DataCloud-SC11 Hui Li Yang Ruan, Yuduo Zhou Judy Qiu, Geoffrey Fox.
Harp: Collective Communication on Hadoop Bingjing Zhang, Yang Ruan, Judy Qiu.
Message Analysis-Guided Allocation and Low-Pause Incremental Garbage Collection in a Concurrent Language Konstantinos Sagonas Jesper Wilhelmsson Uppsala.
Speculative Region-based Memory Management for Big Data Systems Khanh Nguyen, Lu Fang, Harry Xu, Brian Demsky Donald Bren School of Information and Computer.
Department of Computer Science MapReduce for the Cell B. E. Architecture Marc de Kruijf University of Wisconsin−Madison Advised by Professor Sankaralingam.
ApproxHadoop Bringing Approximations to MapReduce Frameworks
A N I N - MEMORY F RAMEWORK FOR E XTENDED M AP R EDUCE 2011 Third IEEE International Conference on Coud Computing Technology and Science.
High-level Interfaces for Scalable Data Mining Ruoming Jin Gagan Agrawal Department of Computer and Information Sciences Ohio State University.
REX: RECURSIVE, DELTA-BASED DATA-CENTRIC COMPUTATION Yavuz MESTER Svilen R. Mihaylov, Zachary G. Ives, Sudipto Guha University of Pennsylvania.
1 Tree and Graph Processing On Hadoop Ted Malaska.
Apache Tez : Accelerating Hadoop Query Processing Page 1.
Grid Technology CERN IT Department CH-1211 Geneva 23 Switzerland t DBCF GT Our experience with NoSQL and MapReduce technologies Fabio Souto.
Resilient Distributed Datasets A Fault-Tolerant Abstraction for In-Memory Cluster Computing Matei Zaharia, Mosharaf Chowdhury, Tathagata Das, Ankur Dave,
Leverage Big Data With Hadoop Analytics Presentation by Ravi Namboori Visit
Image taken from: slideshare
Connected Infrastructure
TensorFlow– A system for large-scale machine learning
Big Data is a Big Deal!.
PROTECT | OPTIMIZE | TRANSFORM
Sushant Ahuja, Cassio Cristovao, Sameep Mohta
About Hadoop Hadoop was one of the first popular open source big data technologies. It is a scalable fault-tolerant system for processing large datasets.
Hadoop.
Miraj Kheni Authors: Toyotaro Suzumura, Koji Ueno
Why Events Are A Bad Idea (for high-concurrency servers)
Distributed Programming in “Big Data” Systems Pramod Bhatotia wp
INTRODUCTION TO PIG, HIVE, HBASE and ZOOKEEPER
Pathology Spatial Analysis February 2017
Applying Control Theory to Stream Processing Systems
Spark Presentation.
Seminar in automatic tools for analyzing programs with dynamic memory
Hadoop.
Harry Xu University of California, Irvine & Microsoft Research
Yak: A High-Performance Big-Data-Friendly Garbage Collector
Connected Infrastructure
Abstract Major Cloud computing companies have started to integrate frameworks for parallel data processing in their product portfolio, making it easy for.
Central Florida Business Intelligence User Group
Apache Spark Resilient Distributed Datasets: A Fault-Tolerant Abstraction for In-Memory Cluster Computing Aditya Waghaye October 3, 2016 CS848 – University.
Many-core Software Development Platforms
Skyway: Connecting Managed Heaps in Distributed Big Data Systems
Introduction to Spark.
Yak: A High-Performance Big-Data-Friendly Garbage Collector
Introduction to PIG, HIVE, HBASE & ZOOKEEPER
Tools for Processing Big Data Jinan Al Aridhee and Christian Bach
CS110: Discussion about Spark
Optimizing MapReduce for GPUs with Effective Shared Memory Usage
Introduction to Apache
Pregelix: Think Like a Vertex, Scale Like Spandex
Overview of big data tools
Spark and Scala.
Charles Tappert Seidenberg School of CSIS, Pace University
Cloud Computing for Data Analysis Pig|Hive|Hbase|Zookeeper
IBM C IBM Big Data Engineer. You want to train yourself to do better in exam or you want to test your preparation in either situation Dumpspedia’s.
CS 239 – Big Data Systems Fall 2018
Analysis of Structured or Semi-structured Data on a Hadoop Cluster
Pig Hive HBase Zookeeper
Presentation transcript:

Speculative Region-based Memory Management for Big Data Systems Khanh Nguyen, Lu Fang, Harry Xu, Brian Demsky Donald Bren School of Information and Computer Sciences

BIG DATA … Cloudera is the first that comercialized Hadoop – claimed to be the leader – opened in 2008 Hortonworks is Hadoop-enterprise – opened in 2011 Giraph: open-source counterpart of Pregel Hama: general Bulk Synchronous Processing computing engine on top of Hadoop to do scientific computing, iterative algorithm such Matrix, Graph and Machine Learning Hive: data warehouse: query and manage large datasets in distributed storage using SQL-like language, based on MapReduce – initially developed by Facebook Pig: has high-level language to express data analysis program – its infrastructure support parallel execution, auto-tune efficiency. On Hadoop Storm: distributed realtime computation system, easy to process unbounded streams of data. Utilize queueing and database technologies to consume data in arbitrary complex way, repartition streams between each stage Flume: library for collecting, aggregating and moving large amounts of log data. Main goal is to deliver data from applications to HDFS, based on streaming data flow. Mahout: machine learning, dumped Hadoop, used Spark

BIG DATA Scalability JVM crashes due to OutOfMemory error at early stage

A moderate-size application on Giraph with 1GB input data can easily run out of memory on a 12 GB heap [Bu et al, ISMM’13]

High cost of the managed runtime is a fundamental problem! BIG DATA Scalability JVM crashes due to OutOfMemory error at early stage Management cost GC time accounts for up to 50% of the execution time [Bu et al, ISMM’13] High cost of the managed runtime is a fundamental problem!

Existing Work Facade [Nguyen et al, ASPLOS’15] Broom [Gog et al, HotOS’15] Huge manual effort from developers This work: Purely dynamic technique

Control Path vs. Data Path Process the actual data Code size is small (36%) Create most of the runtime objects (95%) Pipeline construction Job state management Perform optimization [Bu et al, ISMM’13]

Execution Pattern Data-processing functions are iteration-based Each iteration processes a distinct data partition Iterations are well-defined

GraphChi [Kyora et al, OSDI’12] public interface GraphChiProgram <VertexDataType, EdgeDataType> { public void update(ChiVertex<VertexDataType, EdgeDataType> vertex, GraphChiContext context); public void beginIteration(GraphChiContext ctx); public void endIteration(GraphChiContext ctx); public void beginInterval(GraphChiContext ctx, VertexInterval interval); public void endInterval(GraphChiContext ctx, VertexInterval interval); public void beginSubInterval(GraphChiContext ctx, VertexInterval interval); public void endSubInterval(GraphChiContext ctx, VertexInterval interval); }

Weak Iteration Hypothesis Data objects do not escape iteration boundaries GC run in the middle is wasted Control objects do escape iteration boundaries 5% 181 MILLIONS OBJECTS PageRank – Twitter graph ChiVertex: 4M ChiPointer: 171M VertexDegree: 6M

Region-based Memory Management Region definition Management: Allocation Deallocation

Advantages Low overheads Improved data locality More flexible than stack allocation No GC burden

Challenges Escaping control objects Developers are responsible for semantic correctness static analyses? Facade Broom specialized API annotation & refactoring Precise objects lifetime required!

Speculative Region Allocation Proposed Solution Speculative Region Allocation annotate iteration boundary: - iteration_start - iteration_end Algorithms to guarantee program’s correctness automatically

iteration_ID, thread_ID Observations nested executed by multiple threads Iterations iteration_ID, thread_ID

GC never touches regions Region Semi-lattice heap void main() { } //end of main JOIN OPERATOR T,* iteration_start for( ) { } iteration_end iteration_start for( ) { } iteration_end 1,t1 1,t2 iteration_start for( ) { } iteration_end region 2,t1 2,t2 3,t1 3,t2 GC never touches regions

Speculative Region Allocation Parent iteration_start Child iteration_start iteration_end iteration_end

Components of Our Approach Speculative region allocation Track inter-region references Update boundary set Recycle regions Boundary set promotion

Remember Inter-Region References: Case 1 y,ti x,ti a.f = b a b b boundary set

Remember Inter-Region References: Case 2 y,tj x,ti a = b.f b f c c boundary set

Region Recycling Algorithm JOIN( , ) = 1,t1 2,t1 boundary set

Region Recycling Algorithm JOIN( , ) = 2,t1 2,t2 T,* boundary set

Region Recycling Algorithm boundary set

Handling of Intricacies Escape via the stack Data-race-free object relocation Details are in the paper

Conclusions Goal: Reduce user’s effort Solution: Speculative region allocation The cost of object promotion is considerable Can be reduced by adaptively allocating objects: feedback-directed allocation policy Status: In the process of implementing & evaluating in the OpenJDK

Thank you!