The completion of requests in a distributed system is crucial to ensure durability and consistency. A two-phase protocol can be used to meet the requirements, which involves transmitting the request as tentative to all nodes, receiving necessary acknowledgements, and then issuing messages to complete the request. The process has three stages: incomplete, durable, and complete, with the leader being free to transmit the request as complete once it becomes durable. Completion and cancellation are mutually exclusive, and timing the response can be optimized for performance or consistency depending on the system's design. In MySQL, a semi-sync protocol does not support this two-phase method, introducing corner cases that require mitigation. The completion of requests is an essential part of the consensus algorithm, and understanding it is crucial to designing reliable distributed systems.