+ All Categories

Dynamo

Date post: 22-Feb-2016
Category:
Upload: ehren
View: 33 times
Download: 0 times
Share this document with a friend
Description:
Dynamo. Kay Ousterhout. Goals. Small files Always writeable Low latency Measured at 99.9 th percentile. Non-goals. Untrusted nodes Relational schema Hierarchical namespace. Key-Value Store. Big (Old?) Ideas. Replication: Store every object on N nodes. N = 3. Consistent Hashing. - PowerPoint PPT Presentation
Popular Tags:
19
Dynamo Kay Ousterhout
Transcript
Page 1: Dynamo

Dynamo

Kay Ousterhout

Page 2: Dynamo

Goals

• Small files• Always writeable • Low latency–Measured at 99.9th percentile

Page 3: Dynamo

Non-goals

• Untrusted nodes• Relational schema• Hierarchical namespaceKey-Value Store

Page 4: Dynamo

Big (Old?) Ideas

Page 5: Dynamo

Replication: Store every object on N nodes

N = 3

Page 6: Dynamo

Consistent Hashing

C

B

A

G

F

DE

Key

Page 7: Dynamo

Consistent Hashing

C

B

A

G

F

DE

Key

H

Page 8: Dynamo

Consistent Hashing + Virtual Nodes

C

B

A

G

F

DE

Key

H

Page 9: Dynamo

Conflict Resolution: Vector Clocks

Page 10: Dynamo

Basic put()

C

B

A

G

F

DE

H

Coordinator

k:v

k:v([G, 1])

N = 3, W = 2

Page 11: Dynamo

get() with Sloppy Quorum

C

B

A

G

F

DE

H

Coordinator

k?

k?

N = 3, W = 2, R = 2

k:v([G, 1])

k:v([G, 1])

Page 12: Dynamo

Takeaway: Tunable!

Change N,R,W for desired consistency, availability

Page 13: Dynamo

Antientropy: Merkle Trees

Object hashes at leaves

Hash of children

Node A Node B

Page 14: Dynamo

More Ideas

• Hinted handoff• Explicit join/leave mechanism (gossip-based)• Seed nodes• Local notion of failure

Page 15: Dynamo

Comments

Page 16: Dynamo

System Scope

“…the system needs to have scalable and robust solutions for load balancing, membership and

failure detection, failure recovery, replica synchronization, overload handling, state transfer, concurrency and job scheduling,

request marshaling, request routing, system monitoring and alarming, and configuration

management.”

Page 17: Dynamo

Triggers

• Client registers to be notified when key changes

• Challenging with eventual consistency!

• Solution: sloppy triggers

Page 18: Dynamo

Setting N,R,W

• …is annoying!• Can we auto-configure R?• What about W?

Page 19: Dynamo

Supporting Multiple N,R,W

• Different availability/consistency tradeoffs for each object

• …without making multiple systems


Recommended