Foundationপ্রথম নীতি থেকে
LEVEL 9 · Distributed Systems

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-ই উত্তর