CSE 486/586, Spring 2013 CSE 486/586 Distributed Systems Introduction Steve Ko Computer Sciences and Engineering University at Buffalo.

Slides:



Advertisements
Similar presentations
CSE 486/586, Spring 2012 CSE 486/586 Distributed Systems Leader Election Steve Ko Computer Sciences and Engineering University at Buffalo.
Advertisements

CSE 486/586, Spring 2014 CSE 486/586 Distributed Systems Consistency Steve Ko Computer Sciences and Engineering University at Buffalo.
CSE 486/586, Spring 2013 CSE 486/586 Distributed Systems Byzantine Fault Tolerance Steve Ko Computer Sciences and Engineering University at Buffalo.
CSE 486/586, Spring 2012 CSE 486/586 Distributed Systems Byzantine Fault Tolerance Steve Ko Computer Sciences and Engineering University at Buffalo.
CSE 486/586, Spring 2012 CSE 486/586 Distributed Systems Transactions Steve Ko Computer Sciences and Engineering University at Buffalo.
CSE 486/586, Spring 2013 CSE 486/586 Distributed Systems Concurrency Control Steve Ko Computer Sciences and Engineering University at Buffalo.
CS 425 / ECE 428 Distributed Systems Fall 2014 Indranil Gupta (Indy) August 26 – December 9, 2014 Lecture 1-29 Web: courses.engr.illinois.edu/cs425/ All.
Intro to CIT 594
CSE 486/586, Spring 2012 CSE 486/586 Distributed Systems Introduction Steve Ko Computer Sciences and Engineering University at Buffalo.
CS4513 Distributed Computer Systems Mark Claypool.
CSE 486/586, Spring 2012 CSE 486/586 Distributed Systems Logical Time Steve Ko Computer Sciences and Engineering University at Buffalo.
Distributed Systems Lecture 1: Overview CS425/CSE424/ECE428 Fall 2011 Nikita Borisov.
Introduction. Readings r Van Steen and Tanenbaum: 5.1 r Coulouris: 10.3.
CSE 486/586 CSE 486/586 Distributed Systems Introduction Steve Ko Computer Sciences and Engineering University at Buffalo.
Introduction to DISTRIBUTED SYSTEMS Tran, Van Hoai Department of Systems & Networking Faculty of Computer Science & Engineering HCMC University of Technology.
CSE 486/586, Spring 2013 CSE 486/586 Distributed Systems Mid-Semester Overview Steve Ko Computer Sciences and Engineering University at Buffalo.
COMP Introduction to Programming Yi Hong May 13, 2015.
CS 3700 Networks and Distributed Systems Logistics (a.k.a. The boring slides) Revised 8/19/15.
1 Introduction to Operating Systems 9/16/2008 Lecture #1.
CSE 486/586, Spring 2014 CSE 486/586 Distributed Systems The Internet in 2 Hours: The First Hour Steve Ko Computer Sciences and Engineering University.
Distributed Systems II TDA297(CTH), DIT290 (GU) LP hec
Syllabus. Instructor Dr. Hanan Lutfiyya Middlesex College 418 Ext Office Hours: Tuesday from 12:05-1:05 and Thursday from 11:05-1:05.
Distributed Systems II TDA297(CTH), DIT290 (GU) LP hec
CSE 486/586, Spring 2012 CSE 486/586 Distributed Systems Mutual Exclusion Steve Ko Computer Sciences and Engineering University at Buffalo.
CSE 486/586 CSE 486/586 Distributed Systems Graph Processing Steve Ko Computer Sciences and Engineering University at Buffalo.
Introduction. Readings r Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 3 m Note: All figures from this book.
Distributed Systems II TDA297(CTH), INN290 (GU) LP hec
Course Information Sarah Diesburg Operating Systems COP 4610.
CSE 486/586, Spring 2013 CSE 486/586 Distributed Systems Wrap-up Steve Ko Computer Sciences and Engineering University at Buffalo.
L-1 Introduction 1. Today's Lecture Administrivia Example topics 2.
CSE 486/586, Spring 2012 CSE 486/586 Distributed Systems Wrap-up Steve Ko Computer Sciences and Engineering University at Buffalo.
Syllabus. Instructor Dr. Hanan Lutfiyya Middlesex College 418 Ext Office Hours: Wednesday 5-6; Thursdays 4-6 or by appointment.
CSE 486/586, Spring 2013 CSE 486/586 Distributed Systems Global States Steve Ko Computer Sciences and Engineering University at Buffalo.
 Course Overview Distributed Systems IT332. Course Description  The course introduces the main principles underlying distributed systems: processes,
Intro to CIT 594
CSE 486/586, Spring 2012 CSE 486/586 Distributed Systems Mutual Exclusion & Leader Election Steve Ko Computer Sciences and Engineering University.
CSCE 1030 Computer Science 1 First Day. Course Dr. Ryan Garlick Office: Research Park F201 B –Inside the Computer Science department.
COP4610/CGS5765 Operating Systems Syllabus. Instructor Xin Yuan Office: 168 LOV Office hours: W M F 9:10am – 10:00am, or by appointments.
CS 425 / ECE 428 Distributed Systems Fall 2015 Indranil Gupta (Indy) August 25 – December 8, 2015 Lecture 1-29 Web: courses.engr.illinois.edu/cs425/ All.
Cheating The School of Network Computing, the Faculty of Information Technology and Monash as a whole regard cheating as a serious offence. Where assignments.
CSE 486/586, Spring 2014 CSE 486/586 Distributed Systems Introduction Steve Ko Computer Sciences and Engineering University at Buffalo.
Lecture 29-1 Computer Science 425 Distributed Systems CS 425 / CSE 424 / ECE 428 Fall 2012 Indranil Gupta (Indy) August 27-December 11, 2012 Lecture 1-29.
CSE 486/586, Spring 2012 CSE 486/586 Distributed Systems Replication Steve Ko Computer Sciences and Engineering University at Buffalo.
CS 425/ECE 428 Distributed Systems Nitin Vaidya. T.A.s – Persia Aziz – Frederick Douglas – Su Du – Yixiao Lin.
CSE 486/586 CSE 486/586 Distributed Systems Global States Steve Ko Computer Sciences and Engineering University at Buffalo.
CSE 486/586, Spring 2012 CSE 486/586 Distributed Systems Paxos Steve Ko Computer Sciences and Engineering University at Buffalo.
CSE 486/586 CSE 486/586 Distributed Systems Leader Election Steve Ko Computer Sciences and Engineering University at Buffalo.
CSE 486/586, Spring 2013 CSE 486/586 Distributed Systems The Internet in 2 Hours: The First Hour Steve Ko Computer Sciences and Engineering University.
Distributed Systems Course Overview Simon Razniewski Faculty of Computer Science Free University of Bozen-Bolzano A.Y. 2015/2016.
Distributed Systems 0. Overview Simon Razniewski Faculty of Computer Science Free University of Bozen-Bolzano A.Y. 2014/2015.
CSE 486/586, Spring 2014 CSE 486/586 Distributed Systems Paxos Steve Ko Computer Sciences and Engineering University at Buffalo.
CSc 120 Introduction to Computer Programing II
CSE 489/589 Modern Networking Concepts
CSE 486/586 Distributed Systems Wrap-up
CPE741: Distributed Systems Course Introduction
CSE 486/586 Distributed Systems Mid-Semester Overview
CPE741: Distributed Systems Course Introduction
Course Information Mark Stanovich Principles of Operating Systems
CSE 486/586 Distributed Systems Wrap-up
CPE741: Distributed Systems Course Introduction
湖南大学-信息科学与工程学院-计算机与科学系
Web: courses.engr.illinois.edu/cs425/
CSE 486/586 Distributed Systems Leader Election
Web: courses.engr.illinois.edu/cs425/
CSE 486/586 Distributed Systems Wrap-up
CSE 486/586 Distributed Systems Introduction
Sarah Diesburg Operating Systems CS 3430
CSE 486/586 Distributed Systems Consistency --- 1
CSE 486/586 Distributed Systems Mid-Semester Overview
Presentation transcript:

CSE 486/586, Spring 2013 CSE 486/586 Distributed Systems Introduction Steve Ko Computer Sciences and Engineering University at Buffalo

CSE 486/586, Spring 2013 Welcome to CSE 486/586 Why do you want to take this course? Some positive feedback of this course… –“(CSE 486/586) didn't only helped with understanding the concepts involved, but have also always given me something cool and interesting to talk about in interviews.” –“I am actually learning new things.” Some negative feedback of this course… –“Projects are a bit too much on the difficult side.” –“The midterm came almost out of nowhere.” Are you ready? ;-) 2

CSE 486/586, Spring 2013 Building a Distributed System “The number of people who know how to build really solid distributed systems…is about ten” –Scott Shenker, Professor at UC Berkeley The point: it’s hard to build a solid distributed system. So, why is it hard?...but first of all… 3

CSE 486/586, Spring 2013 What is a Distributed System? 4

CSE 486/586, Spring 2013 What is a Distributed System? A distributed system is a collection of entities with a common goal, each of which is autonomous, programmable, asynchronous and failure-prone, and which communicate through an unreliable communication medium. This will be a working definition for us. 5

CSE 486/586, Spring 2013 Why Is It Hard to Build One? Scale: hundreds or thousands of machines –Google: 4K-machine MapReduce cluster –Yahoo!: 4K-machine Hadoop cluster –Akamai: 70K machines distributed over the world –Facebook: 60K machines providing the service –Hard enough to program one machine! Dynamism: machines do fail! –50 machine failures out of 20K machine cluster per day (reported by Yahoo!) –1 disk failure out of 16K disks every 6 hours (reported by Google) What else? –Concurrent execution, consistency, etc. 6

CSE 486/586, Spring 2013 OK; But Who Cares? This is where all the actions are! –What is the two biggest driving forces in the computing industry for the last 5 years? –It’s the cloud! –And smartphones! –They are distributed! Now --- it’s all about distributed systems! –Well…with a bit of exaggeration… ;-) 7

CSE 486/586, Spring 2013 OK, Cool; How Am I Going to Learn? Textbook –Main: Distributed Systems: Concepts and Design, 5 th Edition (Coulouris, Dollimore, Kindberg, Blair) –Optional: Distributed Systems: Principles and Paradigms, 2 nd Edition, (Tanenbaum, Van Steen) Prerequisites –Minimum: CSE 250 Data Structures and Algorithms –Ideal: Basic networking concepts (TCP/IP, routing), basic OS concepts (processes, threads, synchronization, file systems), systems programming (pthread, socket) Lectures (Non-graded) HW assignments Programming assignments Exams 8

CSE 486/586, Spring 2013 What Am I Going to Build? A “starter” project: project 0 A distributed key-value storage (based on Amazon Dynamo) on Android in 3 stages: project 1 ~ project 3 For each project, submit a solution/design document as well as code Individual submission 9

CSE 486/586, Spring 2013 Important Policies Late submission: 20% penalty per day Regrading –If requested, the entire work will be regraded No “I” No makeup exam No grade negotiation 10

CSE 486/586, Spring 2013 Academic Integrity Policies Academic integrity: exams, HW, and code –Copying others’ code: no –Copying from other sources (the Web, books, etc.): get permission –Exceptions: (copy freely, but mark clearly that you copied) – (generally OK to see how things get done; but do not copy and paste.) –If found, the incident will be reported to the university Will use an automatic similarity checker. –When similar submissions are found, both will get F for the entire semester. Please be careful when using an online code repository, e.g., GitHub, BitBucket, etc. 11

CSE 486/586, Spring 2013 How Can I Reach the Teaching Staff? Steve: 304 Davis –Lectures (MWF 3:00pm-3:50pm) –Office hours (MWF 4pm-5pm) TAs –(Tentative) Recitations: M (10:00 – 10:50) & F (2:00 – Baldy 106 –Office hours: generally 3 hours for each and every weekday will be covered. –Please do not expect that the TAs will stay more than 3 hours. Use Piazza ( instead of , mailing list, blog, etc. 12

CSE 486/586, Spring 2013 What Exactly Am I Going to Learn? Distributed Systems 10 Questions! Course goal: answering 10 questions on distributed systems –At the end of the semester, if you can answer only 10 questions about distributed systems, you’ll probably get an A. –Easy enough! What are those questions? –Organized in 6 themes –1~2 questions in each theme –A few (or several) lectures to answer each question 13

CSE 486/586, Spring 2013 What Exactly Am I Going to Learn? Introducing… Hydie! 14

CSE 486/586, Spring 2013 Theme 1: Hint 15 What’s up? Hey!

CSE 486/586, Spring 2013 Theme 1: Communications Q1: how do you talk to another machine? –Networking basics Q2: how do you talk to multiple machines at once? –Multicast Q3: can you call a function/method/procedure running in another machine? –RPC 16

CSE 486/586, Spring 2013 Theme 2: Hint 17 I’m shaking my tail. What? I’m doing it too! I thought I was doing it…

CSE 486/586, Spring 2013 Theme 2: Concurrency Q4: how do you control access to shared resources? –Distributed mutual exclusion, distributed transactions, 2- phase commit, etc. 18

CSE 486/586, Spring 2013 Theme 3: Hint 19 I want to shake my tail. No, I don’t want to. OK No way!

CSE 486/586, Spring 2013 Theme 3: Consensus Q5: how do multiple machines reach an agreement? –Time & synchronization, global states, snapshots, mutual exclusion, leader election, paxos Bad news: it’s impossible! –The impossibility of consensus 20

CSE 486/586, Spring 2013 Theme 4: Hint 21 Who has a brain? I do. I don’t.

CSE 486/586, Spring 2013 Theme 4: Storage Management Q6: how do you locate where things are and access them? –DHT, DFS 22

CSE 486/586, Spring 2013 Theme 5: Hint 23 zzz… I have a feeling that something went wrong…

CSE 486/586, Spring 2013 Theme 5: Non-Byzantine Failures Q7: how do you know if a machine has failed? –Failure detection Q8: how do you program your system to operate continually even under failures? –Replication, gossiping 24

CSE 486/586, Spring 2013 Theme 6: Hint 25 We’re under attack!

CSE 486/586, Spring 2013 Theme 6: Byzantine Failures Q9: how do you deal with attackers? –Security Q10: what if some machines malfunction? –Byzantine fault tolerance 26

CSE 486/586, Spring Acknowledgements These slides heavily contain material developed and copyrighted by Indranil Gupta at UIUC. The material was originally developed for courses CS425/CSE424/ECE428 at UIUC.