3PC protocol

The 3PC protocol is an extension of the 2PC protocol, and its goal is to overcome its limits, which are related to its blocking nature.

One of the main features of this consensus protocol is that it is non-blocking; this doesn't mean that the participants are not blocked during processing, but it means that the protocol can proceed in spite of failures.

It consists of three phases; the prepare phase and the commit (or abort) phase are the same as those of the 2PC protocol.

However, it introduces a new phase, which we can define as a prepared state, where all of the participants of the transaction will define their statuses. The status can be either waiting or pre-commit. This means that the final phase can only have one, final state—aborted, if the previous phase was waiting, or commit, if the previous phase was pre-commit.

3PC mitigates the blocking nature of 2PC. The problem is that it obtains it with a more complicated protocol, and with a need to send another message before deciding to commit or abort the transaction. Furthermore, it does not solve the issue with network partitions.

3PC is not widely used in production environments.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset