advanced distributed systems introduction rfc 677 wyatt
play

Advanced Distributed Systems Introduction & RFC #677 Wyatt - PowerPoint PPT Presentation

Advanced Distributed Systems Introduction & RFC #677 Wyatt Lloyd Some slides adapted from Minlan Yu Welcome! Rules No laptops, no phones: pay attention! Sit towards the front: participate! Today


  1. � � � Advanced Distributed Systems � Introduction & RFC #677 Wyatt Lloyd � Some slides adapted from Minlan Yu �

  2. Welcome!

  3. � Rules • No laptops, no phones: pay attention! � • Sit towards the front: participate! �

  4. Today • Me � • My research � • Distributed systems, what and why? � • Topic overview � • Class structure � • Vishal Mishra colloquium �

  5. Introducing Me • Wyatt Lloyd � – Please call me Wyatt � – Phonetically “why” “it” � • New Assistant Professor � – Started Fall 2014 � – First class! � • Penn State à Princeton à Facebook à USC � – Pennsylvania à New Jersey à New York à LA �

  6. � My Research • Distributed Systems! � • 1: Geo-replicated storage � – Mar 24: COPS, Eiger � – Mar 31: Rococo � • 2: Improving photo storage and delivery (at FB) � – April 23: FB Photo Caching, f4, RIPQ �

  7. Distributed Systems, What? 1) Multiple computers � 2) Connected by a network � 3) Doing something together �

  8. Distributed Systems, Why? • Or, why not 1 computer to rule them all? � • Failure � • Limited computation/storage/… � • Physical location �

  9. Topic Overview • Introduction to Distributed Systems � – Building systems � – MapReduce, a case study � – Logical time � • Ordering events in distributed systems � • Turing Award! � – Safety/Liveness � • Safety: Don’t break stuff � • Liveness: Keeping doing stuff �

  10. Fault Tolerance • Local fault tolerance � – Or, restarting a machine breaks everything � • Distributed fault tolerance � – What if you can’t restart? � – What if you want to do stuff while restarting? � • Byzantine fault tolerance � – What if computers are evil? �

  11. Group Communication • Impossibility of consensus (FLP) � – You’ll never agree! � • Atomic commit � – Either we all do it or no one does � • Fancier group communication � – Atomic broadcast, atomic multicast, … �

  12. Consensus • It’s not impossible, but it’s hard! � – Paxos � – Viewstamped Replication � – Two Turing Awards! � • We’re going to talk about Paxos a lot �

  13. Consistency and Transactions • Strong consistency � – The data is the same everywhere � • Weak consistency � – The data *isn’t* the same everywhere, but the systems are faster and/or cheaper � • Transactions � – Updating/reading lots of data together � • Distributed Transactions � – That data is on different machines �

  14. Distribute Everything • Distributed Logs � • Distributed File Systems � • Distributed Debugging � • Distributed Hash Tables � • Peer-to-peer Systems �

  15. Modern Marvels • Google stack day � – Google is awesome (and publishes) � • Facebook stack day � – Facebook is awesome (and publishes) � • Pushing systems to their limits � – Academics are awesome �

  16. Probably! • I will likely move stuff around � • I might even remove/add topics � • Email/chat with me if you think there is a topic I’m missing J �

  17. Class Structure • Classes � • Paper Readings � • Paper Summaries � • Paper Presentations � • Programming Projects � • Exams �

  18. Classes • Normal + Seminar � • 50 min � lecture � • 5 min � break � • 20 min � supplemental presentations � • 30 min � paper discussion � • Colloquium afterwards sometimes � – Vishal Mishra colloquium today, but at 4 �

  19. Paper Reading • One paper per class required � – Must read before class � • Multiple paper per class supplemental � – Do not have to read � – Other students will present � – Recommended by me � • Paper available on HotCRP site �

  20. You Spend a Lot of Time Reading • Reading papers for grad classes (like this one!) � • Reviewing papers for conferences � • Giving colleagues feedback on their papers � • Keeping up with work related to your research � • Staying broadly educated about the field � • Transitioning into a new research area � • Learning how to write better papers J • So, it is worthwhile to lear So, it is worthwhile to learn to r n to read ead effectively effectively �

  21. � Keshav’s 3-Pass Approach: Pass 1 • A ten-minute scan to get the general idea � – Title, abstract, and introduction � – Headings � – Conclusion � – Bibliography � • What to learn: the five C’s � – Category: What type of paper is it? � – Context: What body of work does it relate to? � – Correctness: Do the assumptions seem valid? � – Contributions: What are the main research contributions? � – Clarity: Is the paper well written? �

  22. Keshav’s 3-Pass Approach: Pass 2 • A more careful, one-hour reading � – Read with greater care, but ignore details like proofs � – Figures, diagrams, and illustrations � – Mark relevant references for later reading � • Grasp the content of the paper � – Be able to summarize the main thrust to others � – Identify whether you can/should fully understand � • Decide whether to � – Abandon reading the paper in any greater depth � – Read background material before proceeding further � – Persevere and continue on to the third pass �

  23. � Keshav’s 3-Pass Approach: Pass 3 • Several-hour virtual re-implementation of the work � – Making the same assumptions, recreate the work � – Identify the paper’s innovations and its failings � – Identify and challenge every assumption � – Think how you would present the ideas yourself � – Jot down ideas for future work � • When should you read this carefully? � – Reviewing for a conference or journal � – Giving colleagues feedback on a paper � – Understand a paper closely related to your research �

  24. Paper Summaries • What problem the paper is addressing (1-2 sentences). � • The core novel ideas or technical contributions � – What's the 30 second elevator pitch � – What should one remember about this paper? � • A longer description (3-5 sentences) that summarizes the paper's approach, mechanisms, and findings. � – Longer for supplemental papers (3-5 paragraphs) � • A novel response… �

  25. Paper Summaries • Novel Response � – Issues with problem or assumptions? � – What problems do you see with methodology that the paper does not address? � • (Precision, accuracy, misconceptioon, representativeness) � – How would the results differ today? Why? � – What study should we do as followup work? � – Should we adapt the approach to a new setting? �

  26. � Paper Summaries • Submit via HotCRP � – http://nsl.cs.usc.edu/599s15reviews/ � • Required papers � – Due at 11:59pm night before class � • 14 hours before class � – Can submit up to 4 summaries up to 1 week late � • After this, get a 0 � • Supplemental papers you present � – Due at the same time as your initial presentation � – Will be viewable and a resource for the whole class �

  27. Paper Presentations • 5-7 minute presentations to the class � • You will be an expert on these papers! � • Expect to do 2-3 � – Currently 47 supplemental paper + 18 � • Due 1 week before the class � – Email me and Bailan the slides � • Format/details out soon � • Sign up sheet out soon �

  28. Programming Projects • In go! � – https://golang.org/ � – Do the tour: https://tour.golang.org/welcome/1 � – Play in the playground: https://play.golang.org/ � • This is useful place to test code snippets as you work on your projects � – Watch Rob Pike’s concurrency talk: http://youtu.be/f6kdp27TYZs � • Why go? � – Cool new elegant language! � • Especially concurrency, but syntax is clean too � – Amount of time to learn go < amount of time go will save you vs. C++ for just these projects! �

  29. 4 Programming Projects • 1: Local MapReduce + Go Intro � • 2: Primary/Backup Key/Value Service � – Add some fault tolerance � • 3: Paxos-based Key/Value Service � – Add real fault tolerance � • 4: Sharded Key/Value Service � – Add scalability �

  30. 7 Programming Project Deadlines • All on Fridays at 11:59pm � • 1 � Jan 30 � • 2a � Feb 13 � • 2b � Feb 20 � • 3a � Mar 6 � • 3b � Mar 13 � • 4a � Apr 3 � • 4b � Apr 10 �

  31. � Submit/Develop with Git • Distributed Version Control System � – Use to track your changes � – Makes it easy to go back to old versions � • “Shoot, X used to work …” � – Makes it easy to collaborate � • You won’t use this though � – You will use it to track your time in these projects � • Not an intended use… � • Check out the docs: http://git-scm.com/ � • Learn git in 15 minutes: https://try.github.io/ �

  32. Rules • No collaboration on assignments: learn! � – Do not share any code with other students � – Do not post your code anywhere � – Write all of your own code � – Do not write psuedo-code on a whiteboard with other students � – Default to asking me if you’re not sure if something is okay � – (We will run anti-cheating software) �

  33. 2 Exams • In Class � – Feb 26 � – Apr 30 (last class) � • Test material from: � – Lectures � – Required papers � – High level ideas from supplemental papers �

Recommend


More recommend