Lesson 1: Introduction to Distributed Systems Flashcards

1
Q

What is a distributed system?

A

“A distributed system is one in which the failure of a computer you didn’t even know existed can render your own computer unusable” - Leslie Lamport

A collection of computing units that interact by exchanging messages via an interconnection network and appear to external users as a single coherent computing facility (e.g., there is a common goal that the system must accomplish and all system componets must contribute to it)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Describe a system model of a distributed system

A
  • two or more nodes
  • connected via communication channels
  • send and receive messages
  • each node contributes to the overall system state

Nodes receive a message from a channel, take some time to act on it, send a message to (one or more) channels.

Actions are triggered in response to messages. The outcome of the actions is that the state at an individual node may change.

Messages spend some time in the channel and then are delivered (zero or more times, ideally exactly once)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

What is unique and what is hard about distributed systems?

A

Asynchrony
- Instant vs bounded vs unpredictable vs infinite latency
- Implication on system design

Failures
- From “failstop” to transient to Byzantine/can’t tell
- Server/process vs network

Consistency (single up-to-date copy of data or agreement therof)
- Concurrency, ordering
- Replication caching

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Why are system models important in distributed systems?

A

Using system models and analyzing system behavior using models is important because otherwise we’d have to build prototypes and perform experimental validation under all scenarios.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

What are models characterized by?

A
  • Elements and rules (e.g., a system is modeled as a collection of nodes, channels, etc.)
  • Invariants aka assumptions (e.g., every message is delivered after sometime -> assumes the network will not fail)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

When is a model good enough?

A
  • Accurate: is it possible to learn some truths about the real system using the model?
  • Tractable: are analysis of a certain problem using the model even possible?

When defining or picking a model, does it:
- Allow us to demonstrate the problem?
- Prototype a solution to the problem in the context of the model?

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

What are the 8 fallacies of distributed computing?

A
  1. The network is reliable
  2. Latency is zero
  3. Bandwidth is infinite
  4. The network is secure
  5. Topology doesn’t change
  6. There is one administrator
  7. Transport cost is zero
  8. The network is homogenous
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

What are desirable properties of a distributed system?

A

Fault-tolerant: it can recover from component failures without performing incorrect actions.

Highly available: it can restore operations, permitting it to resume providing services even when some components have failed.

Recoverable: failed components can restart themselves and rejoin the system, after the cause of failure has been repaired.

Consistent: the system can coordinate actions by multiple components often in the presence of concurrency and failure. This underlies the ability of a distributed system to act like a non-distributed system.

Scalable: It can operate correctly even as some aspect of the system is scaled to a larger size.

Predictable performance: the ability to provide desired responsiveness in a timely manner.

Secure: the system authenticates access to data and services.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

What makes a system “correct”?

A

A distributed system should behave as if it were a single coherent entity.

Given a set of inputs inputs, the output of a distributed system and the output of a single coherent entity should be identical.

The output of a system reflects all nodes.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

What is the CAP Theorem?

A

The CAP Theorem says a distributed system can deliver only two of three desired characteristics: consistency, availability, and partition tolerance.

The CAP Theorem implies that when there’s a network partition then there’s an availability vs consistency tradeoff.

Slow response == no response
low latency == no availability
availability vs consistency == latency vs consistency

How well did you know this?
1
Not at all
2
3
4
5
Perfectly