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.

  1. Concepts
  2. Questions
  3. Sort and link
  4. On the diagram
  5. 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.