EECS 498 Introduction to Distributed Systems Fall 2017

Slides:



Advertisements
Similar presentations
COMP 110 Introduction to Programming Tabitha Peck M.S. January 9, 2008 MWF 3-3:50 pm Philips 367.
Advertisements

Welcome to MAT 170. Basic Course Information Instructor Office Office Hours Beth Jones PSA 725 Wednesday and Friday 10:40 am – 11:30 am and by appointment.
The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL Adrian Ilie COMP 14 Introduction to Programming Adrian Ilie Summer Session II, 2005 MTWRF 9:45-11:15 am.
Computer Science 162 Section 1 CS162 Teaching Staff.
COMP 14 Introduction to Programming Miguel A. Otaduy Summer Session I, 2004 MTWRF 9:45-11:15 am Sitterson Hall 014.
COMP 110 Introduction to Programming Mr. Joshua Stough August 22, 2007 Monday/Wednesday/Friday 3:00-4:15 Gardner Hall 307.
CS 153 Design of Operating Systems Spring 2015 Lecture 1: Course Introduction Instructor: Zhiyun Qian Slides modified from Harsha Madhyvasta and Nael Abu-Ghazaleh.
COMP 14 – 02: Introduction to Programming Andrew Leaver-Fay August 31, 2005 Monday/Wednesday 3-4:15 pm Peabody 217 Friday 3-3:50pm Peabody 217.
Copyright © Clifford Neuman - UNIVERSITY OF SOUTHERN CALIFORNIA - INFORMATION SCIENCES INSTITUTE Distributed Systems Shahab Baqai Lahore University.
Introduction. Readings r Van Steen and Tanenbaum: 5.1 r Coulouris: 10.3.
COMP Introduction to Programming Yi Hong May 13, 2015.
2 September Statistics for Behavioral Scientists Psychology W1610x.
Computer Networks CEN 5501C Spring, 2008 Ye Xia (Pronounced as “Yeh Siah”)
Distributed systems [Fall 2014] G Lec 1: Course Introduction.
Distributed Systems and Security: An Introduction Brad Karp UCL Computer Science CS GZ03 / M th September, 2008.
Catie Welsh January 10, 2011 MWF 1-1:50 pm Sitterson 014.
CSCI 51 Introduction to Computer Science Dr. Joshua Stough January 20, 2009.
Introduction. Readings r Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 3 m Note: All figures from this book.
Course Information Sarah Diesburg Operating Systems COP 4610.
IST 210: Organization of Data
 Course Overview Distributed Systems IT332. Course Description  The course introduces the main principles underlying distributed systems: processes,
Distributed systems [Fall 2015] G Lec 1: Course Introduction.
Copyright ©: Nahrstedt, Angrave, Abdelzaher1 University of Illinois at Urbana-Champaign Welcome to CS 241 Systems Programming University of Illinois at.
Lecture 4 Page 1 CS 111 Online Modularity and Virtualization CS 111 On-Line MS Program Operating Systems Peter Reiher.
CS 425/ECE 428 Distributed Systems Nitin Vaidya. T.A.s – Persia Aziz – Frederick Douglas – Su Du – Yixiao Lin.
IST 210: ORGANIZATION OF DATA Introduction IST210 1.
Copyright ©: Nahrstedt, Angrave, Abdelzaher, Caccamo1 University of Illinois at Urbana-Champaign Welcome to CS 241 Systems Programming University of Illinois.
Class Introduction IST 210: Organization of Data IST2101.
COMPSCI 110 Operating Systems
Computer Network Fundamentals CNT4007C
CT1503 Network Operating System
CS 3700 Networks and Distributed Systems
Building Distributed Educational Applications using P2P
Computer Networks CNT5106C
Distributed Systems CS
Course Information Mark Stanovich Principles of Operating Systems
September 27 – Course introductions; Adts; Stacks and Queues
CPSC 441: Computer Communications
Operating Systems: Principles and Practice Cpr E 308
EECS 498 Introduction to Distributed Systems Fall 2017
Advanced Operating Systems
Computer Networks CNT5106C
Course Overview - Database Systems
Andy Wang Operating Systems COP 4610 / CGS 5765
EECS 498 Introduction to Distributed Systems Fall 2017
CS 3700 Networks and Distributed Systems
EECE 310 Software Engineering
EECS 498 Introduction to Distributed Systems Fall 2017
Andy Wang Operating Systems COP 4610 / CGS 5765
EECS 498 Introduction to Distributed Systems Fall 2017
Distributed systems [Fall 2016] G Jinyang Li
Andy Wang Operating Systems COP 4610 / CGS 5765
Andy Wang Operating Systems COP 4610 / CGS 5765
EEC 688/788 Secure and Dependable Computing
EECS 498 Introduction to Distributed Systems Fall 2017
Systems Programming University of Ilam
EEC 688/788 Secure and Dependable Computing
EECS 498 Introduction to Distributed Systems Fall 2017
Operating Systems: Principles and Practice Cpr E 308
Andy Wang Operating Systems COP 4610 / CGS 5765
EEC 688/788 Secure and Dependable Computing
EEC 688/788 Secure and Dependable Computing
Distributed Systems CS
EEC 688/788 Secure and Dependable Computing
Computer Networks CNT5106C
EEC 688/788 Secure and Dependable Computing
Andy Wang Operating Systems COP 4610 / CGS 5765
Lecture 1a- Introduction
Sarah Diesburg Operating Systems CS 3430
CS 580u Programming Systems and Tools
Presentation transcript:

EECS 498 Introduction to Distributed Systems Fall 2017 Harsha V. Madhyastha

What is a Distributed System? Multiple interconnected computers that cooperate to provide some service Network September 6, 2017 EECS 498 – Lecture 1

Agenda for Today Why study distributed systems? Course syllabus and logistics September 6, 2017 EECS 498 – Lecture 1

Why study distributed systems? Ubiquitous September 6, 2017 EECS 498 – Lecture 1

Example Scenario Consider user issuing search query to Google Google’s objectives in serving query? Resilience to failures Low latency Most relevant results Discuss: What distributed systems necessary to achieve these goals? September 6, 2017 EECS 498 – Lecture 1

Google in 1997 September 6, 2017 EECS 498 – Lecture 1

Geo-Distributed Services September 6, 2017 EECS 498 – Lecture 1

Data Centers Spread services and data storage/processing across 100s of thousands of machines September 6, 2017 EECS 498 – Lecture 1

September 6, 2017 EECS 498 – Lecture 1

September 6, 2017 EECS 498 – Lecture 1

Other Distributed Systems Internet Data center network Domain Name System OS for multi-core processors September 6, 2017 EECS 498 – Lecture 1

Why Distributed Systems? Conquer geographic separation Facebook and Google customers span the planet Build reliable systems with unreliable components Aggregate systems for higher capacity CPU cycles, memory, disks, network bandwidth Cost grows non-linearly Customize computers for specific tasks Example: cache server, speech-to-text conversion server September 6, 2017 EECS 498 – Lecture 1

Why study distributed systems? Ubiquitous Hard to develop and reason about September 6, 2017 EECS 498 – Lecture 1

Jeff Dean “Facts” September 6, 2017 EECS 498 – Lecture 1

Challenge 1: Partial failures “A distributed system is one where you can’t get your work done because some machine you’ve never heard of is broken.” – Leslie Lamport September 6, 2017 EECS 498 – Lecture 1

Facebook’s Pineville Data Center Contents (approx.): 200K+ servers 500K+ disks 10K network switches 300K+ network cables At any instant, likelihood that all components correctly functioning? Personal anecdote: Tritonsort September 6, 2017 EECS 498 – Lecture 1

Challenge 2: Ambiguous failures If a server doesn’t reply, how to tell if The server has failed The network is down Neither; they are both just slow Makes failure detection hard September 6, 2017 EECS 498 – Lecture 1

Challenge 3: Concurrency Why not partition users across machines? Shared State September 6, 2017 EECS 498 – Lecture 1

Challenge 3: Concurrency How to ensure consistency of distributed state in the face of concurrent operations? Use mutex, cv, semaphore, etc.? Need to synchronize based on unreliable messages September 6, 2017 EECS 498 – Lecture 1

Other Challenges Performance at scale Testing Example: Amazon redesigns software services for every order of magnitude change in scale Testing Nearly impossible to test/reproduce every possible scenario Cannot test at production scale September 6, 2017 EECS 498 – Lecture 1

Objectives of this class Unify several machines from app perspective Enable concurrent use, hide failures Do “heavy lifting” so developers don’t need to Applications September 6, 2017 EECS 498 – Lecture 1

Give every application illusion of running on its own machine Contrast with EECS 482 Give every application illusion of running on its own machine App1 App2 App3 September 6, 2017 EECS 498 – Lecture 1

Distributed systems classes EECS 591: Study several instances of distributed systems and look for common principles This class: Study basic principles and examine case studies to understand how they are applied September 6, 2017 EECS 498 – Lecture 1

Class topics Before mid-term: After mid-term: How to maintain consistency of replicated state in the face of: Failures Concurrency After mid-term: Scaling up deployments Case studies September 6, 2017 EECS 498 – Lecture 1

Class outcomes Be able to reason about uncertainty Be able to identify properties offered by a system When will the system work well? When will the system break down? September 6, 2017 EECS 498 – Lecture 1

Class Material Class webpage https://lamport.eecs.umich.edu Also linked from Canvas Syllabus, lecture slides, homeworks, and projects will be posted on class webpage Subscribe yourself to Piazza Announcements and class discussion September 6, 2017 EECS 498 – Lecture 1

Discussion Sections Will be used in three ways: Explanation of project specs Recap of lecture material Discuss questions to help confirm understanding of lecture material Okay to attend either section September 6, 2017 EECS 498 – Lecture 1

Projects 4 projects First one individually, others in groups of 2 MapReduce master Primary backup replication Paxos Scaling via sharding First one individually, others in groups of 2 Declare your group (by 9/20) via course web page Post to Piazza if you don’t know anyone We’ll assign private github repositories September 6, 2017 EECS 498 – Lecture 1

Project recommendations Choose group partner carefully We’ll evaluate every member’s contributions Peer feedback git log and github statistics Monitor and participate in discussion on Piazza Attend discussion sections on Fridays Think carefully before you code! September 6, 2017 EECS 498 – Lecture 1

Differences versus 482 Program in Go Most of the test cases included in handout Run locally as set of processes exchanging RPCs You need to understand test cases to debug Exams are (probably) harder September 6, 2017 EECS 498 – Lecture 1

Policies Submission Collaboration 1 submission per day + 3 bonus submissions Due at midnight on deadline 3 late days across all projects Collaboration Okay to clarify problem or discuss Go syntax Not okay to discuss solutions September 6, 2017 EECS 498 – Lecture 1

Exams Midterm: October 23rd (6:30-8:30 pm) Final: December 15th (1:30-3:30 pm) No makeup exams Unless dire circumstances Make sure you schedule interviews appropriately September 6, 2017 EECS 498 – Lecture 1

Grading breakdown Projects: Mid-term and final exams: 25% each Projects 2, 3, and 4: 15% each Mid-term and final exams: 25% each September 6, 2017 EECS 498 – Lecture 1

Recipe for success Start early on projects Make sure to attend lectures and discussions Ask questions when something is unclear Take advantage of available help Go to office hours, post/monitor questions on Piazza September 6, 2017 EECS 498 – Lecture 1

Setting expectations Second offering of class Expect a hiccup or two! September 6, 2017 EECS 498 – Lecture 1

TODOs Learn Go Subscribe to discussion forum on Piazza Tutorial on Go at discussion section on Friday Subscribe to discussion forum on Piazza Find partner for project group September 6, 2017 EECS 498 – Lecture 1