‹ back Home/Distributed systems

Distributed systems

My projects.

I’ve completed a few projects in distributed systems.

I’m also part of a really cool distributed systems reading group. We’ve done a bunch of sessions on different systems: GFS, Cassandra, Mystceti, TikTok.

Papers.

Concepts.

  • Fallacies of distributed computing
  • Databases
    • Log-structured merge trees (LSTM)
      • SSTable - sorted string table
      • Memtable - in-memory table, before they are flushed to disk as SSTable
    • B-Tree
    • B+-Tree
  • Clocks
    • Wall clock
    • Logical clock
    • Vector clock
    • “in general, synchronized clocks can be used to avoid communication in a distributed system”

Database systems.

What Goes Around Comes Around… And Around…

Types of databases:

  • MapReduce Systems
  • Key-value Stores
  • Document Databases
  • Column Family / Wide-Column,
  • Text Search Engines
  • Array Databases
  • Vector Databases
  • Graph Databases

Consensus.

Sharding and scaling.

  • Control plane vs. data plane.
  • Dividing work into fixed-size units
    • GFS: chunks
    • Bigtable: key spans, tablet servers
  • Stripes, replication groups, reed-solomun
    • idea: instead of replicating whole chunks on N nodes, replicate dynamic sized chunks using Reed-Solomun coding
    • used in S3
  • Reliable system from unreliable parts:
    • Consensus (Paxos/Tendermint): failure detector (timeouts) + leader-based system from unreliable nodes

Replication

  • quorum-based replication
  • chain replication

Networking.

Study.

Systems I’m familiar with / a fan of:

Learn more.

  • TLA+: Temporal Logic of Actions.
    • TLA+ is a language for formally modelling distributed systems.
    • Notes
 
0:00