Distributed Systems#
Contents#
Resources#
Conceptual#
[ geeksforgeeks ] “Birman Schiper Stephenson Protocol”
[ geeksforgeeks ] “Causal Ordering of Messages in Distributed System”
[ geeksforgeeks ] “Schiper Eggli Sandoz Protocol”
Tools & Technologies#
YouTube#
Eric O Meehan
[ y ]
03-13-2021
Eric O Meehan. “Creating a Peer to Peer Network in C”.
Martin Kleppmann
[ y ]
10-28-2020
Martin Kleppmann. “Distributed Systems 4.2: Broadcast ordering”.[ y ]
10-28-2020
Martin Kleppmann. “Distributed Systems 4.1: Logical time”.[ y ]
10-28-2020
Martin Kleppmann. “Distributed Systems 3.2: Clock synchronisation”.
More
[ y ]
10-21-2016
. Distributed Systems Course. “L6: Byzantine Fault Tolerance”.
More#
https://www.cs.cmu.edu/~harchol/
Why Logical Clocks are Easy: Sometimes all you need is the right language. https://queue.acm.org/detail.cfm?id=2917756
https://engineering.purdue.edu/FTC/handouts/References/Chapt 4 - Broadcast - jalote.pdf
Texts#
2024
Van Steen, Maarten & Andrew S. Tanenbaum. Distributed Systems. 4e. https://www.distributed-systems.net/index.php/books/ds4/.
2011
Coulouris, George et al. Distributed Systems: Concepts and Designs. 5e. Pearson.
[ g ] Chambers, Bill & Matei Zaharia. (2018). Spark: The Definitive Guide: Big Data Processing Made Simple. O’Reilly.
Dean, Jeffrey & Sanjay Ghemawat. (2004). “MapReduce: Simplified Data Processing on Large Clusters”.
Damji, Jules S. et al. (2020). Learning Spark: Lightning-Fast Data Analytics, 2nd Ed. O’Reilly.
Karau, Holden & Rachel Warren. (2017). High Performance Spark: Best Practices for Scaling and Optimizing Apache Spark. O’Reilly.
[ g ] Parsian, Mahmoud. (2021). Data Algorithms with Spark: Recipes and Design Patterns for Scaling Up using PySpark. O’Reilly.
[ g ] Ryza, Sandy et al. (2017). Advanced Analytics with Spark: Patterns for Learning from Data at Scale, 2nd Ed. O’Reilly.
[ g ] Thomas, Alex. (2020). Natural Language Processing with Spark NLP: Learning to Understand Text at Scale. O’Reilly.
Abraham, Ittai & Gilad Stern. (2020). “Information Theoretic HotStuff”.
Bar-Zur, Roi, Ittay Eyal, & Aviv Tamar. (2020). “Efficient MDP Analysis for Selfish-Mining in Blockchains”.
Bech, Morten & Rodney Garratt. (2017). “Central bank cryptocurrencies”.
Birman, Kenneth P. & Thomas A. Joseph. (1987). “Reliable Communication in the Presence of Failures”.
Bracha, G. (1987). “Asynchronous Byzantine agreement protocols”.
Castro, Miguel & Barbara Liskov. (1999). “Practical Byzantine Fault Tolerance”.
Chaum, David. (1982). “Computer Systems Established, Maintained, and Trusted by Mutually Suspicious Groups”.
Cohen, Bram & Krzysztof Pietrzak. (2019). “The Chia Network Blockchain”.
Danezis, George & David Hrycyszyn. (2018). “Blockmania: from Block DAGs to Consensus”.
Dembo, Amir et al. (2020). “Everything is a Race and Nakamoto Always Wins”.
Douceur, John R. (2002). “The Sybil Attack”.
Dwork, Cynthia & Moni Naor. (1993). “Pricing via Processing or Combatting Junk Mail”.
Dwork, Cynthia, Nancy Lynch, & Larry Stockmeyer. (1988). “Consensus in the Presence of Partial Synchrony”.
Eyal, Ittay et al. (2016). “Bitcoin-NG: A Scalable Blockchain Protocol”.
Fischer, Michael J., Nancy A. Lynch, & Michael S. Paterson. (1985). “Impossibility of Distributed Consensus with One Faulty Process”.
Fokkink, Wan. (2018). Distributed Algorithms: An Intuitive Approach, 2nd Ed. MIT Press.
Gibbons, Phil. (2021). 15-712: Advanced Operating Systems and Distributed Systems. Carnegie Mellon. Home.
Gilad, Yossi et al. (2017). “Algorand: Scaling Byzantine Agreements for Cryptocurrencies”.
Haber, Stuart & W. Scott Stornetta. (1991). “How to Time-Stamp a Digital Document”.
Harchol-Balter, Mor. (2013). Performance Modeling and Design of Computer Systems: Queueing Theory in Action. Cambridge University Press.
Jalalzai, Mohammad M. et al. (2021). “Fast-HotStuff: A Fast and Robust BFT Protocol for Blockchains”.
Keidar, Idit & Alexander Shraer. (2006). “Timeliness, Failure-Detectors, and Consensus Performance”
Kelkar, Mahimna et al. (2020). “Order-Fairness for Byzantine Consensus”.
Keshav, Srinivasan. (2012). Mathematical Foundations of Computer Networking. Addison-Wesley Professional Computing Series.
Kurose, Jim & Keith Ross. (2020). Computer Networking: A Top-Down Approach, 8th Ed. Pearson.
Lamport, Leslie. (1998). “The Part-Time Parliament”.
Lamport, Leslie. (1978). “Time, Clocks, and the Ordering of Events in a Distributed System”.
Lamport, Leslie, Dahlia Malkhi, & Lidong Zhou. (2008). “Reconfiguring a State Machine”.
Lamport, Leslie, Robert Shostak, & Marshall Pease. (1982). “The Byzantine Generals Problem”.
Le Boudec, Jean-Yves & Patrick Thiran. (2020). Network Calculus: A Theory of Deterministic Queueing Systems for the Internet. Springer.
Lynch, Nancy A. (1996). Distributed Algorithms. Morgan-Kaufmann Series in Data Management Systems.
Merkle, Ralph. (1980). “Protocols for Public Key Cryptosystems”.
Oki, Brian M. & Barbara H. Liskov. (1988). “Viewstamped Replication: A New Primary Copy Method to Support Highly-Available Distributed Systems”.
Raynal, Michel. (2018). Fault-Tolerant Message-Passing Distributed Systems: An Algorithmic Approach. Springer.
Schneider, Fred B. (1990). “Implementing Fault-Tolerant Services Using the State Machine Approach: A Tutorial”.
Sonnino, Alberto & George Danezis. (2019). “SybilQuorum: open Distributed Ledgers Through Trust Networks”.
Vishnumurthy, Vivek, Sangeeth Chandrakumar, & Emin Gün Sirer. “KARMA: A Secure Economic Framework for Peer-to-Peer Resource Sharing”.
Yu, Mingchao et al. (2019). “Coded Merkle Tree: Solving Data Availability Attacks in Blockchains”.
Pre-Bitcoin PoW non-economic application Paper
Pre-Bitcoin PoW economic application Paper
Ghost Protocol Paper
Terms#
Coordination
[ w ] Berkeley Algorithm
[ w ] Clock Skew
[ w ] Clock Synchronization
[ w ] Coordinated Universal Time (UTC)
[ w ] Cristian’s Algorithm
[ w ] End-to-End Delay
[ w ] Happened-Before
[ w ] International Atomic Time (TAI)
[ w ] Lamport Timestamp
[ w ] Leap Second
[ w ] Logical Clock
[ w ] Minimum-Pairs
[ w ] Network Time Protocol (NTP)
[ w ] Precision Time Protocol (PTP)
[ w ] Reference Broadcast Synchronization (RBS)
[ w ] Round-Trip Time (RTT)
[ w ] Universal Time (UT1)
[ w ] Vector Clock
Election
Architecture
[ w ] Busy-Waiting
[ w ] Concurrency Control
[ w ] Concurrent Computing
[ w ] Context Switch
[ w ] Critical Section
[ w ] Database Transaction Scheduling
[ w ] Deadlock
[ w ] Interrupt
[ w ] Interrupt Handler
[ w ] Kernel Preemption
[ w ] Linearizability
[ w ] Liveness
[ w ] Load-Link/Store-Conditional
[ w ] Lock
[ w ] Maekawa’s Algorithm
[ w ] Mutual Exclusion
[ w ] Non Blocking
[ w ] Preemption
[ w ] Process Control Block (PCB)
[ w ] Process Migration
[ w ] Race Condition
[ w ] Raymond’s Algorithm
[ w ] Semaphore
[ w ] Sequential Algorithm
[ w ] Shared Memory
[ w ] Shared Resource
[ w ] Spinlock
[ w ] Starvation
[ w ] Synchronization
[ w ] Thread
[ w ] Thread-Local Storage
[ w ] Asynchronous Network
[ w ] Asynchronous System
[ w ] Atomic Broadcast
[ w ] Broadcast
[ w ] Byzantine Broadcast
[ w ] Byzantine Fault
[ w ] Byzantine Fault Tolerance
[ w ] Classical Consensus
[ w ] Client Puzzle Protocol
[ w ] Clock Synchronization
[ w ] Communication Protocol
[ w ] Computer Cluster
[ w ] Computer Network
[ w ] Connectionism
[ w ] Cryptographic Primitive
[ w ] Dining Philosophers Problem
[ w ] Distributed Algorithm
[ w ] Distributed Computation
[ w ] Distributed Database
[ w ] Distributed Ledger Technology (DLT)
[ w ] Distributed Memory
[ w ] Distributed Networking
[ w ] Distributed OS
[ w ] Dolev-Strong Protocol
[ w ] Ethereum Virtual Machine (EVM)
[ w ] FLP Impossibility
[ w ] High-Performance Computation
[ w ] HotStuff Protocol
[ w ] Leader Election
[ w ] Load Balancing
[ w ] Merkle Tree
[ w ] Message Passing
[ w ] Message-Oriented Middleware
[ w ] MapReduce
[ w ] Metcalfe’s Law
[ w ] Nakamoto Consensus
[ w ] Network Calculus
[ w ] Obelisk Consensus [ i ]
[ w ] PageRank
[ w ] Parallel Computation
[ w ] Parallel Distributed Processing
[ w ] Paxos
[ w ] Process Calculus
[ w ] Quantum Byzantine Agreement
[ w ] Queueing Theory
[ w ] Shard
[ w ] State Machine Replication
[ w ] Streamlet Protocol
[ w ] Synchronization
[ w ] Synchronizer
[ w ] Synchronous Network
[ w ] Time Server
[ w ] Unbounded Nondeterminism
[ w ] Validator
[ w ] Vector Addition System