Tuesday, April 2, 2013

The Google File System


by S. Ghemewat., SOSP 2003.

Abstract:
We have designed and implemented the Google File Sys- tem, a scalable distributed file system for large distributed data-intensive applications. It provides fault tolerance while running on inexpensive commodity hardware, and it delivers high aggregate performance to a large number of clients.
While sharing many of the same goals as previous dis- tributed file systems, our design has been driven by obser- vations of our application workloads and technological envi- ronment, both current and anticipated, that reflect a marked departure from some earlier file system assumptions. This has led us to reexamine traditional choices and explore rad- ically different design points.
The file system has successfully met our storage needs. It is widely deployed within Google as the storage platform for the generation and processing of data used by our ser- vice as well as research and development efforts that require large data sets. The largest cluster to date provides hun- dreds of terabytes of storage across thousands of disks on over a thousand machines, and it is concurrently accessed by hundreds of clients.
In this paper, we present file system interface extensions designed to support distributed applications, discuss many aspects of our design, and report measurements from both micro-benchmarks and real world use.

Link to the full paper:
http://www.cse.buffalo.edu/faculty/tkosar/cse710_spring13/papers/gfs.pdf

5 comments:

  1. Can this file system be used as a general file system?

    ReplyDelete
    Replies
    1. As a general purpose commercial product, GFS suffers some serious shortcomings.

      Performance on small reads and writes, which it wasn’t designed for, isn’t good enough for general data center workloads.

      The record append file operation and the “relaxed” consistency model, while excellent for Google, wouldn’t fit many enterprise workloads. Since appending is key to GFS write performance in a multi-writer environment, it might be that GFS would give up much of its performance advantage even in large serial writes in the enterprise.

      Delete
  2. How does Lazy space allocation avoids wasting space due to internal
    fragmentation?

    ReplyDelete
    Replies
    1. Lazy space allocation means the filesystem doesn't actually give the file space before it's written. They're commonly referred to as sparse files. For example, if only the first 2MB of the 64MB chunk file is used, only 2MB will actually be used on disk.

      Delete
  3. In case of a file smaller than the 64 MB chunk size, the chunk server might be overloaded for multiple file requests. Do they reduce the overloading by making run time replicas into multiple chunk server.

    ReplyDelete