Optimizing Write Performance in the Etcd Distributed Key-Value Store Via Integration of the Rocksdb Storage Engine

Total Page:16

File Type:pdf, Size:1020Kb

Optimizing Write Performance in the Etcd Distributed Key-Value Store Via Integration of the Rocksdb Storage Engine ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ Βελτιστοποίηση Επίδοσης Εγγραφών στο Κατανεμημένο Σύστημα Αποθήκευσης Κλειδιού-Τιμής etcd μέσω Ενσωμάτωσης του Αποθηκευτικού Μηχανισμού RocksDB ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ Γεωργία Μ. Κοκκίνου Εργαστήριο Υπολογιστικών Συστημάτων Αθήνα, Μάρτιος 2018 ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ Βελτιστοποίηση Επίδοσης Εγγραφών στο Κατανεμημένο Σύστημα Αποθήκευσης Κλειδιού-Τιμής etcd μέσω Ενσωμάτωσης του Αποθηκευτικού Μηχανισμού RocksDB ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ Γεωργία Μ. Κοκκίνου Επιβλέπων Καθηγητής: Νεκτάριος Κοζύρης Καθηγητής ΕΜΠ Εγκρίθηκε από την τριμελή εξεταστική επιτροπή την 8η Μαρτίου 2018. :::::::::::: :::::::::::: :::::::::::: Νεκτάριος Κοζύρης Νικόλαος Παπασπύρου Γεώργιος Γκούμας Καθηγητής ΕΜΠ Αν. Καθηγητής ΕΜΠ Επ. Καθηγητής ΕΜΠ Εργαστήριο Υπολογιστικών Συστημάτων Αθήνα, Μάρτιος 2018 N T U A S E C E D C S Optimizing Write Performance in the etcd Distributed Key-Value Store via Integration of the RocksDB Storage Engine DIPLOMA THESIS Georgia M. Kokkinou Computing Systems Laboratory Athens, March 2018 :::::::::::: Γεωργία Μ. Κοκκίνου Ηλεκτρολόγος Μηχανικός και Μηχανικός Υπολογιστών ΕΜΠ Copyright © Γεωργία Μ. Κοκκίνου, 2018 Με επιφύλαξη παντός δικαιώματος. All rights reserved. Απαγορεύεται η αντιγραφή, αποθήκευση και διανομή της παρούσας εργασίας, εξ ολοκλήρου ή τμήματος αυτής, για εμπορικό σκοπό. Επιτρέπεται η ανατύπωση, αποθήκευση και διανομή για σκοπό μη κερδοσκοπικό, εκπαιδευτικής ή ερευνητικής φύσης, υπό την προϋπόθεση να αναφέ- ρεται η πηγή προέλευσης και να διατηρείται το παρόν μήνυμα. Ερωτήματα που αφορούν τη χρήση της εργασίας για κερδοσκοπικό σκοπό πρέπει να απευθύνονται προς την συγγραφέα. Οι απόψεις και τα συμπεράσματα που περιέχονται σε αυτό το έγγραφο εκφράζουν την συγ- γραφέα και δεν πρέπει να ερμηνευθεί ότι αντιπροσωπεύουν τις επίσημες θέσεις του Εθνικού Μετσόβιου Πολυτεχνείου. iii Περίληψη Ο etcd είναι ένα αξιόπιστο κατανεμημένο σύστημα αποθήκευσης κλειδιού-τιμής ανοι- χτού κώδικα. Σχεδιάστηκε πρωτίστως για αποθήκευση μεταδεδομένων και χρησιμο- ποιείται συνήθως για εντοπισμό υπηρεσιών, κοινόχρηστη ρύθμιση παραμέτρων και κατανεμημένα κλειδώματα. Ωστόσο, η υψηλή του διαθεσιμότητα, η απλότητα και οι αξιοσημείωτες επιδόσεις, σε συνδυασμό με το ότι υποστηρίζεται από μια μεγάλη και δραστήρια κοινότητα προγραμματιστών, τον καθιστούν ελκυστική επιλογή και για άλλα είδη εφαρμογών. Ο τρέχων αποθηκευτικός μηχανισμός του etcd είναι η BoltDB, μια ενσωματωμένη βάση δεδομένων που στηρίζεται στα Β+ δέντρα και είναι βελτι- στοποιημένη για αναγνώσεις. Στην εποχή των κατανεμημένων συστημάτων, υπάρ- χει ένα ευρύ φάσμα εφαρμογών με έμφαση στις εγγραφές που θα επωφελούνταν από έναν αξιόπιστο τρόπο αποθήκευσης δεδομένων σε μια συστοιχία υπολογιστών. Πα- ραδείγματα τέτοιων εφαρμογών αποτελούν οι διαδικτυακές υπηρεσίες αντιγράφων ασφαλείας, η συλλογή δεδομένων από αισθητήρες, οι εξυπηρετητές ηλεκτρονικού τα- χυδρομείου και οι ιστότοποι κοινωνικής δικτύωσης. Έτσι, σε αυτήν την εργασία σχε- διάζουμε και υλοποιούμε την αντικατάσταση της BoltDB με την RocksDB, μια υψηλών επιδόσεων βάση δεδομένων που εσωτερικά χρησιμοποιεί ένα LSM-δέντρο, με σκοπό να βελτιστοποιήσουμε τον etcd για περιπτώσεις χρήσης συχνών εγγραφών. Αυτό το καταφέρνουμε αναπτύσσοντας ένα πακέτο κώδικα σε γλώσσα Go που μεταφράζει συναρτήσεις και έννοιες από την προγραμματιστική διεπαφή (API) της BoltDB στις αντίστοιχες της RocksDB, τροποποιώντας τον κώδικα του ίδιου του etcd μόνο στα σημεία που είναι απαραίτητο. Κατά τη διάρκεια της διαδικασίας αυτής, υλοποιούμε κάποιες δυνατότητες που δεν υπήρχαν ήδη στα εμπλεκόμενα προγράμματα, κάνο- ντας και τις αντίστοιχες συνεισφορές λογισμικού. Στη συνέχεια, επαληθεύουμε την ορθότητα και την ευρωστία της υλοποίησής μας, με χρήση της πλατφόρμας λειτουρ- γικού ελέγχου του etcd μεταξύ άλλων εργαλείων. Επιπλέον, δημιουργούμε μια συ- στοιχία εικονικών μηχανών σε περιβάλλον νέφους, ώστε να αξιολογήσουμε μέσω του ενσωματωμένου εργαλείου benchmark την επίδοση του etcd στην περίπτωση χρήσης της RocksDB ως αποθηκευτικό μηχανισμό και να την συγκρίνουμε με την επίδοση στην περίπτωση χρήσης της BoltDB. Έπειτα, εφαρμόζουμε σταδιακά κάποιες βελτι- στοποιήσεις, εξετάζουμε την επίδραση ενός συνόλου παραμέτρων στα αποτελέσματα, και σχολιάζουμε τα πλεονεκτήματα και μειονεκτήματα των δύο προσεγγίσεων. Τέλος, σκιαγραφούμε ιδέες για βελτίωση και περαιτέρω έρευνα πάνω στο θέμα. iv Λέξεις-Κλειδιά σύστημα αποθήκευσης κλειδιού-τιμής, κατανεμημένη αποθήκευση, μηχανισμός απο- θήκευσης, δομές δεδομένων, Β+ δέντρο, LSM-δέντρο, etcd, BoltDB, RocksDB v Abstract Etcd is an open-source, distributed key-value store with a focus on reliability. It was primarily designed to store metadata and is oen used for service discovery, shared configuration and distributed locking. However, its numerous good qualities, such as its high-availability, simplicity and notable performance, in conjunction with the fact that it is an actively maintained project backed by a large developer community, render it an attractive option for other usecases as well. Etcd currently uses BoltDB, a read- optimized persistence solution based on B+ trees, as its storage engine. In the era of distributed computing, there is a wide range of write-intensive applications that would benefit from having a reliable way to store data across a cluster of machines. Examples of such applications include cloud backup services, sensor data collection, mail servers and social media websites. To that end, in this thesis we design and implement the replacement of BoltDB with RocksDB, a high-performance embedded database that internally uses a log-structured merge-tree (LSM-tree), in order to optimize etcd for write-heavy workloads. We achieve this by developing a Go wrapper that maps BoltDB API functions and concepts to their RocksDB counterparts, modifying core etcd code only where necessary. During this process, we make soware contributions to some of the projects involved, implementing features that we needed but were missing. Fur- thermore, we verify the functionality and robustness of our implementation, using the functional test suite of etcd, among other tools. In addition, we set up a cluster of virtual machines on a cloud platform, in order to evaluate the performance of etcd with RocksDB as its storage engine using the built-in benchmark tool, and compare it to that of BoltDB-backed etcd. en, we gradually apply a number of optimizations upon our initial implementation, examine the impact of a set of parameters on the results, and comment on the trade-offs of both approaches. Finally, we suggest some improvements and outline directions for further investigation on this topic. Keywords key-value store, distributed storage, storage engine, data structures, B+ tree, LSM-tree, etcd, BoltDB, RocksDB vi Αντί Προλόγου Στο σημείο αυτό θα ήθελα να εκφράσω την ευγνωμοσύνη μου προς τους ανθρώπους που συνέδραμαν στην ολοκλήρωση αυτής της διπλωματικής εργασίας, αλλά και στην ευρύτερη ακαδημαϊκή μου πορεία. Αρχικά, θα ήθελα να ευχαριστήσω τον επιβλέπο- ντα καθηγητή μου κ. Νεκτάριο Κοζύρη, που μέσα από τις διαλέξεις του καλλιέργησε το ενδιαφέρον μου για τον τομέα των Υπολογιστικών Συστημάτων. Επίσης, ευχαρι- στώ θερμά τον διδάκτορα Βαγγέλη Κούκη για την εμπιστοσύνη που μου έδειξε, για τον μεταδοτικό ενθουσιασμό του και τις πολύτιμες γνώσεις που αποκόμισα κατά τη διάρκεια της εκπόνησης αυτής της εργασίας χάρη στη βοήθειά του. Ακόμη, θέλω να ευχαριστήσω τον Χρήστο Σταυρακάκη, που είναι και ο εμπνευστής του θέματος αυτής της διπλωματικής, για την ουσιαστική συμβολή του στην αντιμετώπιση τόσο τεχνικών όσο και θεωρητικών ζητημάτων, καθώς και τον συμφοιτητή μου Χρήστο Κατσακιώρη για τις ιδιαίτερα εποικοδομητικές συζητήσεις μας γύρω από το αντικείμενο των Κα- τανεμημένων Συστημάτων Αποθήκευσης. Επιπλέον, θέλω να εκφράσω την ευγνωμο- σύνη μου προς όσες και όσους υποστηρίζουν έμπρακτα την ελεύθερη και δωρεάν δια- κίνηση της γνώσης, αναφέροντας χαρακτηριστικά τους προγραμματιστές ελεύθερου λογισμικού. Τέλος, ευχαριστώ από καρδιάς την οικογένειά μου και τους αγαπημένους μου φίλους για τη στήριξη, την κατανόηση και την ανεκτίμητη συντροφιά τους. Γεωργία Κοκκίνου Μάρτιος 2018 vii viii Contents Περίληψη iii Abstract v Αντί Προλόγου vii List of figures xiii List of tables xiv Βελτιστοποίηση Εγγραφών στον etcd μέσω Ενσωμάτωσης της RocksDB 1 1 Εισαγωγή ................................. 1 1.1 Σκοπός & Κίνητρο ........................ 1 1.2 Υπάρχουσες Προσεγγίσεις ................... 2 2 Υπόβαθρο ................................. 3 2.1 Το Σύστημα Αποθήκευσης Κλειδιού-Τιμής etcd ........ 3 2.2 Ο Αποθηκευτικός Μηχανισμός BoltDB ............ 9 2.3 Ο Αποθηκευτικός Μηχανισμός RocksDB ........... 16 3 Σχεδιασμός ................................ 24 3.1 Αρχιτεκτονική & Σχεδιαστικές Επιλογές ............ 24 3.2 Αντιστοίχιση Εννοιών & Δομών ................ 29 4 Υλοποίηση ................................ 32 4.1 Η Βιβλιοθήκη Περιτύλιξης της RocksDB στην BoltDB .... 32 4.2 Τροποποιήσεις στον Κώδικα του etcd ............. 35 ix x 4.3 Βελτιστοποιήσεις ........................ 38 4.4 Εξωτερικές Συνεισφορές .................... 44 4.5 Έλεγχος Ορθότητας ....................... 45 5 Πειραματική Αξιολόγηση ........................ 47 5.1 Εργαλεία, Μεθοδολογία & Περιβάλλον ............ 47 5.2 Αποτελέσματα .......................... 48 6 Επίλογος ................................. 56 6.1 Συμπεράσματα .......................... 56 6.2 Μελλοντικές
Recommended publications
  • CADET: Computer Assisted Discovery Extraction and Translation
    CADET: Computer Assisted Discovery Extraction and Translation Benjamin Van Durme, Tom Lippincott, Kevin Duh, Deana Burchfield, Adam Poliak, Cash Costello, Tim Finin, Scott Miller, James Mayfield Philipp Koehn, Craig Harman, Dawn Lawrie, Chandler May, Max Thomas Annabelle Carrell, Julianne Chaloux, Tongfei Chen, Alex Comerford Mark Dredze, Benjamin Glass, Shudong Hao, Patrick Martin, Pushpendre Rastogi Rashmi Sankepally, Travis Wolfe, Ying-Ying Tran, Ted Zhang Human Language Technology Center of Excellence, Johns Hopkins University Abstract Computer Assisted Discovery Extraction and Translation (CADET) is a workbench for helping knowledge workers find, la- bel, and translate documents of interest. It combines a multitude of analytics together with a flexible environment for customiz- Figure 1: CADET concept ing the workflow for different users. This open-source framework allows for easy development of new research prototypes using a micro-service architecture based atop Docker and Apache Thrift.1 1 Introduction CADET is an integrated workbench for helping knowledge workers discover, extract, and translate Figure 2: Discovery user interface useful information. The user interface (Figure1) is based on a domain expert starting with a large information in structured form. To do so, she ex- collection of data, wishing to discover the subset ports the search results to our Extraction interface, that is most salient to their goals, and exporting where she can provide annotations to help train an the results to tools for either extraction of specific information extraction system. The Extraction in- information of interest or interactive translation. terface allows the user to label any text span using For example, imagine a humanitarian aid any schema, and also incorporates active learning worker with a large collection of social media to complement the discovery process in selecting messages obtained in the aftermath of a natural data to annotate.
    [Show full text]
  • Coleman-Coding-Freedom.Pdf
    Coding Freedom !" Coding Freedom THE ETHICS AND AESTHETICS OF HACKING !" E. GABRIELLA COLEMAN PRINCETON UNIVERSITY PRESS PRINCETON AND OXFORD Copyright © 2013 by Princeton University Press Creative Commons Attribution- NonCommercial- NoDerivs CC BY- NC- ND Requests for permission to modify material from this work should be sent to Permissions, Princeton University Press Published by Princeton University Press, 41 William Street, Princeton, New Jersey 08540 In the United Kingdom: Princeton University Press, 6 Oxford Street, Woodstock, Oxfordshire OX20 1TW press.princeton.edu All Rights Reserved At the time of writing of this book, the references to Internet Web sites (URLs) were accurate. Neither the author nor Princeton University Press is responsible for URLs that may have expired or changed since the manuscript was prepared. Library of Congress Cataloging-in-Publication Data Coleman, E. Gabriella, 1973– Coding freedom : the ethics and aesthetics of hacking / E. Gabriella Coleman. p. cm. Includes bibliographical references and index. ISBN 978-0-691-14460-3 (hbk. : alk. paper)—ISBN 978-0-691-14461-0 (pbk. : alk. paper) 1. Computer hackers. 2. Computer programmers. 3. Computer programming—Moral and ethical aspects. 4. Computer programming—Social aspects. 5. Intellectual freedom. I. Title. HD8039.D37C65 2012 174’.90051--dc23 2012031422 British Library Cataloging- in- Publication Data is available This book has been composed in Sabon Printed on acid- free paper. ∞ Printed in the United States of America 1 3 5 7 9 10 8 6 4 2 This book is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE !" We must be free not because we claim freedom, but because we practice it.
    [Show full text]
  • ATLAS Operational Monitoring Data Archival and Visualization
    EPJ Web of Conferences 245, 01020 (2020) https://doi.org/10.1051/epjconf/202024501020 CHEP 2019 ATLAS Operational Monitoring Data Archival and Visualiza- tion Igor Soloviev1;∗, Giuseppe Avolio2, Andrei Kazymov3, and Matei Vasile4 1University of California, Irvine, CA 92697-4575, US 2European Laboratory for Particle Physics, CERN, Geneva 23, CH-1211, Switzerland 3Joint Institute for Nuclear Research, JINR, Dubna, Russian Federation 4Horia Hulubei National Institute of Physics and Nuclear Engineering, Bucharest, Romania Abstract. The Information Service (IS) is an integral part of the Trigger and Data Acquisition (TDAQ) system of the ATLAS experiment at the Large Hadron Collider (LHC) at CERN. The IS allows online publication of opera- tional monitoring data, and it is used by all sub-systems and sub-detectors of the experiment to constantly monitor their hardware and software components including more than 25000 applications running on more than 3000 comput- ers. The Persistent Back-End for the ATLAS Information System (PBEAST) service stores all raw operational monitoring data for the lifetime of the ex- periment and provides programming and graphical interfaces to access them including Grafana dashboards and notebooks based on the CERN SWAN plat- form. During the ATLAS data taking sessions (for the full LHC Run 2 period) PBEAST acquired data at an average information update rate of 200 kHz and stored 20 TB of highly compacted and compressed data per year. This paper reports how over six years PBEAST became an essential piece of the experi- ment operations including details of the challenging requirements, the failures and successes of the various attempted implementations, the new types of mon- itoring data and the results of the time-series database technology evaluations for the improvements towards LHC Run 3.
    [Show full text]
  • Presto: the Definitive Guide
    Presto The Definitive Guide SQL at Any Scale, on Any Storage, in Any Environment Compliments of Matt Fuller, Manfred Moser & Martin Traverso Virtual Book Tour Starburst presents Presto: The Definitive Guide Register Now! Starburst is hosting a virtual book tour series where attendees will: Meet the authors: • Meet the authors from the comfort of your own home Matt Fuller • Meet the Presto creators and participate in an Ask Me Anything (AMA) session with the book Manfred Moser authors + Presto creators • Meet special guest speakers from Martin your favorite podcasts who will Traverso moderate the AMA Register here to save your spot. Praise for Presto: The Definitive Guide This book provides a great introduction to Presto and teaches you everything you need to know to start your successful usage of Presto. —Dain Sundstrom and David Phillips, Creators of the Presto Projects and Founders of the Presto Software Foundation Presto plays a key role in enabling analysis at Pinterest. This book covers the Presto essentials, from use cases through how to run Presto at massive scale. —Ashish Kumar Singh, Tech Lead, Bigdata Query Processing Platform, Pinterest Presto has set the bar in both community-building and technical excellence for lightning- fast analytical processing on stored data in modern cloud architectures. This book is a must-read for companies looking to modernize their analytics stack. —Jay Kreps, Cocreator of Apache Kafka, Cofounder and CEO of Confluent Presto has saved us all—both in academia and industry—countless hours of work, allowing us all to avoid having to write code to manage distributed query processing.
    [Show full text]
  • Elmulating Javascript
    Linköping University | Department of Computer science Master thesis | Computer science Spring term 2016-07-01 | LIU-IDA/LITH-EX-A—16/042--SE Elmulating JavaScript Nils Eriksson & Christofer Ärleryd Tutor, Anders Fröberg Examinator, Erik Berglund Linköpings universitet SE–581 83 Linköping +46 13 28 10 00 , www.liu.se Abstract Functional programming has long been used in academia, but has historically seen little light in industry, where imperative programming languages have been dominating. This is quickly changing in web development, where the functional paradigm is increas- ingly being adopted. While programming languages on other platforms than the web are constantly compet- ing, in a sort of survival of the fittest environment, on the web the platform is determined by the browsers which today only support JavaScript. JavaScript which was made in 10 days is not well suited for building large applications. A popular approach to cope with this is to write the application in another language and then compile the code to JavaScript. Today this is possible to do in a number of established languages such as Java, Clojure, Ruby etc. but also a number of special purpose language has been created. These are lan- guages that are made for building front-end web applications. One such language is Elm which embraces the principles of functional programming. In many real life situation Elm might not be possible to use, so in this report we are going to look at how to bring the benefits seen in Elm to JavaScript. Acknowledgments We would like to thank Jörgen Svensson for the amazing support thru this journey.
    [Show full text]
  • CS252: Systems Programming
    CS252: Systems Programming Gustavo Rodriguez-Rivera Computer Science Department Purdue University General Information Web Page: http://www.cs.purdue.edu/homes/cs252 Office: LWSN1210 E-mail: [email protected] Textbook: Book Online: “Introduction to Systems Programming: a Hands-on Approach” https://www.cs.purdue.edu/homes/grr/SystemsProgrammingBook/ Recommended: Advanced Programming in the UNIX Environment by W. Richard Stevens. (Useful for the shell. Good as a reference book.) Mailing List We will use piazza PSOs There is lab the first week. The projects will be explained in the labs. TAs office hours will be posted in the web page. Grading Grade allocation Midterm: 25% Final: 25% Projects and Homework: 40% Attendance 10% Exams also include questions about the projects. Course Organization 1. Address space. Structure of a Program. Text, Data, BSS, Stack Segments. 2. Review of Pointers, double pointers, pointers to functions 3. Use of an IDE and debugger to program in C and C++. 4. Executable File Formats. ELF, COFF, a.out. Course Organization 5. Development Cycle, Compiling, Assembling, Linking. Static Libraries 6.Loading a program, Runtime Linker, Shared Libraries. 7. Scripting Languages. sh, bash, basic UNIX commands. 8. File creation, read, write, close, file mode, IO redirection, pipes, Fork, wait, waitpid, signals, Directories, creating, directory list Course Organization 9. Project: Writing your own shell. 10. Programming with Threads, thread creation. 11. Race Conditions, Mutex locks. 12. Socket Programming. Iterative and concurrent servers. 13. Memory allocation. Problems with memory allocation. Memory Leaks, Premature Frees, Memory Smashing, Double Frees. Course Organization 14. Introduction to SQL 15. Source Control Systems (CVS, SVN) and distributed (GIT, Mercurial) 16.
    [Show full text]
  • INSTAGRAM ENGAGEMENT REPORT What Your Company Needs to Know for 2020
    INSTAGRAM ENGAGEMENT REPORT What Your Company Needs to Know for 2020 1 Intro 3 Table of Report Highlights 5 Contents Instagram Engagement 6 Hashtags 13 Tagging 20 Community 27 Influencers 31 Location 37 Captions 41 Time 44 Instagram Stories 47 More Statistics 52 2 Instagram at a Glance With over 1 billion monthly active users, 25+ million All of this means two key things: business accounts, and a projected 14 billion USD in revenue, Instagram has come a long way from a little 1 Instagram is constantly reinventing itself photo-sharing app. What started as a humble social network grew into 2 Brands nowadays can’t afford not to be on one of the most robust business platforms - helping Instagram - if they want to capture a good brands cement a highly effective marketing channel percentage of the consumer population and breeding a new generation of innovative entrepreneurs. Instagram achieved incredible growth first and foremost by truly understanding what its users wanted. They also learned how to help brands and businesses grow quickly by developing features that helped them turn likes and interactions into tangible ROI. 3 No longer just for fashion and lifestyle brands, the platform can help you reach new, relevant audiences and grow your brand exponentially - whether you’re a B2B company or a non-profit organization. However, you’ll need to understand what the changing trends are and how they can impact your strategy. From which hashtags to include, to how long your caption should be, to what kind of influencer gets the highest engagement - businesses need to understand what will help them break through this increasingly competitive space.
    [Show full text]
  • How Hackers Think: a Mixed Method Study of Mental Models and Cognitive Patterns of High-Tech Wizards
    HOW HACKERS THINK: A MIXED METHOD STUDY OF MENTAL MODELS AND COGNITIVE PATTERNS OF HIGH-TECH WIZARDS by TIMOTHY C. SUMMERS Submitted in partial fulfillment of the requirements For the degree of Doctor of Philosophy Dissertation Committee: Kalle Lyytinen, Ph.D., Case Western Reserve University (chair) Mark Turner, Ph.D., Case Western Reserve University Mikko Siponen, Ph.D., University of Jyväskylä James Gaskin, Ph.D., Brigham Young University Weatherhead School of Management Designing Sustainable Systems CASE WESTERN RESERVE UNIVESITY May, 2015 CASE WESTERN RESERVE UNIVERSITY SCHOOL OF GRADUATE STUDIES We hereby approve the thesis/dissertation of Timothy C. Summers candidate for the Doctor of Philosophy degree*. (signed) Kalle Lyytinen (chair of the committee) Mark Turner Mikko Siponen James Gaskin (date) February 17, 2015 *We also certify that written approval has been obtained for any proprietary material contained therein. © Copyright by Timothy C. Summers, 2014 All Rights Reserved Dedication I am honored to dedicate this thesis to my parents, Dr. Gloria D. Frelix and Dr. Timothy Summers, who introduced me to excellence by example and practice. I am especially thankful to my mother for all of her relentless support. Thanks Mom. DISCLAIMER The views expressed in this dissertation are those of the author and do not reflect the official policy or position of the Department of Defense, the United States Government, or Booz Allen Hamilton. Table of Contents List of Tables ....................................................................................................................
    [Show full text]
  • Who Provides the Most Bang for the Buck? an Application-Benchmark Based Performance Analysis of Two Iaas Providers
    Master Thesis August 24, 2016 Who Provides the Most Bang for the Buck? An application-benchmark based performance analysis of two IaaS providers Christian Davatz of Samedan, Switzerland (10-719-243) supervised by Prof. Dr. Harald C. Gall Dr. Philipp Leitner software evolution & architecture lab Master Thesis Who Provides the Most Bang for the Buck? An application-benchmark based performance analysis of two IaaS providers Christian Davatz software evolution & architecture lab Master Thesis Author: Christian Davatz, [email protected] Project period: February - August, 2016 Software Evolution & Architecture Lab Department of Informatics, University of Zurich Acknowledgements I would like to thank Prof. Dr. Harald Gall for giving me the opportunity to write this Master The- sis at the Software Evolution and Architecture Lab at the University of Zurich and for providing funding to realize this thesis. My deepest gratitude goes to my advisor, Dr. Philipp Leitner. Thank you for all the valuable feedback during the meetings and also for the additional reviews in the end-phase of this thesis. Furthermore, I want to thank Dr. Christian Inzinger for introducing me to the topic of cloud benchmarking and the insightful inputs during the meetings. Moreover, I would like to thank Joel Scheuner who helped me a lot with technical issues related to Cloud Workbench. I am really grateful for the productive work-atmosphere and the excellent workplace in the ICU-Lounge, which would not have been the same without the helpful inputs of David Gallati and Michael Weiss. Also, many thanks go to all other ICU fellows for the table-soccer games and the coffee and lunch breaks we had during the past six months.
    [Show full text]
  • Full Proposal Template
    World Bank Knowledge for Change Program – Full Proposal Template Basic Data: Title OpenStreetMap and the World Bank: teaching, learning, and improving Linked Project ID P161480 Product Line RA Applied Amount ($) 100 K Est. Project Period 01/01/2020 – 30/06/2021 Team Leader(s) Benjamin P. Stewart Managing Unit DECAT Contributing unit(s) Funding Window Innovation in Data Production, Analysis and Dissemination Regions/Countries World General: 1. What is the Development Objective (or main objective) of this Grant? Data are increasingly important to how World Bank staff plan, design, implement, and monitor projects. Despite this, WB staff are often poor stewards of global public repositories of information, an issue which should be addressed. Spatial data on roads, settlements, buildings, population density, etc are fundamental to all development projects. The World Bank’s Geospatial Operational Support Team (GOST) is mandated to improve the WB’s efforts to systematically collect and maintain these data. GOST aims to do this by also encouraging and supporting our clients in the design, collection, and maintenance of such data; this necessitates a globally accessible and available repository. GOST, therefore proposes adopting OpenStreetMap (OSM) as our official repository for road features, building footprints, settlements, and other OSM appropriate features. We further propose that we invest in a sustainable means of improving the OSM, of leveraging OSM, and of teaching OSM to World Bank staff and clients. While OSM is a global public good by itself, there are inherent biases in the coverage, completeness, and accuracy of the repository; biases of which we are not currently aware. We hypothesize that the OSM repository will be less complete in rural areas of high poverty (Anderson et al 2019).
    [Show full text]
  • UC Berkeley Jupyterhubs Documentation
    UC Berkeley JupyterHubs Documentation Division of Data Sciences Technical Staff Sep 30, 2021 CONTENTS 1 Using DataHub 3 1.1 Using DataHub..............................................3 2 Modifying DataHub to fit your needs 13 2.1 Contributing to DataHub......................................... 13 i ii UC Berkeley JupyterHubs Documentation This repository contains configuration and documentation for the many JupyterHubs used by various organizations in UC Berkeley. CONTENTS 1 UC Berkeley JupyterHubs Documentation 2 CONTENTS CHAPTER ONE USING DATAHUB 1.1 Using DataHub 1.1.1 Services Offered This page lists the various services we offer as part of DataHub. Not all these will be available on all hubs, butwecan easily enable them as you wish. User Interfaces Our diverse user population has diverse needs, so we offer many different user interfaces for instructors to choose from. Jupyter Notebook (Classic) What many people mean when they say ‘Jupyter’, this familiar interface is used by default for most of our introductory classes. Document oriented, no-frills, and well known by a lot of people. 3 UC Berkeley JupyterHubs Documentation RStudio We want to provide first class support for teaching with R, which means providing strong support for RStudio. This includes Shiny support. Try without berkeley.edu account: Try with berkeley.edu account: R DataHub 4 Chapter 1. Using DataHub UC Berkeley JupyterHubs Documentation JupyterLab JupyterLab is a more modern version of the classic Jupyter notebook from the Jupyter project. It is more customizable and better supports some advanced use cases. Many of our more advanced classes use this, and we might help all classes move to this once there is a simpler document oriented mode available 1.1.
    [Show full text]
  • Breakfast at Buck's
    Breakfast at Buck’s: Informality, Intimacy, and Innovation in Silicon Valley by Steven Shapin* ABSTRACT This is a study of some connections between eating-together and knowing-together. Silicon Valley technoscientific innovation typically involves a coming-together of entrepreneurs (having an idea) and venture capitalists (having private capital to turn the idea into commercial reality). Attention is directed here to a well-publicized type of face-to-face meeting that may occur early in relationships between VCs and en- trepreneurs. The specific case treated here is a large number of breakfast meetings occurring over the past twenty-five years or so at a modest restaurant called Buck’s in Woodside, California. Why is it this restaurant? What is it about Buck’s that draws these people? What happens at these meals? And why is it breakfast (as opposed to other sorts of meals)? This article goes on to discuss historical changes in the patterns of daily meals and accompanying changes in the modes of interaction that happen at mealtimes. Breakfast at Buck’s may be a small thing, but its consideration is a way of understanding some quotidian processes of late modern innovation, and it offers a possible model for further inquiries into eating and knowing. I hate people who are not serious about meals. It is so shallow of them. — Oscar Wilde EATING AND KNOWING We take on so much as we take on food—culture as well as calories, knowledge as well as nutrients. Histories of the food sciences, or histories of the relationships be- tween food and scientific knowledge, have typically been concerned with the constit- uents and powers of foods, with their fate in the body and their benefits and risks to the body.
    [Show full text]