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-ধাঁচা রূপভেদ