Incremental Parallel and Distributed Systems
Total Page:16
File Type:pdf, Size:1020Kb
Incremental Parallel and Distributed Systems Thesis for obtaining the title of Doctor of Engineering Science of the Faculty of Natural Science and Technology I of Saarland University From Pramod Kumar Bhatotia Saarbrücken April, 2015 Technical report: MPI-SWS-2015-002 Date of Colloquium: 07/04/2015 Dean of Faculty: Univ.-Prof. Dr. Markus Bläser Chair of the Committee: Prof. Dr. Matteo Maffei Reporters First Reviewer: Prof. Dr. Rodrigo Rodrigues Second Reviewer: Prof. Dr. Peter Druschel Third Reviewer: Dr. Rebecca Isaacs Academic Assistant: Dr. Rijurekha Sen ii ©2015 Pramod K. Bhatotia ALL RIGHTS RESERVED iii ABSTRACT Incremental computation strives for efficient successive runs of applications by re- executing only those parts of the computation that are affected by a given input change instead of recomputing everything from scratch. To realize the benefits of incremental computation, researchers and practitioners are developing new sys- tems where the application programmer can provide an efficient update mecha- nism for changing application data. Unfortunately, most of the existing solutions are limiting because they not only depart from existing programming models, but also require programmers to devise an incremental update mechanism (or a dy- namic algorithm) on a per-application basis. In this thesis, we present incremental parallel and distributed systems that enable existing real-world applications to automatically benefit from efficient in- cremental updates. Our approach neither requires departure from current models of programming, nor the design and implementation of dynamic algorithms. To achieve these goals, we have designed and built the following incremen- tal systems: (i) Incoop — a system for incremental MapReduce computation; (ii) Shredder — a GPU-accelerated system for incremental storage; (iii) Slider — a stream processing platform for incremental sliding window analytics; and (iv) iThreads — a threading library for parallel incremental computation. Our experience with these systems shows that significant performance can be achieved for existing ap- plications without requiring any additional effort from programmers. iv KURZDARSTELLUNG Inkrementelle Berechnungen ermöglichen die effizientere Ausführung aufeinan- derfolgender Anwendungsaufrufe, indem nur die Teilbereiche der Anwendung erneut ausgefürt werden, die von den Änderungen der Eingabedaten betroffen sind. Dieses Berechnungsverfahren steht dem konventionellen und vollständig neu berechnenden Verfahren gegenüber. Um den Vorteil inkrementeller Berech- nungen auszunutzen, entwickeln sowohl Wissenschaft als auch Industrie neue Sys- teme, bei denen der Anwendungsprogrammierer den effizienten Aktualisierungsmech- anismus für die Änderung der Anwendungsdaten bereitstellt. Bedauerlicherweise lassen sich existierende Lösungen meist nur eingeschränkt anwenden, da sie das konventionelle Programmierungsmodel beibehalten und dadurch die erneute En- twicklung vom Programmierer des inkrementellen Aktualisierungsmechanismus (oder einen dynamischen Algorithmus) für jede Anwendung verlangen. Diese Doktorarbeit stellt inkrementelle Parallele- und Verteiltesysteme vor, die es existierenden Real-World-Anwendungen ermöglichen vom Vorteil der inkre- mentellen Berechnung automatisch zu profitieren. Unser Ansatz erfordert weder eine Abkehr von gegenwärtigen Programmiermodellen, noch Design und Imple- mentierung von anwendungsspezifischen dynamischen Algorithmen. Um dieses Ziel zu erreichen, haben wir die folgenden Systeme zur inkrementellen parallelen und verteilten Berechnung entworfen und implementiert: (i) Incoop — ein System für inkrementelle Map-Reduce-Programme; (ii) Shredder — ein GPU- beschleunigtes System zur inkrementellen Speicherung; (iii) Slider — eine Plat- tform zur Batch-basierten Streamverarbeitung via inkrementeller Sliding-Window- Berechnung; und (iv) iThreads — eine Threading-Bibliothek zur parallelen inkre- mentellen Berechnung. Unsere Erfahrungen mit diesen Systemen zeigen, dass unsere Methoden sehr gute Performanz liefern können, und dies ohne weiteren Aufwand des Programmierers. v PUBLICATIONS Parts of the thesis have appeared in the following publications. • "iThreads: A Threading Library for Parallel Incremental Computation". Pramod Bhatotia, Pedro Fonseca, Umut A. Acar, Bjoern Brandenburg, and Rodrigo Rodrigues. In proceedings of the 20th International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS), 2015. • "Slider: Incremental Sliding Window Analytics". Pramod Bhatotia, Umut A. Acar, Flavio Junqueira, and Rodrigo Rodrigues. In proceedings of the 15th Annual ACM/IFIP/USENIX Middleware conference (Middleware), 2014. Best stu- dent paper award. • "MapReduce for Incremental Computation". Pramod Bhatotia, Alexander Wieder, Umut A. Acar, and Rodrigo Rodrigues. Invited book chapter: Advances in data processing techniques in the era of Big Data, CRC Press, 2014. • "Shredder: GPU-Accelerated Incremental Storage and Computation". Pramod Bhatotia, Rodrigo Rodrigues and Akshat Verma. In proceedings of the 10th USENIX conference on File and Storage Technologies (FAST), 2012. • "Incoop: MapReduce for Incremental Computations". Pramod Bhatotia, Alexan- der Wieder, Rafael Pasquini, Rodrigo Rodrigues and Umut A. Acar. In pro- ceedings of the 2nd ACM Symposium on Cloud Computing (SoCC), 2011. • "Large Scale Incremental Data Processing with Change Propagation". Pramod Bhatotia, Alexander Wieder, Istemi Ekin Akkus, Rodrigo Rodrigues and Umut A. Acar. In USENIX Workshop on Hot Topics in Cloud Computing (HotCloud), 2011. vi Additional publications published while at MPI-SWS. • "Orchestrating the Deployment of Computations in the Cloud with Conduc- tor." Alexander Wieder, Pramod Bhatotia, Ansley Post and Rodrigo Rodrigues. In proceedings of the 9th USENIX conference on Networked Systems Design and Implementation (NSDI), 2012. • "Performance Evaluation and Optimization of Random Memory Access on Multicores with High Productivity." Vaibhav Saxena, Yogish Sabharwal, Pramod Bhatotia. In proceedings of ACM/IEEE International Conference on High Perfor- mance Computing (HiPC), 2010. Best paper award. • "Reliable Data-Center Scale Computations." Pramod Bhatotia, Alexander Wieder, Rodrigo Rodrigues, Flavio Junqueira, and Benjamin Reed. In proceedings of the 4th International Workshop on Large Scale Distributed Systems and Middleware (LADIS), 2010. • "Conductor: Orchestrating the Clouds." Alexander Wieder, Pramod Bhato- tia, Ansley Post, and Rodrigo Rodrigues. proceedings of the 4th International Workshop on Large Scale Distributed Systems and Middleware (LADIS), 2010. • "Brief Announcement: Modelling MapReduce for Optimal Execution in the Cloud." Alexander Wieder, Pramod Bhatotia, Ansley Post, and Rodrigo Ro- drigues. In proceedings of the 29th ACM SIGACT-SIGOPS symposium on Princi- ples of Distributed Computing (PODC), 2010. vii Dedicated to my mummy and papa. viii TABLE OF CONTENTS LISTOFTABLES ....................................... .........................xiv LISTOFFIGURES...................................... ......................... xv 1 Introduction...................................... ............................ 1 1.1 The Promise of Incremental Computation.............. ................ 1 1.2 The Inevitability of Parallel & Distributed Systems . ................. 2 1.3 Thesis Research: Incremental Systems ............... .................. 3 1.4 Self-Adjusting Computation....................... ..................... 4 1.5 ThesisContributions ............................. ...................... 5 1.6 Organization.................................... ........................ 8 2 Incoop: Incremental Batch Processing ................. ...................... 9 2.1 Motivation...................................... ........................ 9 2.2 Contributions................................... ........................ 10 2.3 Background...................................... ....................... 12 2.3.1 MapReduceProgramming Model ..................... ......... 12 2.3.2 HadoopArchitecture............................ ................ 13 2.3.2.1 Hadoop Distributed File System ................. ..... 13 2.3.2.2 HadoopMapReduceEngine ....................... ... 14 2.4 Overview........................................ ....................... 14 2.4.1 Basicdesign................................... .................. 15 2.4.2 Challenge: Transparency........................ ................ 17 2.4.3 Challenge: Efficiency........................... ................. 17 ix 2.5 IncrementalHDFS................................. ..................... 20 2.6 IncrementalMapReduce............................ .................... 22 2.7 Memoization Aware Scheduler....................... .................. 26 2.8 Implementation.................................. ....................... 28 2.9 Evaluation...................................... ........................ 29 2.9.1 Applications and Data Generation................. ............. 29 2.9.2 Measurements .................................. ................ 30 2.9.3 PerformanceGains.............................. ................ 32 2.9.4 Effectiveness of Optimizations.................. ................ 33 2.9.5 Overheads..................................... .................. 35 2.10 CaseStudies .................................... ........................ 37 2.10.1 Incremental Log Processing..................... ................ 37 2.10.2 Incremental Query Processing ................... ..............