Giter Site home page Giter Site logo

avinassh / 6.824-lecture-notes Goto Github PK

View Code? Open in Web Editor NEW

This project forked from alinush/6.824-lecture-notes

0.0 1.0 0.0 13.72 MB

6.824 Distributed Systems: Lecture notes (edited a little and formatted with Markdown)

Makefile 0.03% Go 0.60% Shell 0.03% HTML 99.29% Vim Script 0.05%

6.824-lecture-notes's Introduction

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: Introduction: distributed system definition, motivations, architecture, implementation, performance, fault-tolerance, consistency, MapReduce
  • Lecture 2: Remote Procedure Calls (RPCs): RPC overview, marshalling, binding, threads, "at-least-once", "at-most-once", "exactly once", Go's RPC, thread synchronization
  • Lecture 3: Fault tolerance: primary-backup replication, state transfer, "split-brain", Remus (NSDI 2008),
  • Lecture 4: Flat datacenter storage: flat datacenter storage, bisection bandwidth, striping
  • Lecture 5: Paxos: Paxos, consensus algorithms
  • Lecture 6: Raft: Raft, a more understandable consensus algorithm
  • Lecture 7: Google Go guest lecture by Russ Cox
  • Lecture 8: Harp: distributed file system, "the UPS trick", witnesses
  • Lecture 9: IVY: distributed shared memory, sequential consistency
  • Lecture 10: TreadMarks: userspace distributed shared memory system, vector timestamps, release consistency (lazy/eager), false sharing, write amplification
  • Lecture 11: Ficus: optimistic concurrency control, vector timestamps, conflict resolution
  • Lecture 12: Bayou: disconnected operation, eventual consistency, Bayou
  • Lecture 13: MapReduce: MapReduce, scalability, performance
  • Lecture 14: Spark guest lecture by Matei Zaharia: Resilient Distributed Datasets, Spark
  • Lecture 15: Spanner guest lecture by Wilson Hsieh, Google: Spanner, distributed database, clock skew
  • Lecture 16: Memcache at Facebook: web app scalability, look-aside caches, Memcache
  • Lecture 17: PNUTS Yahoo!: distributed key-value store, atomic writes
  • Lecture 18: Dynamo: distributed key-value store, eventual consistency
  • Lecture 19: HubSpot guest lecture
  • Lecture 20: Two phase commit (2PC): two-phase commit, Argus
  • Lecture 21: Optimistic concurrency control
  • Lecture 22: Peer-to-peer, trackerless Bittorrent and DHTs: Chord, routing
  • Lecture 23: Bitcoin: verifiable public ledgers, proof-of-work, double spending

Lectures form other years

Labs

Papers

Papers we read in 6.824 (directory here):

  1. MapReduce
  2. Remus
  3. Flat datacenter storage
  4. Paxos
  5. Raft
  6. Harp
  7. Shared virtual memory
  8. TreadMarks
  9. Ficus
  10. Bayou
  11. Spark
  12. Spanner
  13. Memcached at Facebook
  14. PNUTS
  15. Dynamo
  16. Akamai
  17. Argus, Guardians and actions
  18. Kademlia
  19. Bitcoin
  20. AnalogicFS

Other papers:

  1. Impossibility of Distributed Consensus with One Faulty Process
    • See page 5, slide 10 here to understand Lemma 1 (commutativity) faster
    • See this article here for an alternative explanation.
  2. Practical Byzantine Fault Tolerance (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
  6. Paxos Explained From Scratch

Quizzes

Prep for quiz 1 here

6.824-lecture-notes's People

Contributors

alinush avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.