Abstractions Flashcards

1
Q

Why do we need abstraction?

A

It helps us see the big picture why obsfucating details that we don’t need

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

What is a database abstraction called?

A

Transaction
Mutate from one consistent state to another, only providing info on success or failure

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

What is example of a network abstraction?

A

Remote procedure calls (RPC)

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

What are consistency models?

A

Abstractions to reason about correctness of a distributed system doing concurrent data reads, writes and mutations

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

What are the four types of consistency models, from weakest to strongest?

A

Eventual consistency, causal consistency, sequential consistency, strict consistency/linearizability

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

What is the CAP or Brewer”s theorem?

A

Can only guarantee two out of three
1. Consistency
2. Availability
3. Partition tolerance

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

How many types of failure models are there?

A

Five

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

Name the failure models, from easy to deal to difficult.

A
  1. Fail stop - halts permanently but other nodes can still communicate
  2. Crash - half’s silently and other nodes cannot detect this
  3. Omission - node fails to send or receive messages. Send omission failure (fails to respond to incoming request) and receive omission failure
  4. Temporal - generate results but too late to be useful, usually from bad algo design or sync between clocks
  5. Byzantine - random behavior, bug or malicious attacks
How well did you know this?
1
Not at all
2
3
4
5
Perfectly