Distributed algorithms

From Wikipedia, the free encyclopedia

A distributed algorithm is an algorithm that tries to solve a typical problem in distributed computing.

Here is a list of distributed algorithms by problem:

Contents

[edit] Leader Election

[edit] Consensus

Consensus Algorithms try to solve the problem of a number of processes agreeing on a common decision. More precisely, a Consensus protocol must satisfy the four formal properties below.

  • Termination: every correct process decides some value.
  • Validity: if all processes propose the same value v, then every correct process decides v.
  • Integrity: every correct process decides at most one value, and if it decides some value v, then v must have been proposed by some process.
  • Agreement: if a correct process decides v, then every correct process decides v.

A typical algorithm for solving consensus is the paxos algorithm.

[edit] Atomic commit

An atomic commit is an operation where a set of distinct changes is applied as a single operation. If the atomic commit succeeds, it means that all the changes have been applied. If there is a failure before the atomic commit can be completed, the "commit" is aborted and no changes will be applied. Algorithms for solving the atomic commit protocol include the two-phase commit protocol and the three-phase commit protocol.

[edit] Reliable Broadcast

Reliable broadcast is a communication primitive in distributed systems. A reliable broadcast is defined by the following properties:

  • validity - if a correct process sends a message, then some correct process will eventually deliver that message
  • agreement - if a correct process delivers a message, then all correct processes eventually deliver that message
  • integrity - every correct process delivers the same message at most once and only if that message has been sent by a process

A reliable broadcast can have sequential, causal or total ordering.

[edit] Replication

ROWA, ROWAA, QA

[edit] External links