Finish day 2
parent
f2542ecc1a
commit
008c3a1af7
|
@ -156,3 +156,34 @@ Find the failure modes: What could go wrong?
|
||||||
|
|
||||||
* Timeout
|
* Timeout
|
||||||
* Retransmit message
|
* Retransmit message
|
||||||
|
|
||||||
|
#### Example with processes and caculations
|
||||||
|
|
||||||
|
A calculation is an abstract, so how can we talk generally about the failure modes.
|
||||||
|
|
||||||
|
**Step 1: Failure modes**
|
||||||
|
|
||||||
|
One failure mode
|
||||||
|
|
||||||
|
**Step 2: Detect, simplify, inject errors**
|
||||||
|
|
||||||
|
All failed acceptance tests will "PANIC" or "STOP".
|
||||||
|
|
||||||
|
**Step 3: Handling with redundancy**
|
||||||
|
|
||||||
|
There are three solutions:
|
||||||
|
|
||||||
|
1. Checkpoint restart
|
||||||
|
* Do all the work incuding the acceptance test
|
||||||
|
* Wait with the "side effects"
|
||||||
|
* Store a checkpoint
|
||||||
|
* Do the "side effects"
|
||||||
|
2. Process pairs
|
||||||
|
* Crash and let an another process take over
|
||||||
|
3. Presistent processes
|
||||||
|
|
||||||
|
|
||||||
|
## Transactions
|
||||||
|
|
||||||
|
A transaction is a design framework for Damage Confinement and Error Recovery.
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue