1/136
A comprehensive set of flashcards covering key concepts in distributed systems and networking.
Name | Mastery | Learn | Test | Matching | Spaced |
---|
No study sessions yet.
Distributed System
A system composed of more than one computer (node) that work together to achieve performance or provide services that would be hard or impossible to attain on a single computer.
Node
Any computer or device (desktop, server, mobile phone, etc.) that participates in a distributed system by having a network interface.
Fault
A malfunction or failure in one or more components of a system.
Fault Tolerance
The ability of a system to continue operating as a whole despite the failure of some of its components.
System Model
A set of assumptions made about the behavior of nodes, the network, and failures when designing distributed algorithms.
Crash-Stop (Fail-stop) Model
A failure mode where a node suddenly stops functioning and does not recover.
Crash-Recovery (Fail-recovery) Model
A failure mode where a node crashes unexpectedly but may later recover and resume operation.
Byzantine Failure
A failure in which a node behaves arbitrarily (including malicious behavior or incorrect outputs) rather than just crashing.
Two Generals Problem
A classic thought experiment that shows it is impossible to achieve absolute certainty over unreliable communication channels.
Distributed Consensus
The process by which multiple nodes in a distributed system agree on a single data value or a course of action.
FLP Impossibility Theorem
A formal result stating that in an asynchronous distributed system with even one faulty process (crash failure), reaching guaranteed consensus is impossible.
Middleware (T.R.O.S.E.D.S. Goals)
Software that provides common services and capabilities to applications outside of what is offered by the operating system.
Remote Procedure Call (RPC)
A protocol that enables a program to cause a procedure (subroutine) to execute on a different address space as if it were a local call.
Protocol Styles (in RPC)
The design patterns used for remote invocation, including fire-and-forget, request-reply, and request-reply-acknowledge.
Marshalling/Unmarshalling
The process of converting an object into a byte stream for transmission over a network and then converting it back into an object.
Client Stub & Proxy
Client Stub – a component that packages a remote procedure call into a network message; Proxy – a local representative that provides the same interface as the remote object.
Server Stub (Skeleton)
A counterpart on the server side that receives the message, unmarshals it, and calls the actual procedure.
Dispatcher
The component on the server that receives incoming messages and routes them to the appropriate server stub.
Remote Method Invocation (RMI)
Java’s built-in middleware similar to RPC, enabling one Java virtual machine to invoke methods on an object in another JVM.
REST (Representational State Transfer)
An architectural style for designing networked applications that rely on stateless, client-server, cacheable communications.
HTTP Content Types & Semantics
Specifies the media type of the data being transmitted and provides guidelines on how messages should be formed and interpreted.
Idempotence in REST
The property that repeating the same RESTful operation produces the same result.
Unicast
A one-to-one communication model where a message is sent from a single sender to a single receiver.
Broadcast
A one-to-all communication model where a message is sent from one node to all other nodes in a network.
Multicast
A one-to-many model where a message is sent to a specific group of nodes.
Many-to-Many Communication
A communication pattern where multiple senders and multiple receivers exchange messages.
Group Communication
A middleware service that allows a process to send a message to a group of nodes with a single command.
Reliable Multicast
A multicast protocol that includes mechanisms to ensure that messages are delivered to all intended recipients despite network issues.
Atomic Multicast
A multicast communication guarantee that ensures a message is delivered either to all nodes or none at all.
ACK (Acknowledgement) / NACK (Negative Acknowledgement)
ACK – a message confirming successful receipt; NACK – a message indicating that a message was not received.
NACK Suppression
A mechanism to limit the number of NACKs sent to prevent network overload.
Hierarchical Feedback Control
A design approach that organizes receivers in a hierarchy to handle feedback more efficiently.
Security Threats
Potential risks that can compromise a system’s confidentiality, integrity, or availability.
Encryption
The process of converting plaintext into ciphertext to secure information against unauthorized access.
Symmetric Cryptography
A cryptographic method in which the same key is used for both encryption and decryption.
Ciphertext and Plaintext
Plaintext is the original, unencrypted data; Ciphertext is the encrypted data.
Diffusion
A property of cryptographic algorithms where the influence of a single plaintext bit is spread over many bits of ciphertext.
Asymmetric Cryptography
A cryptographic method that employs a pair of keys—a public key for encryption and a private key for decryption.
RSA
A widely used public-key cryptosystem that relies on the difficulty of factoring large composite numbers.
Digital Signature
A cryptographic technique that produces a unique hash signature for a message to ensure authenticity and integrity.
Certificate Authority (CA)
A trusted third-party organization that verifies and digitally signs public keys.
Client-Server Architecture
A computing model where dedicated servers provide resources or services and clients consume them.
Peer-to-Peer (P2P) Systems
A distributed network structure where every node acts as both a client and a server.
Distributed Hash Table (DHT)
A decentralized data structure that provides a lookup service akin to a hash table across multiple nodes.
Hash Table (Refresher)
A data structure that maps keys to values using a hash function.
Chord Protocol
A DHT protocol that organizes nodes in a circular structure using consistent hashing for even key distribution.
Cloud Computing
The delivery of computing services over the Internet for faster innovation and flexible resources.
Vertical Scaling (Scale-Up)
Increasing a single server’s capacity by adding more CPU, RAM, or storage.
Horizontal Scaling (Scale-Out)
Adding more servers to distribute a service’s load over multiple machines.
Load Balancer
A component that distributes incoming network traffic across multiple servers.
Stateful vs. Stateless Services
Stateful services maintain state between requests; stateless services treat each request independently.
Containment
Encapsulating a software system along with its dependencies into a single, isolated unit for easy deployment.
Virtual Machine (VM)
An emulated computer system providing the functionality of a physical computer.
Hypervisor
Software that creates and manages virtual machines by abstracting hardware resources.
Virtualisation
The creation of virtual versions of computing resources.
Container
A lightweight, stand-alone package that includes everything needed to run software.
Docker
A platform for developing, shipping, and running containers.
Namespaces
A Linux kernel feature that isolates system resources so that processes see their own separate instance.
Cgroups (Control Groups)
A Linux kernel feature used to limit and monitor resource usage of process groups.
VM Migration
The process of moving a virtual machine from one physical host to another with minimal downtime.
Abstraction
Hiding complex details behind simpler interfaces.
Idempotence
The property that repeating the same operation yields the same result.
Latency
The delay between a request being sent and its response.
Scalability
The ability of a system to handle increased load by adding resources.
Transparency
The property of a system that hides its distributed nature from the end user.
Openness and Interoperability
Ensuring systems can work together via standardized protocols.
Extensibility
The ease with which a system can add new features or modify existing ones.
Physical Clock
A hardware-based clock that provides time stamps but may suffer from skew and drift.
Clock Skew & Offset
The difference between a local clock and a reference clock’s time.
Ordering Distributed Events
The challenge of ensuring that all replicas process events in the same sequence.
Lamport Clocks
Logical clocks that assign scalar timestamps to events.
Vector Clocks
An extension of logical clocks that maintain an array of counters to capture causality.
Cryptographic Hash Function
A function that maps any-size input to a fixed-size digest in a collision-resistant manner.
Digest
The fixed-length output of a cryptographic hash function.
Double Spending
An attempt to use the same digital token multiple times fraudulently.
Decentralized Ledger & Blockchain
A distributed record of transactions maintained locally by each node without a central authority.
Peer-to-Peer (P2P) Network (in blockchain)
A network where each node functions as both a client and a server, storing the full ledger.
Gossip Protocol
A communication method where nodes forward messages to a small set of neighbors repeatedly.
Consensus Protocol (in Blockchain)
A mechanism by which participants agree on a single history of transactions.
Permissionless System
A decentralized system where any node can join without approval.
Strong Consistency
A model in which a read always returns the most recent write once updated across all replicas.
Eventual Consistency
A relaxed consistency model in which replicas eventually converge to the same state.
Quorum-Based Reads/Writes
Operations that require a majority of replicas to agree for a value to be committed.
CAP Theorem
The result stating that in the presence of network partitions, a distributed system can provide only two of the three guarantees.
Conflict Resolution (Last-Write-Wins)
A policy where, in conflicting updates, the write with the later timestamp is taken as final.
Read-Write & Write-Write Conflicts
Situations where interleaved operations lead to stale reads or overwritten writes.
Direct Communication
A communication model where the sender explicitly addresses the receiver.
Indirect Communication
Communication via an intermediary that decouples sender and receiver.
Group Communication (again)
A form of indirect communication where messages are sent to a group rather than a single individual.
Publish–Subscribe (Pub/Sub) System
A messaging pattern where publishers send events without specifying receivers.
Subscription Models – Channel-Based
Fixed channels in which subscribers receive all messages sent to that channel.
Subscription Models – Topic-Based
Events are tagged with topics and subscribers express interest in specific topics.
Subscription Models – Type-Based
Subscriptions based on data types in object-oriented languages.
Subscription Models – Content-Based
Subscribers define filters based on message content for fine-grained control.
Broker (in Pub/Sub)
An intermediary that matches published events with subscriber filters.
Event Routing
The process of efficiently delivering events only to subscribers whose filters match the event.
Data Storage Technologies
Various storage mediums such as disks, main memory, and networked/cloud storage.
Memory Hierarchy
The layered organization of storage from the fastest and smallest to the slowest and largest.
Cache
A smaller, faster storage area that temporarily holds a subset of data.
Principle of Locality
The tendency for programs to repeatedly access a relatively small portion of memory.