The distributed paradigm
A program spread over several machines: message passing, remote procedure calls, partial failure, timeouts and retries, no guaranteed arrival order and the fallacies of distributed computing.
- 27 cards
- 5 topics
- Free
The outline, topic by topic
Each topic is weighted the way the exam weighs it.
- Concepts
- Questions
- Sort and link
- On the diagram
- Scenarios
A few cards from the deck
Distributed computing: what is it?
Show the answer
A way of making several machines linked by a network cooperate on one job, with no shared memory or clock.
Everything the machines know about one another goes through messages, which can be slow, lost or duplicated: that is the difficulty of the paradigm.
A remote call raises a
TimeoutError. What does the caller know?- Nothing for sure: the request may have been lost, or processed without the response coming back
- The server did not execute the request
- The server is down and it must fail over to another
- The network is cut between client and server
Show the answer
Nothing for sure: the request may have been lost, or processed without the response coming back
An expired timeout only means no response arrived in time: a lost request, a slow server, a crashed server or a lost response all give the same signal. Operations must be idempotent before retrying.
During a …, the caller cannot tell a failed machine from one that is merely ….
Show the answer
During a partial failure, the caller cannot tell a failed machine from one that is merely slow.
In both cases, no response arrives before the timeout. That is what forces retries to be designed safely.
Remote procedure call: what is it?
Show the answer
A technique for calling a function on another machine with the syntax of a local call; a stub turns the arguments into bytes, sends them, then decodes the response.
The syntax is that of a local call, but the behaviour is not: there is a network in the middle, hence delays, losses and partial failures.