Alluxio: a Virtual Distributed File System
Total Page:16
File Type:pdf, Size:1020Kb
Alluxio: A Virtual Distributed File System Haoyuan Li Electrical Engineering and Computer Sciences University of California at Berkeley Technical Report No. UCB/EECS-2018-29 http://www2.eecs.berkeley.edu/Pubs/TechRpts/2018/EECS-2018-29.html May 7, 2018 Copyright © 2018, by the author(s). All rights reserved. Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. To copy otherwise, to republish, to post on servers or to redistribute to lists, requires prior specific permission. Acknowledgement I would like to thank my advisors, Ion Stoica and Scott Shenker, for their support and guidance throughout this journey, and for providing me with great opportunities. They are both inspiring mentors, and continue to lead by example. They always challenge me to push ideas and work further, and share their advice and experience on life and research. Being able to learn from both of them has been my great fortune. Alluxio: A Virtual Distributed File System by Haoyuan Li A dissertation submitted in partial satisfaction of the requirements for the degree of Doctor of Philosophy in Computer Science in the Graduate Division of the University of California, Berkeley Committee in charge: Professor Ion Stoica, Co-chair Professor Scott Shenker, Co-chair Professor John Chuang Spring 2018 Alluxio: A Virtual Distributed File System Copyright 2018 by Haoyuan Li 1 Abstract Alluxio: A Virtual Distributed File System by Haoyuan Li Doctor of Philosophy in Computer Science University of California, Berkeley Professor Ion Stoica, Co-chair Professor Scott Shenker, Co-chair The world is entering the data revolution era. Along with the latest advancements of the Inter- net, Artificial Intelligence (AI), mobile devices, autonomous driving, and Internet of Things (IoT), the amount of data we are generating, collecting, storing, managing, and analyzing is growing ex- ponentially. To store and process these data has exposed tremendous challenges and opportunities. Over the past two decades, we have seen significant innovation in the data stack. For exam- ple, in the computation layer, the ecosystem started from the MapReduce framework, and grew to many different general and specialized systems such as Apache Spark for general data processing, Apache Storm, Apache Samza for stream processing, Apache Mahout for machine learning, Ten- sorflow, Caffe for deep learning, Presto, Apache Drill for SQL workloads. There are more than a hundred popular frameworks for various workloads and the number is growing. Similarly, the storage layer of the ecosystem grew from the Apache Hadoop Distributed File System (HDFS) to a variety of choices as well, such as file systems, object stores, blob stores, key-value systems, and NoSQL databases to realize different tradeoffs in cost, speed and semantics. This increasing complexity in the stack creates challenges in multi-fold. Data is siloed in various storage systems, making it difficult for users and applications to find and access the data efficiently. For example, for system developers, it requires more work to integrate a new compute or storage component as a building block to work with the existing ecosystem. For data application developers, understanding and managing the correct way to access different data stores becomes more complex. For end users, accessing data from various and often remote data stores often results in performance penalty and semantics mismatch. For system admins, adding, removing, or upgrading an existing compute or data store or migrating data from one store to another can be arduous if the physical storage has been deeply coupled with all applications. 2 To address these challenges, this dissertation proposes an architecture to have a Virtual Dis- tributed File System (VDFS) as a new layer between the compute layer and the storage layer. Adding VDFS into the stack brings many benefits. Specifically, VDFS enables global data ac- cessibility for different compute frameworks, efficient in-memory data sharing and management across applications and data stores, high I/O performance and efficient use of network bandwidth, and the flexible choice of compute and storage. Meanwhile, as the layer to access data and collect data metrics and usage patterns, it also provides users insight into their data and can also be used to optimize the data access based on workloads. We achieve these goals through an implementation of VDFS called Alluxio (formerly Tachyon). Alluxio presents a set of disparate data stores as a single file system, greatly reducing the complex- ity of storage APIs, and semantics exposed to applications. Alluxio is designed with a memory centric architecture, enabling applications to leverage memory speed I/O by simply using Alluxio. Alluxio has been deployed at hundreds of leading companies in production, serving critical work- loads. Its open source community has attracted more than 800 contributors worldwide from over 200 companies. In this dissertation, we also investigate lineage as an important technique in the VDFS to im- prove the write performance, and also propose DFS-Perf, a scalable distributed file system per- formance evaluation framework to help researchers and developers better design and implement systems in the Alluxio ecosystem. i To my family ii Contents Contents ii List of Figures iv List of Tables vii 1 Introduction1 1.1 Challenges with the Existing Ecosystem....................... 3 1.2 Virtual Distributed File System (VDFS) ....................... 5 1.3 Results and Impacts Highlights............................ 6 1.4 Alluxio Ecosystem .................................. 7 1.5 Contributions ..................................... 8 1.6 Dissertation Overview................................. 8 2 Lineage in VDFS9 2.1 Introduction...................................... 9 2.2 Background...................................... 11 2.3 Design Overview ................................... 12 2.4 Checkpointing..................................... 16 2.5 Resource Allocation.................................. 21 2.6 Implementation.................................... 24 2.7 Evaluation....................................... 25 2.8 Related Work ..................................... 32 2.9 Limitations and Future Work............................. 34 2.10 Conclusion ...................................... 35 3 Distributed File System Performance Evaluation Framework 36 3.1 Introduction...................................... 36 3.2 DFS Characteristics.................................. 37 3.3 Related Work ..................................... 39 3.4 DFS-Perf Design ................................... 40 3.5 Benchmark Design .................................. 43 iii 3.6 Evaluation....................................... 49 3.7 Experience....................................... 56 3.8 Conclusion ...................................... 56 4 System Design and Implementation 58 4.1 Overview ....................................... 58 4.2 Architecture...................................... 59 4.3 Use Cases....................................... 62 4.4 Examples ....................................... 65 5 Conclusion 69 5.1 Broader Impact .................................... 69 5.2 Challenges and Future Work ............................. 70 Bibliography 72 iv List of Figures 1.1 Complex Data Ecosystem................................. 3 1.2 Virtual Distributed File System (VDFS) ......................... 4 1.3 VDFS, Alluxio as an example .............................. 6 2.1 Alluxio, formerly Tachyon, Architecture......................... 13 2.2 A lineage graph example of multiple frameworks .................... 13 2.3 A 3,000 node MapReduce cluster at Facebook...................... 19 2.4 Edge Checkpoint Example. Each node represents a file. Solid nodes denote check- pointed files, while dotted nodes denote uncheckpointed files............... 20 2.5 Resource Allocation Strategy for Priority Based Scheduler................ 22 2.6 Resource Allocation Strategy for Fair Sharing Based Scheduler. ............ 23 2.7 Alluxio, formerly Tachyon, and MemHDFS throughput comparison. On average, Al- luxio outperforms MemHDFS 110x for write throughput, and 2x for read throughput. 27 2.8 Performance comparison for realistic workflow. Each number is the average of three runs. The workflow ran 4x faster on Alluxio, formerly Tachyon, than on MemHDFS. In case of node failure, applications recovers in Alluxio around one minute and still finishes 3.8x faster. .................................... 28 2.9 Edge and fixed interval checkpoint recovery performance comparison.......... 29 2.10 Using the trace from Facebook and Bing, recomputation consumes up to 0.9% and 1.6% of the resource in the worst case respectively. ................... 31 3.1 DFS-Perf architecture. DFS-Perf adopts a master-slave model, in which the master contains a launcher and other tools to manage all slaves. For each slave, the input is the benchmark configuration, while the output is a set of evaluation results. Each slave runs multiple threads, which interact with the DFS via the File System Interface Layer. 41 3.2 DFS-Perf workflow. The master launches all slaves and distributes configurations of a benchmark to each of them. Each slave sets up and executes the benchmark inde- pendently. Finally, the master collects the statistics from all slaves and produces a test