Skip to content

Latest commit

 

History

History
446 lines (260 loc) · 17.1 KB

distributed_systems.md

File metadata and controls

446 lines (260 loc) · 17.1 KB

Distributed systems and computer networks

Table of contents


Introduction and overview

🔗

🎥

Metrics and order of magnitude estimations

🔗


CDN

🔗

🎥

📄


DNS

🔗

🎥

  • S.Keshav. DNS and CDN – CS 436: Distributed Computer Systems (2013)

Big storage: file systems

GFS (Google File System)

🔗

🎥

📄

HDFS (Hadoop Distributed File System)

📄


Big storage: databases

NoSQL databases

🔗

🎥

Google BigTable

🔗

🎥

📄

Redis

🔗

Memcached

🔗

🎥

Transaction processing

🔗

🎥

Two-phase/three-phase commit protocol

🔗

Paxos

🔗

🎥


Computation

MapReduce

🔗

🎥

📄

Unique ID generation

🔗

🎥

  • C.Colohan. Unique ID – Distributed Systems Design (2019)

Distributed systems

Autocomplete

🔗

Facebook

🎥

Google Maps

🎥

Search

Google Search

📄

Elasticsearch

🔗

Distributed search query execution

🔗

Stack Overflow

🔗

🎥

Twitter

🔗

YouTube

🎥

Instagram

🔗

🎥


Protocols

Layer 4 protocols

🔗

UDP

📖

TCP

🔗

📖

Layer 7 protocols

HTTP

📖

History

🔗

WebSocket

🔗

CAP theorem

It is impossible for a distributed data store to simultaneously provide more than two out of the following three guarantees: consistency (every read receives the most recent write or an error), availability (every request receives a non-error response, without the guarantee that it contains the most recent write), and partition tolerance (the system continues to operate despite an arbitrary number of messages being dropped or delayed by the network between nodes).

🔗

🎥

Load balancing

Layer 4 load balancing

Layer 4 load balancing operates at the intermediate transport layer (Layer 4), which deals with delivery of messages with no regard to the content of the messages (a load-balancing decision is based on the source and destination IP addresses and ports recorded in the packet header). Nowadays, CPU and memory are sufficiently fast and cheap that the performance advantage for Layer 4 load balancing has become negligible or irrelevant in most situations.

🔗

Layer 7 load balancing

Layer 7 load balancing operates at the high‑level application layer (Layer 7), which deals with the actual content of each message (a load‑balancing decision is based on the content of the message, like a URL or cookie).

🔗


Blockchain

🎥

Distributed graphs