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

Two-Phase Commit

টু-ফেজ কমিট

Prepare, তারপর commit — শার্ডজুড়ে atomic transaction-এর ক্লাসিক protocol; coordinator blocking-ই দুর্বলতা।

also: 2pc, two-phase-commit-protocol

Phase 1 (prepare):  coordinator → সব participant: "commit করতে পারবে?"
                    participant lock ধরে 'yes' বললে আর পিছোয়া নেই
Phase 2 (commit):   সবাই yes ⇒ COMMIT broadcast; একটাও no/timeout ⇒ ABORT
  • Participant ‘yes’-এর পরে আটকে থাকে in-doubt state-এ — locks ধরে, coordinator-এর decision log না পড়ে কিছু করার অধিকার নেই
  • Coordinator crash = পুরো transaction জিম্মি; recovery-র ভরসা coordination log + অন্য participant-দের সঙ্গে যোগাযোগ
  • দাম: প্রতি op-এ দুই round-trip + লম্বা lock hold — throughput-এর শত্রু; microservices-এ তাই saga, database-এর ভেতরে তাই Percolator-ধাঁচা রূপভেদ