Chubby
Rationale Easier to migrate (from non-high-available to HA) Store/Fetch small files More familiar to programmers Reduce number of servers Lock Coarse-grained Hold for hours or days Lock-acquisition rate weakly related to client transaction rate Rare acquisition ->Temp lock server unavailability -> No big deal Should not lost lock when lock server reboot System Structure Client + Lib (Link) <-> Server (5 node) Chubby servers called replicas elect a master ask any replicas where the master is all replicas maintain identical database Only master read/write ack write after majority write read by master only Add new replica is one does not recover after a few hours Files Name ex: /ls/foo/wombot/pouch ls: common prefix (lock service) foo: name of a Chubby cell special name: local (local chubby cell) Operations Only whole file read No moving files from one directory (may served by different Chubby master) No soft/hard link Ephemeral Node (tmp files) Metadata ^a9d075 instance number: greater than any previous with same name content generation (files only): change when file are written lock generation number: increase when lock free -> hold ACL generation number: increase when ACL name change 3 ACL Name Checksum File handle ^e25fcd Check digit (No forging handle) Sequence number (if handle generate by previous master?...