In computer networking and distributed databases, the three-phase commit protocol (3PC) is a distributed algorithm that ensures all nodes in a system agree to commit or abort a transaction. It improves upon the two-phase commit protocol (2PC) by eliminating the possibility of indefinite blocking caused by a specific type of failure during the commit phase.