ChrisWhealy / Distributedsystemnotes
Notes on Lindsey Kuper's lectures on Distributed Systems
Stars: ✭ 267
Projects that are alternatives of or similar to Distributedsystemnotes
Dkron
Dkron - Distributed, fault tolerant job scheduling system https://dkron.io
Stars: ✭ 2,930 (+997.38%)
Mutual labels: distributed-systems, fault-tolerance
Pysyncobj
A library for replicating your python class between multiple servers, based on raft protocol
Stars: ✭ 468 (+75.28%)
Mutual labels: distributed-systems, fault-tolerance
Cloudi
A Cloud at the lowest level!
Stars: ✭ 352 (+31.84%)
Mutual labels: distributed-systems, fault-tolerance
Distributed Consensus Reading List
A long list of academic papers on the topic of distributed consensus
Stars: ✭ 803 (+200.75%)
Mutual labels: distributed-systems, fault-tolerance
Bastion
Highly-available Distributed Fault-tolerant Runtime
Stars: ✭ 2,333 (+773.78%)
Mutual labels: distributed-systems, fault-tolerance
Elixirbooks
List of Elixir books
Stars: ✭ 1,021 (+282.4%)
Mutual labels: distributed-systems, fault-tolerance
Lizardfs
LizardFS is an Open Source Distributed File System licensed under GPLv3.
Stars: ✭ 793 (+197%)
Mutual labels: distributed-systems, fault-tolerance
Thespian
Python Actor concurrency library
Stars: ✭ 220 (-17.6%)
Mutual labels: distributed-systems, fault-tolerance
kraker-info
Microservices based project to extract the information from the user data from different sources.
Stars: ✭ 17 (-93.63%)
Mutual labels: distributed-systems, fault-tolerance
road-to-orleans
This repository illustrates the road to orleans with practical, real-life examples. From most basic, to more advanced techniques.
Stars: ✭ 55 (-79.4%)
Mutual labels: distributed-systems
ReactiveMachine
Author microservices without thinking about faults or servers. Then compile and deploy anywhere.
Stars: ✭ 43 (-83.9%)
Mutual labels: distributed-systems
Saga
Saga pattern implementation in Kotlin build in top of Kotlin's Coroutines.
Stars: ✭ 24 (-91.01%)
Mutual labels: distributed-systems
Kites
🪁 A consistency, partition tolerance completed distributed KV store, implementation of the Raft distributed consensus protocol and Kotlin.
Stars: ✭ 41 (-84.64%)
Mutual labels: distributed-systems
Naos
A mildly opiniated modern cloud service architecture blueprint + reference implementation
Stars: ✭ 19 (-92.88%)
Mutual labels: distributed-systems
ring-election
A node js library with a distributed leader/follower algorithm ready to be used
Stars: ✭ 92 (-65.54%)
Mutual labels: distributed-systems
elixir cluster
Distributed Elixir Cluster on Render with libcluster and Mix Releases
Stars: ✭ 15 (-94.38%)
Mutual labels: distributed-systems
Burry.sh
Cloud Native Infrastructure BackUp & RecoveRY
Stars: ✭ 260 (-2.62%)
Mutual labels: distributed-systems
Distributed Systems
Lecture notes for course CSE138, Spring 2020 given by Prof Lindsey Kuper, Assistant Professor of Computing at UCSC
Due to the Covid-19 lockdown being enforced at the time, these lectures had to be delivered online and are available on YouTube and Twitch
This series of lectures also includes a discussion panel with recent grad students and two guest lecturers. Notes have not been created for these events; however, you can watch the videos here:
- "Grad Student Discussion Panel" Lindsey Kuper talks with Emma Gomish, Pete Wilcox and Lawrence Lawson. May 15th, 2020
- "Blockchain Consensus" by Chris Colohan, May 27th, 2020
- "Building Peer-to-Peer Applications" by Karissa McKelvey, June 3rd
Date | Description | Subjects Recapped |
---|---|---|
Lecture 1 | There are no notes for this lecture as it was concerned with course administration and logistics | |
Lecture 2 April 1st, 2020 |
Distributed Systems: What and why? Time and clocks |
|
Lecture 3 April 3rd, 2020 |
Lamport diagrams Causality and the "happens before" relation Network models State and events Partial orders |
|
Lecture 4 April 6th, 2020 |
Total orders and Lamport clocks | Partial orders Happens before relation |
Lecture 5 April 8th, 2020 |
Vector clocks Protocol runs and anomalies Message Delivery vs. Message Receipt FIFO delivery |
Lamport Clocks |
Lecture 6 April 10th, 2020 |
Causal delivery Totally-ordered delivery Implementing FIFO delivery Preview of implementing causal broadcast |
Delivery vs. Receipt FIFO delivery |
Lecture 7 April 13th, 2020 |
Implementing causal broadcast Uses of causality in distributed systems Consistent snapshots Preview of the Chandy-Lamport snapshot algorithm |
Causal anomalies and vector clocks |
Lecture 8 April 15th, 2020 |
Chandy-Lamport Snapshot Algorithm | |
Lecture 9 April 17th, 2020 |
Chandy-Lamport wrap-up: limitations, assumptions and properties Uses of snapshots Centralized vs. decentralized algorithms Safety and liveness |
Delivery guarantees and protocols |
Lecture 10 April 20th, 2020 |
Reliable delivery Fault classification and fault models The Two Generals problem |
Safety and liveness |
Lecture 11 April 22nd, 2020 |
Implementing reliable delivery Idempotence At-least-once/at-most-once/exactly-once delivery Unicast/Broadcast/Multicast Reliable broadcast Implementing reliable broadcast Preview of replication |
|
Lecture 12 April 24th, 2020 |
Replication Total order vs. determinism Consistency models: FIFO, causal and strong Primary-backup replication Chain replication Latency and throughput |
|
Lecture 13 April 27th, 2020 |
Pause for breath! Wrapping up replication techniques |
|
Lecture 14 May 1st, 2020 |
Handling node failure in replication protocols Introduction to consensus Problems equivalent to consensus The FLP result Introduction to Paxos |
Strongly consistent replication protocols |
Lecture 15 May 4th, 2020 |
Paxos: the interesting parts | |
Lecture 16 May 6th, 2020 |
Paxos wrap-up: Non-termination, Multi-Paxos, Fault tolerance Other consensus protocols: Viewstamped Replication, Zab, Raft Passive vs. Active (state machine) replication |
|
Lecture 17 May 8th, 2020 |
Eventual consistency Strong convergence and strong eventual consistency Introduction to application-specific conflict resolution Network partitions Availability The consistency/availability trade-off |
|
Lecture 18 May 11th, 2020 |
Dynamo: A review of old ideas
|
|
Lecture 19 May 13th, 2020 |
More about Quorum Consistency Introduction to sharding Consistent hashing |
|
Lecture 20 May 18th, 2020 |
Online systems vs. Offline systems Raw data vs. Derived data Introduction to Google's MapReduce framework MapReduce example: transform a forward index into an inverted index |
|
Lecture 21 May 20th, 2020 |
MapReduce
|
MapReduce phases |
Lecture 22 May 29th, 2020 |
The math behind replica conflict resolution
|
Strong convergence Partial orders |
Lecture 23 June 1st, 2020 |
Filling in the gaps: Overviews of 2-phase commit and Practical Byzantine Fault Tolerance (PBFT) Quick overview of the history of:
|
Note that the project description data, including the texts, logos, images, and/or trademarks,
for each open source project belongs to its rightful owner.
If you wish to add or remove any projects, please contact us at [email protected].