Three-Phase Commit
থ্রি-ফেজ কমিট
CanCommit–PreCommit–DoCommit — 2PC-র blocking কাটার চেষ্টা; partition হলে নিজেই ভাঙে, তাই production-এ নেই।
also: 3pc
1. CanCommit : "পারবে?" → yes/no
2. PreCommit : "তৈরি থাকো" ← abort-safe fallback state
3. DoCommit : "করো!" → timeout-এ participant নিজেই commit
- Non-blocking-এর ভরসা: coordinator মরলে participant timeout দেখে pre-commit state থেকে commit সিদ্ধান্ত নিতে পারে — অপেক্ষা নয়
- Fatal flaw: network partition-এ বিচ্ছিন্ন group-এর একাধিক ‘coordinator’ জন্মায় — এক দল commit, আরেক দল abort → inconsistent
- Practical verdict: 3PC শুধু fail-stop (crash, no message loss) model- ঠিক; বাস্তব network-এ Paxos/Raft consensus-ই উত্তর