Non-blocking Atomic Commitment in the Presence of Process Crash Failures
The non-blocking atomic commitment (NBAC) agreement abstraction originated in databases, and is now pervasive in many distributed applications. It is a basic distributed agreement abstraction. Let us consider a job that is split into n independent parts, each executed by a process. When each process terminated the part assigned to it, the set of processes have to agree on the fate of the full job. They have to commit it if everything went well at each of them (and then each process makes its local results permanent) or abort it if something went wrong at one or several of them (and each process then discards its result). To this end, the processes starts a non-blocking atomic commitment algorithm. If locally everything went well, a process votes yes, otherwise it votes no. The idea is that if all processes voted yes, they have to commit their local computation, and if a process voted no, they have to abort them.
KeywordsCrash failure Fast abort Fast commit Impossibility NBAC Synchronous system Weak fast abort Weak fast commit
Unable to display preview. Download preview PDF.