Intro To Distributed Systems
These are my notes summarizing Lesson 1 of CS-7210.
Summary
Characteristics of a Distributed System
Distributed System := A collection of computing resources, connected via
some network that behaves as a single system.
Distributed System := A collection of computing resources, connected via some network that behaves as a single system.
There is no (theoretical) limit
to the number of computing resources, typically called nodes
, but the number
of nodes, and other complexities, should be invisible to the end user.
A distributed system should also be able to scale, meaning add nodes to or remove nodes from the system, as well as have some degree of fault tolerance.
Role of Models
We typically represent distributed sytems as a
graph. We represent nodes as
vertices and communication between nodes as edges. In more complex models, you
can even represent things like
state by labeling the
nodes and changes in state then change the label (going from S1
to S1'
, for
example).
The main considerations for models are that they accurately represent the problem
and allow the solution to be analyzed
CAP Theorem
The CAP Theorem is pretty essential to distributed sytems. It basically describes the idea that systems can be at most two of consistent, available, or partition tolerant.
Consistent := Every node in the system has accurate access to the most recent information.
Available := Every request gets a valid response.
Partition Tolerant := The system continues to operate regardless of communication failures.
There are also extensions to the CAP Theorem, such as the PACELC Theorem which states that you only need to choose between the original three characteristics when there is a partition, otherwise you additionally need to choose between latency and consistency.