Thursday, February 12, 2009

The Google File System

Problem: Storing very large data sets cost-efficiently in a way that allows computations to be run over them.

Nugget: Use a very large block size, replication, and simplified non-POSIX semantics to support scaling to large clusters of commodity machines.

Why is it different from previous work? Mostly due to a different problem scale, although GFS also makes some workload assumptions (mostly append or write-once). The other difference is in the use of commodity hardware (NOW-style) as opposed to really specialized hardware (as in supercomputers etc); this is driven by cost.

Hard tradeoffs: There's certainly a bit of a consistency vs performance/scalability tradeoff going on. Another tradeoff that appears in practice has to do with block size.. GFS is suboptimal for storing many small files because it needs metadata for each one.

Will it be influential? Yes, it's being used in several open source projects (Kosmos, HDFS) by other companies, and it seems like a good primitive for a data center to contain.

No comments: