Crash-Recovery Model
ক্র্যাশ-রিকভারি মডেল
Process যেকোনো মুহূর্তে মরে, restart হয় — কী stable storage-এ টিকে থাকে আর কী memory-তে হারায়, সেই চুক্তি।
also: fail-recover, crash-stop
Model-টা দুই প্রশ্নে দাঁড়ায়:
1. কখন মরে? → যেকোনো instruction-এর পরে (even mid-write)
2. ফিরে এলে কী মনে থাকে? → শুধু fsync হওয়া stable state
- Volatile vs persistent ভাগটাই algorithm design-এর খেলা — Raft-এর currentTerm/votedFor/log persist, বাকি সব (commitIndex, role) relearn
- Recovery-র পরে operations replay হতে পারে (message in flight) — তাই handler idempotent হওয়া চুক্তির অংশ
- Fail-stop (মরলে সৎভাবে থামে) + fail-recover = production consensus systems-এর default model; byzantine assumption নিলে খরচ 3f+1-এ লাফায়