A distributed algorithm is an algorithm designed to run on computer hardware constructed from interconnected processors. Distributed algorithms are used in different application areas of distributed computing, such as telecommunications, scientific computing, distributed information processing, and real-time process control. Standard problems solved by distributed algorithms include leader election, consensus, distributed search, spanning tree generation, mutual exclusion, and resource allocation.[1]

Distributed algorithms are a sub-type of parallel algorithm, typically executed concurrently, with separate parts of the algorithm being run simultaneously on independent processors, and having limited information about what the other parts of the algorithm are doing. One of the major challenges in developing and implementing distributed algorithms is successfully coordinating the behavior of the independent parts of the algorithm in the face of processor failures and unreliable communications links. The choice of an appropriate distributed algorithm to solve a given problem depends on both the characteristics of the problem, and characteristics of the system the algorithm will run on such as the type and probability of processor or link failures, the kind of inter-process communication that can be performed, and the level of timing synchronization between separate processes.[1]

Standard problems

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 problem include the two-phase commit protocol and the three-phase commit protocol.
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 , then every correct process decides .
  • Integrity: every correct process decides at most one value, and if it decides some value , then must have been proposed by some process.
  • Agreement: if a correct process decides , then every correct process decides .
Common algorithms for solving consensus are the Paxos algorithm and the Raft algorithm.
Distributed search
Leader election
Leader election is the process of designating a single process as the organizer of some task distributed among several computers (nodes). Before the task is begun, all network nodes are unaware of which node will serve as the "leader," or coordinator, of the task. After a leader election algorithm has been run, however, each node throughout the network recognizes a particular, unique node as the task leader.
Mutual exclusion
Non-blocking data structures
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.
Replication
Resource allocation
Spanning tree generation
Symmetry breaking, e.g. vertex coloring

References

edit
  1. ^ a b Lynch, Nancy (1996). Distributed Algorithms. San Francisco, CA: Morgan Kaufmann Publishers. ISBN 978-1-55860-348-6.

Further reading

edit
edit
  • Wikimedia Commons logo Media related to Distributed algorithms at Wikimedia Commons
  • MIT Open Courseware - Distributed Algorithms

📚 Artikel Terkait di Wikipedia

Distributed computing

message passing. The word distributed in terms such as "distributed system", "distributed programming", and "distributed algorithm" originally referred to

List of algorithms

iterations Gale–Shapley algorithm: solves the stable matching problem Pseudorandom number generators (uniformly distributed—see also List of pseudorandom

Chandy–Lamport algorithm

Chandy–Lamport algorithm is a snapshot algorithm used in distributed computing for recording a consistent global state of an asynchronous distributed system.

Paxos (computer science)

machine replication is a technique for converting an algorithm into a fault-tolerant, distributed implementation. Ad-hoc techniques may leave important

Graph coloring

the distributed edge coloring problem as well. Decentralized algorithms are ones where no message passing is allowed (in contrast to distributed algorithms

Algorithm

In mathematics and computer science, an algorithm (/ˈælɡərɪðəm/ ) is a finite sequence of mathematically rigorous instructions, typically used to solve

PageRank

PageRank (PR) is an algorithm used by Google Search to rank web pages in their search engine results. It is named after both the term "web page" and co-founder

Lamport's distributed mutual exclusion algorithm

Lamport's Distributed Mutual Exclusion Algorithm is a contention-based algorithm for mutual exclusion on a distributed system. Every process maintains