Distributed Computing Fundamentals
Distributed computing runs a computation across multiple networked machines that coordinate to solve a problem no single machine could handle alone. It introduces the challenges of partial failure, network latency, consistency, and the fundamental trade-offs every distributed system must navigate.
itComputer fundamentals | OpenSkills.info
Intro
Distributed Computing Fundamentals
Distributed computing uses several independent computers to perform one larger computation or provide one service. The computers coordinate by sending messages across a network.
That arrangement can add capacity, shorten processing time, place work near data, and survive some failures. It also removes assumptions that local programs often make. Messages take time. Machines do not share one perfect clock. One component can fail while the rest continue.
The central skill is not memorizing a framework. It is learning which facts each computer can know, when it can know them, and what happens when communication stops.
The basic shape
Picture a large input divided into partitions. Workers process those partitions at the same time. A coordinator assigns work and combines results.
input → partition → worker A → result A
↘ partition → worker B → result B → combined result
↘ partition → worker C → result C
Google's MapReduce design is a concrete example. A map function produces intermediate key-value pairs. A reduce function combines values for each key. The runtime partitions input, schedules tasks, manages communication, and reassigns failed work.
This pattern works best when useful work can be divided. More workers do not guarantee a faster result. Coordination, network transfer, uneven partitions, and sequential steps can dominate the runtime.
Distribution changes the failure model
Continue the course
This section is part of the paid course.
See pricing to subscribe, or log in if you already have access.
Sources
- https://aws.amazon.com/builders-library/challenges-with-distributed-systems/
Supports
- Independent failures and nondeterminism in distributed systems
- Ambiguous outcomes for network operations and timeouts
- Failure combinations, testing difficulty, and recursive distributed dependencies
- https://www.microsoft.com/en-us/research/publication/time-clocks-ordering-events-distributed-system/
Supports
- Distributed processes coordinating through messages
- Happened-before as a partial causal order
- Concurrent events and logical clocks
- Ordered inputs as a foundation for distributed state machines
- https://research.google/pubs/mapreduce-simplified-data-processing-on-large-clusters/
Supports
- Map and reduce functions over key-value pairs
- Input partitioning, task scheduling, inter-machine communication, and failure handling by the runtime
- Large computations divided across cluster workers
- Communication, partitioning, and scheduling as distributed-computation concerns
- https://aws.amazon.com/builders-library/making-retries-safe-with-idempotent-APIs/
Supports
- Idempotent API semantics for safe retries
- Stable client request identifiers and duplicate request recognition
- Repeated requests returning the result of one logical operation
- https://www.cs.cornell.edu/courses/cs6464/2009sp/papers/brewer.pdf
Supports
- Formal definitions of atomic consistency, availability, and partition tolerance
- Impossibility of guaranteeing atomic consistency and availability together during message loss in the asynchronous model
- Scope and assumptions of the CAP result
- https://raft.github.io/raft.pdf
Supports
- Consensus through leader election, log replication, and safety
- Replicated state machines applying identical ordered commands
- Majority availability under crash-stop and communication assumptions
- Majority overlap and safe committed history
- Separation of safety from progress conditions
- https://research.google/pubs/spanner-googles-globally-distributed-database-2/
Supports
- Synchronously replicated, globally distributed data
- Distributed transactions and external consistency
- Explicit exposure of physical-clock uncertainty
- https://aws.amazon.com/builders-library/minimizing-correlated-failures-in-distributed-systems/
Supports
- Redundancy and continued operation through some server failures
- Correlated infrastructure, dependency, software, and operator failures
- Failure boundaries, controlled deployment, shuffle sharding, and jitter
