Athicha Muthitacharoen is a Ph.D. candidate in Computer Science at
MIT. She also received her B.S. and M.Eng. degrees from MIT.
She is interested in distributed systems, especially in
the areas of storage, fault-tolerance, and online social networks.
In this talk, I will present my recent work on the
Expandable Network Disk (END). END aggregates storage on a cluster of
machines into a single virtual disk. END's main goals are to
offer good performance during normal operation, and to resume
operation quickly after changes in the cluster, specifically machine
crashes, reboots, and additions.
END achieves these goals using a two-layer design, in which storage
``bricks'' hold two kinds of information. The lower layer stores
replicated immutable ``chunks'' of data, each indexed by a unique
key. The upper layer maps each block address to
the key of its current content; each mapping is held on two
bricks using primary-backup replication. This separation allows
END flexibility in where it stores chunks and thus efficiency:
it writes new chunks to bricks chosen for speed, it
moves only address mappings (not data) when bricks fail and recover, it
fully replicates new writes when a brick is unavailable,
and it uses chunks on a recovered brick without risk of staleness.
The END prototype's write throughput on a cluster of 16 PC-based bricks
is 150 MByte/s with 2x replication, about 70% of the aggregate
throughput of the underlying hardware. END continues after a single
brick failure, re-incorporates a rebooting brick, and expand to
include a new brick after a few seconds of reduced performance during
each change. (Joint work with Robert Morris.)