Explore tens of thousands of sets crafted by our community.
Distributed Systems Concepts
29
Flashcards
0/29
Two-phase Commit (2PC)
Two-phase Commit is a distributed algorithm that ensures atomicity in transactions across distributed systems. It consists of a prepare phase and a commit phase to achieve consensus.
Load Balancing
Load balancing is the process of distributing workloads across multiple computing resources to optimize resource use, maximize throughput, and minimize response time.
Replication
Replication involves maintaining copies of the same data on multiple machines to ensure higher availability, fault tolerance, and improved read performance in distributed systems.
Eventual Consistency
Eventual consistency is a consistency model used in distributed computing to achieve high availability by allowing for temporary inconsistencies which resolve to a consistent state given enough time.
Distributed Hash Table (DHT)
A DHT is a class of a decentralized distributed system that provides a lookup service similar to a hash table; keys are assigned to values, and any participating node can efficiently retrieve the value associated with a given key.
CAP Theorem
The CAP Theorem posits that a distributed system can only have two of the following three guarantees at the same time: Consistency, Availability, and Partition tolerance.
Vector Clock
Vector clocks are a mechanism for determining the partial ordering of events in a distributed system and detecting causality between events.
Consensus
Consensus is a process in distributed systems to reach an agreement on a single data value among distributed processes or systems. It is crucial for ensuring coherence and coordination in fault-tolerant systems.
Sharding
Sharding is a method of horizontal partitioning where a database is divided into smaller, faster, more manageable pieces, called shards, which can be spread across multiple servers.
Gossip Protocol
A gossip protocol is a method for spreading information in distributed systems via a 'rumor-spreading' model. This method is fault-tolerant and ensures eventual consistency.
Atomic Broadcast
Atomic broadcast is a communication process in a distributed system where messages are guaranteed to be delivered to all nodes in the same order.
Scalability
Scalability refers to the property of a system to handle a growing amount of work by adding resources to the system.
Shared Nothing Architecture
A distributed system architecture where each node is independent and self-sufficient, and there is no single point of contention across the system.
Quorum
A quorum is the minimum number of votes that a distributed transaction has to obtain in order to be allowed to perform an operation in a distributed system.
Heartbeat
A heartbeat is a periodic signal generated by hardware or software to indicate the normal operation or to synchronize other parts of a system.
Raft Protocol
Raft is a consensus algorithm designed as an alternative to Paxos; it's meant to be more understandable while providing a similar level of fault tolerance.
Read-Write Locks
Read-write locks are synchronization primitives that solve the readers-writers problem by allowing concurrent read access but exclusive write access to a resource.
State Machine Replication
State machine replication is an approach to ensure the fault tolerance of a distributed system by having multiple replicas of the same application, applying changes in the same order to each replica.
Byzantine Fault Tolerance
Byzantine Fault Tolerance is the property of a system to withstand failures of some of its components, including those which give incorrect or conflicting information, similar to the Byzantine Generals' Problem.
Transaction Log
A transaction log is a history of actions executed by a database management system to guarantee ACID properties over crashes or hardware failures.
Fault Tolerance
Fault tolerance is the ability of a system to continue operating properly in the event of the failure of some of its components.
Idempotency
Idempotency is a property of operations in which the operation can be applied multiple times without changing the result beyond the initial application.
Edge Computing
Edge computing refers to the processing of data at the edge of the network, closer to the source of data, to reduce latency and bandwidth use and increase the speed of data processing.
Message Queue
A message queue is a form of asynchronous service-to-service communication used in serverless and microservices architectures. It passes data between different components of a distributed system, often for load leveling.
Distributed File System
A distributed file system (DFS) is a client/server-based application that allows clients to access and process data stored on the server as if it were on their own computer.
Paxos Protocol
Paxos is a family of protocols for solving consensus in a network of unreliable processors (i.e., having the network agree on a single value).
Service Discovery
Service discovery is the automatic detection of devices and services offered by these devices on a computer network.
Microservices Architecture
Microservices architecture is a method of developing software systems that structures an application as a collection of loosely coupled services, which implement business capabilities.
Synchronous and Asynchronous Systems
Synchronous systems operate with a known bound on the time of communication, computation, and other operations, whereas asynchronous systems do not have such time bounds.
© Hypatia.Tech. 2024 All rights reserved.