12.13.Fault Tolerance - Transactions Flashcards

1
Q

What is a characteristic that distinguishes distributed systems from single-machine systems?

A

Partial failure

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

What is the goal when partial failure occurs?

A

Tolerate faults

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

What is being fault tolerant related to?

A

Dependability

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

What is dependability>

A

the trustworthiness of a computing system which allows resilliance to be justifiably placed on the service it delivers

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

What are the requirements for Dependability?

A
  1. Availability
  2. Reliability
  3. Maintainability
  4. Safety
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

What does Safety mean?

A

If and when FAILURES occur the CONSEQUENCES are not catastrophic for the system

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

What does Availability mean?

A

the probability that the system operates correctly at ANY GIVEN MOMENT

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

What does Reliability mean?

A

LENGTH OF TIME that it can run continuously without failure

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

What does Maintainability mean?

A

how EASILY a failed system can be REPAIRED

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

Different types of failures?

A
  1. Crash
  2. Omission
  3. Response
  4. Timing
  5. Arbitrary (Byzanitine)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

What is a technique for failure masking?

A

Redundancy

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

How many types of redundancy are there?

A
  • Physical
  • Information (send extra bits to allow for recovery if need be)
  • Time (repeat action if need be)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

What is one of our most important considerations in failure masking?

A

Making sure that a failure won’t leave the system in an inconsistent state

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

How is avoiding leaving the system in an inconsistent state achieved?

A

1.Atomic operations!

“The sequence of operations must execute as an ATOMIC operation”

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

When do concurrent executions not interfere with each other?

A

If their execution is equivalent to a serial one (they don’t interleave)

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

What does the property of Isolation in distributed systems refer to?

A

Isolated excecution (concurrent applications)

17
Q

What should the distributed application not violate in order to achieve Consistency?

A

Database’s integrity constraints

18
Q

What does durability mean in distributed systems?

A

Changes to the database are persistent

19
Q

What concept allows for the reinforcement of the ACID propertires?

A

transactions

20
Q

What is a transaction?

A

A set of operations that is either fully committed or aborted as a whole. If aborted no operation in the set is executed.

21
Q

What algorithms in the implementation of transactions allow for ISOLATION?

A

Concurrency control

22
Q

What do concurrency control algorithms do to ensure ISOLATION?

A

Ensure execution is equivalent to “serial” execution

23
Q

What algorithms in the implementation of transactions allow for DURABILITY?

A

Recovery algorithms

24
Q

What do recovery algorithms do to ensure DURABILITY?

A
  • replay actions of committed transactions

- undo effects of aborted transactions

25
Q

Two ways to improve concurrency control with locking?

A
  • Optimistic concurrency control (transaction executed normal, checked at commit, aborted if problematic)
  • Timestamp ordering (operations in transactions validated when carried out)
26
Q

Two ways to do recovery when transaction needs to be aborted?

A
  • Backwards (through state checkpoints->Previously correct state)
  • Forwards (correct new state)
27
Q

What problem arises when trying to make transactions where more than one server is involved?

A

the distributed commit problem(ATOMICITY)

Either all servers commit or all abort

28
Q

Protocol to support distributed transactions? (more than one server)

A
  1. pick coordinator
  2. client communicates transaction to coordinator
  3. One or Two phase commit (coordinator communicates abort of transaction to servers)
29
Q

What is the difference between a one phase commit and a two phase commit when dealing with distributed transactions?

A

Two phase commit involves the servers being able to Accept and Execute the commit (rather than just receive the command)

30
Q

What are the drawbacks of the 2-phase commit?

A
  • Coordinator fail (Three-phase commit and multicast?)
  • participants must trust coordinator
  • tranaction must be short
  • distributed deadlock risk
31
Q

How can deadlock be resolved?

A

By aborting one of the transactions

32
Q

When does deadlock occur?

A

When there is a cycle in the wait- for graph of transactions for locks

33
Q

What complicates detecting deadlock in a distributed system?

A
  • Locks are held on different servers

- loop in the entire wait-for graph will not be apparent to any one server

34
Q

One (bad) way of detecting distributed deadlock?

A

Coordinator stores entire wait-for graph (centra point of failure)

35
Q

What is a better way to detect distributed deadlock?

A

Edge chasing (Path pushing)