Explore tens of thousands of sets crafted by our community.
Notable Distributed Algorithms
20
Flashcards
0/20
Chord
Purpose: To enable a distributed system of nodes to self-organize into a hash table. Description: Chord is a protocol and algorithm for building a distributed hash table in a network of computers. It facilitates key/value storage and retrieval in a scalable peer-to-peer system.
Two Generals' Problem
Purpose: To illustrate limitations of distributed systems, specifically the impossibility of achieving a common agreement. Description: This problem demonstrates that it is impossible for two separated generals to agree on a battle plan to act simultaneously when communication may fail.
Byzantine Generals' Problem
Purpose: To illustrate the difficulty of achieving consensus in the presence of treacherous or failing components. Description: This thought experiment requires actors to agree on a concerted strategy to avoid failure, despite some actors being unreliable or malicious.
MapReduce
Purpose: To simplify processing and generating large datasets with a parallel, distributed algorithm on a cluster. Description: MapReduce is a programming model and an associated implementation for processing and generating large data sets that can be parallelized across a distributed cluster of computers.
Ring Algorithm
Purpose: To perform leader election in a network arranged in a logical ring. Description: The Ring Algorithm is used to choose a leader from a set of computers connected in a ring topology, where each computer can only communicate with its immediate neighbors.
Atomic Broadcast
Purpose: To ensure all nodes in a distributed system agree on the order of messages. Description: Atomic Broadcast is a message delivery protocol that ensures all messages are reliably and consistently ordered and delivered across all nodes in a distributed system.
Raft
Purpose: To achieve consensus similar to Paxos but designed to be easier to understand. Description: Raft is a consensus algorithm that is designed to be easy to understand; it's equivalent to Paxos in fault-tolerance and performance but is structurally different.
Gossip Protocols
Purpose: To disseminate information in a reliable and fault-tolerant manner to all members of a distributed system. Description: Gossip Protocols, also known as epidemic protocols, are used to ensure information spreads to all participants in a network, resembling the spread of a virus.
Paxos
Purpose: To reach consensus in a network of unreliable processors. Description: Paxos is a family of protocols for solving consensus in a network of unreliable processors. Consensus is the process of agreeing on one result among a group of participants.
Three-Phase Commit (3PC)
Purpose: To improve fault-tolerance over the Two-Phase Commit protocol. Description: 3PC is an algorithm used in distributed systems to achieve consensus on a commitment to a transaction, which attempts to avoid some of the shortcomings of the Two-Phase Commit protocol.
Zab
Purpose: To achieve high-performance atomic broadcast in distributed systems. Description: Zab is used by Zookeeper for electing a leader and replicating state across all nodes. It ensures every message is delivered in the same order to all processes.
Vector Clocks
Purpose: To provide a mechanism for synchronization among events in a distributed system. Description: Vector Clocks allow for the partial ordering of events, expanding on Lamport Timestamps to capture causality between different processes.
Spanning Tree Protocol (STP)
Purpose: To prevent bridge loops and broadcast radiation in networks. Description: STP is used in computer networks to create a loop-free logical topology for Ethernet networks. The nodes in the network elect a root bridge and compute the shortest path to it.
CAP Theorem
Purpose: To describe the trade-offs between consistency, availability, and partition tolerance. Description: The CAP Theorem posits that in the presence of a network partition, a distributed system can provide at most two out of three guarantees: consistency, availability, and partition tolerance.
Ricart–Agrawala Algorithm
Purpose: To manage mutual exclusion in distributed systems. Description: This algorithm enables multiple sites to agree on the sequential order of access to a shared resource, without a central coordinator.
Lamport Timestamps
Purpose: To create a partial ordering of events in a distributed system. Description: Lamport timestamps are a simple mechanism to determine the order of events in a distributed computer system.
Two-Phase Commit (2PC)
Purpose: To ensure a distributed transaction either commits on all nodes or aborts. Description: 2PC is a type of atomic commitment protocol which is used in distributed computing to achieve agreement on a transaction commit or abort to maintain data consistency.
Distributed Snapshot Algorithm
Purpose: To enable obtaining a consistent global state of a distributed system. Description: This algorithm, often associated with Chandy and Lamport, records a snapshot of the state of an entire distributed system.
Bully Algorithm
Purpose: To elect a coordinator or leader in a distributed system. Description: The Bully Algorithm is an election algorithm designed to elect a leader among a group of machines in a distributed system.
Dijkstra's Algorithm
Purpose: To find the shortest path between nodes in a graph. Description: While not exclusively for distributed systems, Dijkstra's Algorithm is used in network routing to determine the shortest path between nodes in a graph, which could represent different computers on a network.
© Hypatia.Tech. 2024 All rights reserved.