diff --git a/ntnu/21v/ttk4145/summary/summary.md b/ntnu/21v/ttk4145/summary/summary.md index f19c7a2..3ca64fc 100644 --- a/ntnu/21v/ttk4145/summary/summary.md +++ b/ntnu/21v/ttk4145/summary/summary.md @@ -155,4 +155,35 @@ Find the failure modes: What could go wrong? **Step 3: Handling with redundancy** * Timeout -* Retransmit message \ No newline at end of file +* 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. +