Amazon's Dynamo
Amazonが内部でコアDBとして使用しているDynamoのpaper
ちなみにDynamoDBとしてAWSで一般に公開されているDyanmoのホステッドバージョンとは別物でDynamoDBはシングルリーダーレプリケーションとなっている
問題とそれに対するテクニック
Partitioning(クラスタへの参加)
Consistent Hashing (コンシステントハッシング)
High Availability for writes
Vector clocks with reconciliation during reads(ベクタークロックと読み取り時の調停)
Handling temporary failures(一時的な障害への対処)
Sloppy Quorum and hinted handoff(いいかげんなクオラムとヒント付きハンドオフ)
Recovering from permanent failures(永続的な障害からの復旧)
Anti-entropy using Merkle trees(マークル木によるアンチエントロピー)
Membership and failure detection
Gossipプロトコルによるメンバ検知と障害検知
今となっては割と普遍的なテクニックだが各種分散DBが多く参照して実装の参考とした重要なpaper