AWS Dynamodb

Known Tech Choices

Tradeoffs

It's a key value store with that favors availability and scalability over consistency and isolation

Programming:

  • Java

Components

  • Request coordination (Load balancing)
  • Membership and failure detection
  • Local persistence engine (DB engine)
Overly simplified look:
Request → Load balaning coordinators → Request fans out to nodes based on hash of the key → DB engine
Membership software runs on each of the node as background tasks.
notion image

Architectural Components

DB Engines

It's a pluggable architecture, but those are mentioned in [1]
  • Berkeley Database (BDB) Transactional Data Store2
  • BDB Java Edition
  • MySQL

Data structures

  • Merkle Trees → Synchronizing divergent replicas in the background.

Techniques

notion image
 

Known People


Papers

  1. https://assets.amazon.science/ac/1d/eb50c4064c538c8ac440ce6a1d91/dynamo-amazons-highly-available-key-value-store.pdf
  1. https://www.usenix.org/system/files/atc22-elhemali.pdf

Timeline

notion image
 
 
Built with Potion.so