• Complain

it-ebooks - Distributed Systems Engineering Lecture notes (MIT 6.824)

Here you can read online it-ebooks - Distributed Systems Engineering Lecture notes (MIT 6.824) full text of the book (entire story) in english for free. Download pdf and epub, get meaning, cover and reviews about this ebook. year: 2017, publisher: iBooker it-ebooks, genre: Romance novel. Description of the work, (preface) as well as reviews are available. Best literature library LitArk.com created for fans of good reading and offers a wide selection of genres:

Romance novel Science fiction Adventure Detective Science History Home and family Prose Art Politics Computer Non-fiction Religion Business Children Humor

Choose a favorite category and find really read worthwhile books. Enjoy immersion in the world of imagination, feel the emotions of the characters or learn something new for yourself, make an fascinating discovery.

it-ebooks Distributed Systems Engineering Lecture notes (MIT 6.824)
  • Book:
    Distributed Systems Engineering Lecture notes (MIT 6.824)
  • Author:
  • Publisher:
    iBooker it-ebooks
  • Genre:
  • Year:
    2017
  • Rating:
    3 / 5
  • Favourites:
    Add to favourites
  • Your mark:
    • 60
    • 1
    • 2
    • 3
    • 4
    • 5

Distributed Systems Engineering Lecture notes (MIT 6.824): summary, description and annotation

We offer to read an annotation, description, summary or preface (depends on what the author of the book "Distributed Systems Engineering Lecture notes (MIT 6.824)" wrote himself). If you haven't found the necessary information about the book — write in the comments, we will try to find it.

it-ebooks: author's other books


Who wrote Distributed Systems Engineering Lecture notes (MIT 6.824)? Find out the surname, the name of the author of the book and a list of all author's works by series.

Distributed Systems Engineering Lecture notes (MIT 6.824) — read online for free the complete book (whole text) full work

Below is the text of the book, divided by pages. System saving the place of the last page read, allows you to conveniently read the book "Distributed Systems Engineering Lecture notes (MIT 6.824)" online for free, without having to search again every time where you left off. Put a bookmark, and you can go to the page where you finished reading at any time.

Light

Font size:

Reset

Interval:

Bookmark:

Make
Table of Contents
  1. 1.1
  2. 1.2
  3. 1.3
  4. 1.4
  5. 1.5
  6. 1.6
  7. 1.7
  8. 1.8
  9. 1.9
  10. 1.10
  11. 1.11
  12. 1.12
  13. 1.13
  14. 1.14
  15. 1.15
  16. 1.16
  17. 1.17
  18. 1.18
  19. 1.19
  20. 1.20
  21. 1.21
  22. 1.22
  23. 1.23
  24. 1.24
Distributed Systems Engineering notes (6.824, Spring 2015)
Distributed Systems Engineering Lecture notes (MIT 6.824)

From: Distributed Systems Engineering notes (6.824, Spring 2015)

Lectures

Lecture notes from 6.824, taught by Prof. Robert T. Morris. These lecture notes are slightly modified from the ones posted on the 6.824 course website.

  • Lecture 1: : distributed system definition, motivations, architecture, implementation, performance, fault-tolerance, consistency, MapReduce
  • Lecture 2: : RPC overview, marshalling, binding, threads, "at-least-once", "at-most-once", "exactly once", Go's RPC, thread synchronization
  • Lecture 3: : primary-backup replication, state transfer, "split-brain", Remus (NSDI 2008),
  • Lecture 4: : flat datacenter storage, bisection bandwidth, striping
  • Lecture 5: : Paxos, consensus algorithms
  • Lecture 6: : Raft, a more understandable consensus algorithm
  • Lecture 7: Google Go by Russ Cox
  • Lecture 8: : distributed file system, "the UPS trick", witnesses
  • Lecture 9: : distributed shared memory, sequential consistency
  • Lecture 10: : userspace distributed shared memory system, vector timestamps, release consistency (lazy/eager), false sharing, write amplification
  • Lecture 11: : optimistic concurrency control, vector timestamps, conflict resolution
  • Lecture 12: : disconnected operation, eventual consistency, Bayou
  • Lecture 13: : MapReduce, scalability, performance
  • Lecture 14: Spark by Matei Zaharia: Resilient Distributed Datasets, Spark
  • Lecture 15: Spanner by Wilson Hsieh, Google: Spanner, distributed database, clock skew
  • Lecture 16: : web app scalability, look-aside caches, Memcache
  • Lecture 17: : distributed key-value store, atomic writes
  • Lecture 18: : distributed key-value store, eventual consistency
  • Lecture 19: HubSpot
  • Lecture 20: : two-phase commit, Argus
  • Lecture 21:
  • Lecture 22: : Chord, routing
  • Lecture 23: : verifiable public ledgers, proof-of-work, double spending
Lectures form other years
  • Practical Byzantine Fault Tolerance (PBFT):
Papers

Papers we read in 6.824 ():

Other papers:

    • See page 5, slide 10 to understand Lemma 1 (commutativity) faster
    • See this article here for an alternative explanation.
    • See discussion here on PBFT.
Stumbled upon
  1. A brief history of consensus, 2PC and transaction commit
  2. Distributed systems theory for the distributed systems engineer
  3. Distributed Systems: For fun and Profit
  4. You can't choose CA out of CAP, or "You can't sacrifice partition tolerance"
  5. Notes on distributed systems for young bloods
Quizzes

Prep for quiz 1

Introduction
6.824 2015 Lecture 1: Introduction

Note: These lecture notes were slightly modified from the ones posted on the 6.824 course website from Spring 2015.

Distributed systems
What is a distributed system?
  • multiple networked cooperating computers
  • Example: Internet E-Mail, Athena file server, Google MapReduce, Dropbox, etc.
Why distribute?
  • to connect physically separate entities
  • to achieve security via physical isolation
  • to tolerate faults via replication at separate sites
  • to increase performance via parallel CPUs/mem/disk/net

...but:

  • complex, hard to debug
  • new classes of problems, e.g. partial failure (did he accept my e-mail?)
  • Leslie Lamport: "A distributed system is one in which the failure of acomputer you didn't even know existed can render your own computerunusable."
  • Advice: don't distribute if a central system will work
Why take this course?
  • interesting -- hard problems, non-obvious solutions
  • active research area -- lots of progress + big unsolved problems
  • used by real systems -- unlike 10 years ago -- driven by the rise of big Web sites
  • hands-on -- you'll build a real system in the labs
Course structure

See the course website.

Course components
  • Lectures about big ideas, papers, labs
  • Readings: research papers as case studies
    • please read papers before class
    • paper for today:
    • each paper has a question for you to answer and one for you to ask (see web site)
    • submit question & answer before class, one or two paragraphs
  • Mid-term quiz in class, and final exam
  • Labs: build increasingly sophisticated fault-tolerant services
    • First lab is due on Monday
  • Project: design and build a distributed system of your choice or the system we posein the last month of the course
    • teams of two or three
    • project meetings with course staff
    • demo in last class meeting
Main topics

Example:

  • a shared file system, so users can cooperate, like Dropbox
    • but this lecture isn't about dropbox specifically
    • just an example goal to get feel for distributed system problems
  • lots of client computers
Architecture
  • Choice of interfaces
    • Monolithic file server?
    • Block server(s) -> FS logic in clients?
    • Separate naming + file servers?
    • Separate FS + block servers?
  • Single machine room or unified wide area system?
    • Wide-area dramatically more difficult.
  • Client/server or peer-to-peer?
    • Interact w/ performance, security, fault behavior.
Implementation
  • How do clients/servers communicate?
    • Direct network communication is pretty painful
    • Want to hide network stuff from application logic
  • Most systems organize distribution with some structuring framework(s)
    • RPC, RMI, DSM, MapReduce, etc.
Performance
  • Distribution can hurt: network b/w and latency bottlenecks
    • Lots of tricks, e.g. caching, threaded servers
  • Distribution can help: parallelism, pick server near client
    • Idea: scalable design
      • We would like performance to scale linearly with the addition of machines
      • N x servers -> N x total performance
  • Need a way to divide the load by N
    • divide the state by N
      • split by user
      • split by file name
      • "sharding" or "partitioning"
  • Rarely perfect -> only scales so far
    • Global operations, e.g. search
    • Load imbalance
      • One very active user
      • One very popular file
        • -> one server 100%, added servers mostly idle
        • -> N x servers ->1 x performance
Fault tolerance
  • Dropbox: ~10,000 servers; some fail
  • Can I use my files if there's a failure?
    • Some part of network, some set of servers
Next page
Light

Font size:

Reset

Interval:

Bookmark:

Make

Similar books «Distributed Systems Engineering Lecture notes (MIT 6.824)»

Look at similar books to Distributed Systems Engineering Lecture notes (MIT 6.824). We have selected literature similar in name and meaning in the hope of providing readers with more options to find new, interesting, not yet read works.


Reviews about «Distributed Systems Engineering Lecture notes (MIT 6.824)»

Discussion, reviews of the book Distributed Systems Engineering Lecture notes (MIT 6.824) and just readers' own opinions. Leave your comments, write what you think about the work, its meaning or the main characters. Specify what exactly you liked and what you didn't like, and why you think so.