The Google File System
GFS stores huge files as fixed-size chunks replicated across commodity machines, with a single master holding metadata and clients talking to chunk servers directly for data. The design accepts component failure as normal and optimises for large sequential reads and appends.
Key ideas
- Separate the metadata path from the data path
- Relaxed consistency is acceptable when the application can tolerate it
- Record append lets many writers share a file without locks
Why read it now
It is the template for object and blob storage: a metadata service, dumb data nodes, and replication chosen for the workload rather than for generality.
Question to keep in mind
What does the single master make simple, and what has to be done to keep it from becoming the bottleneck?