Distributed Systems#


Contents#


Resources#

Conceptual#

Tools & Technologies#

  • [ h ] Apache Spark

  • [ h ] Dask

  • [ h ] Rapids

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

https://www.inf.ed.ac.uk/teaching/courses/ip/chord-desc.html#:~:text=Each node%2C n%2C maintains a,is modulo 2^160).


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.


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

  • [ w ] Bully Algorithm

  • [ w ] Chang and Robert’s Algorithm

  • [ w ] Leader Election

Architecture

  • [ w ] BitTorrent

  • [ w ] Gnutella

  • [ w ] Napster

  • [ w ] P2P

  • [ w ] P2P File Sharing

  • [ 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 ] Compare-and-swap

  • [ w ] Fetch-and-add

  • [ w ] Read-Modify-Write

  • [ w ] Test-and-set

  • [ w ] Asynchronous Network

  • [ w ] Asynchronous System

  • [ w ] Atomic Broadcast

  • [ w ] Big Data [ i ]

  • [ 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 ] Consensus [ i ]

  • [ 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