Abstractions Flashcards
Why do we need abstraction?
It helps us see the big picture why obsfucating details that we don’t need
What is a database abstraction called?
Transaction
Mutate from one consistent state to another, only providing info on success or failure
What is example of a network abstraction?
Remote procedure calls (RPC)
What are consistency models?
Abstractions to reason about correctness of a distributed system doing concurrent data reads, writes and mutations
What are the four types of consistency models, from weakest to strongest?
Eventual consistency, causal consistency, sequential consistency, strict consistency/linearizability
What is the CAP or Brewer”s theorem?
Can only guarantee two out of three
1. Consistency
2. Availability
3. Partition tolerance
How many types of failure models are there?
Five
Name the failure models, from easy to deal to difficult.
- Fail stop - halts permanently but other nodes can still communicate
- Crash - half’s silently and other nodes cannot detect this
- Omission - node fails to send or receive messages. Send omission failure (fails to respond to incoming request) and receive omission failure
- Temporal - generate results but too late to be useful, usually from bad algo design or sync between clocks
- Byzantine - random behavior, bug or malicious attacks