Content deleted Content added
Reverted 1 edit by Navjotsandhu (talk). (TW) |
RandFreeman (talk | contribs) Adding local short description: "Algorithm run on hardware built from interconnected processors", overriding Wikidata description "algorithm designed to run on computer hardware constructed from interconnected processors" |
||
(27 intermediate revisions by 24 users not shown) | |||
Line 1:
{{Short description|Algorithm run on hardware built from interconnected processors}}
A '''distributed algorithm''' is an [[algorithm]] designed to run on [[computer hardware]] constructed from interconnected [[Central processing unit|processors]]. Distributed algorithms are used in
Distributed algorithms are a sub-type of [[
== Standard problems ==
; [[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
; [[Consensus (computer science)|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 <math>v</math>, then every correct process decides <math>v</math>.
:* '''Integrity''': every correct process decides at most one value, and if it decides some value <math>v</math>, then <math>v</math> must have been proposed by some process.
:* '''Agreement''': if a correct process decides <math>v</math>, then every correct process decides <math>v</math>.
:Common algorithms for solving consensus are the [[Paxos algorithm]] and the [[Raft (computer science)|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.▼
▲: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 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]]
;[[Terminating Reliable Broadcast|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.
:* '''
:* '''
:A reliable broadcast can have sequential, causal or total ordering.
; [[Replication (computer science)|Replication]]
; [[Resource allocation]]
Line 46 ⟶ 36:
== Further reading ==
* {{citation|author1=Christian Cachin |author2=Rachid Guerraoui |author3=Luís Rodrigues |title=Introduction to Reliable and Secure Distributed Programming| publisher=Springer| year=2011|bibcode=2011itra.book.....C | isbn=978-3-642-15259-7| edition=2.}}
*C. Rodríguez, M. Villagra and B. Barán, {{doi-inline|10.1109/BIMNICS.2007.4610083|Asynchronous team algorithms for Boolean Satisfiability}}, Bionetics2007, pp. 66–69, 2007.
==
*{{Commonscatinline|Distributed algorithms}}
*[http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-852j-distributed-algorithms-fall-2009/ MIT Open Courseware - Distributed Algorithms] <!-- material here should eventually be absorbed into this article -->
|