Distributed Systems · Cluster
Distributed Transactions
Atomic commit and isolation across nodes.
- 01 Two-Phase Commit and the Coordinator Decision Record Why a distributed commit needs a durable, single-source decision, what each participant promises when it votes yes, and how the coordinator log resolves a crash in the middle of the protocol.
- 02 Presumed Abort and Presumed Commit: Two Defaults for Missing Decisions How a participant resolves a transaction when no decision record exists anywhere, what each presumption costs in log writes and retained state, and why presumed abort dominates in practice.
- 03 In-Doubt Transactions, Held Locks, and Why Timeouts Cannot Help The prepared-but-undecided state that two-phase commit creates, why a participant cannot resolve it locally, and how heuristics and lock timeouts trade atomicity for availability.
- 04 What Three-Phase Commit Adds and What It Still Cannot Do The pre-commit phase that removes blocking under node crashes, the assumption about network partitions that it silently depends on, and why real systems rarely deploy it.
- 05 Detecting Deadlock Across Nodes Without a Shared Wait-For Graph How distributed deadlock detection assembles wait-for edges from independent lock managers, why stale edges produce phantom cycles, and what a timeout costs instead.
- 06 Global Snapshots Across Shards Without a Shared Clock How a transaction gets a consistent view of data spread over independent nodes, what a snapshot identifier must encode, and why the barrier between shards costs a round trip per query.
- 07 Serializable Snapshot Isolation When Reads Span Several Shards How SSI tracks rw-dependencies to detect dangerous structures, why the conflict graph must be shared between shards, and what the read-only optimisation costs once reads are remote.
- 08 Replicating the Commit Decision So the Coordinator Can Die Why a single durable decision record is a single point of failure, how consensus turns commit into a replicated log entry, and what the extra round trip buys in recovery time.
- 09 Timestamp Oracles and Global Transaction Order How distributed systems assign a total order to transactions without a shared clock, what happens when the oracle is unreachable, and why the ordering guarantee is not the same as real-time order.
- 10 Sagas, Compensations, and the Semantics a Rollback Cannot Restore How long-running distributed transactions replace atomic rollback with forward recovery, why a compensation is not an inverse, and what the scheduler must guarantee to make it work.