P. Hunt, M Konar, F. Junqueira, B. Reed Presented by David Stein For ECE598YL SP 12
P. Hunt, M Konar, F. Junqueira, B. Reed Presented by David Stein For ECE598YL SP 12
Reed
Presented by David Stein for ECE598YL SP12
Versatile distributed coordination system
Simple primitives
Application developers use API to implement
higher-level coordination primitives
Wait-free non-blocking design
Strong ordering guarantees
Designed for read-intensive workload
Hierarchical, filesystem-like design
znodes
Regular (persistent)
Ephemeral (session)
Supports sequential naming of nodes
Nodes contain values
Sessions
create(path, data, flags)
delete(path, version)
exists(path, watch)
getData(path, watch)
setData(path, data, version)
getChildren(path, watch)
sync(path)
Linearizable writes
FIFO client order
Liveness
Durability
Data is replicated on every server
Reads are serviced immediately
Write requests are forwarded to the leader
Transforms requests from client into idempotent
transaction records
Zab is used to push idempotent transaction records
to the replicated database (stored with the
followers)
Strong order guarantees (uses TCP)
Local replicas will never diverge
But any point in time, some local servers may have
applied more transactions than others
Failure recovery
Periodic snapshots are kept at each replica
Idempotent transaction records can be received in
any order to rebuild the state
Configuration Management
Rendezvous
Group Membership
Locks
Yahoo! Fetching Service
Part of Yahoo! crawler for search engine
Uses ZooKeeper to manage configuration metadata
and leader election.
Katta
Yahoo! Message Broker
Publish-subscribe system
Chubby
Boxwood
ISIS
Paxos
Sinfonia
Dynamo