Skip to content

Latest commit

 

History

History
45 lines (29 loc) · 1.36 KB

Week10-Fri.md

File metadata and controls

45 lines (29 loc) · 1.36 KB
layout title sched-activation
course
DynamoDB internal algorithms (Friday, Week 10, March 21, 2014)
class="active"

Amazon DynamoDB

Cluster-level infrastructure for storage

  • Scalable
  • Strong performance SLAs for 99.9% of queries
  • Highly available
  • Sacrifices consistency
  • Application expected to resolve version conflicts, not Dynamo

This is Version 1 (2007)

Version 2 has simpler interface

  • Many of same underlying principles
  • Still distinguishes between consistent and eventually consistent reads

Vector clocks in writes

The first node to do the write "owns" the write's time

  • Replicas (if W > 1) record the "owner's" time

Five writes to a Dynamo key, including a partition and reconciliation by the client

Partition opens room for several "owners"

  • Timestamps diverge
  • When partitions end, app must reconcile

Client must record vector clocks

Every write preceded by a read to get the current clock

  • Pass that clock value as an argument to the write
  • The node uses that context

The original paper is {{site.data.bibliography.decandia2007.title}}.

If you're interested in the full algorithm, David Drysdale has implemented it in Python.