Because of the exam this week, we are giving you some extra time to complete the reading question for this week; it's due 12:00pm Monday, 4/6, instead of the Friday before. You should still read the GFS paper before this week's lectures.

Read the GFS paper here.

GFS is a system that replicates files across machines. It's meant for an environment where lots of users are writing to the files, the files are really big, and failures are common. Section 2-4 of the paper describe the design of GFS, Section 5 discusses how GFS handles failures, and Sections 6-7 detail their evaluation and real-world usage of GFS.

Note that this paper uses the term "master". This is outdated language that the community is moving away from (see here and here for examples of alternate terms). We use the word "controller" below in place of "master".

As you read, think about:

  • How does reading a piece of data work in GFS? It should be clear from your explanation how a client figures out what server to request the data from.
  • How does writing a piece of data work in GFS? As part of your explanation, you should be specific about how the client knows which machine to push the data to.
  • What assumptions does GFS rely on?
  • How does it exploit those assumptions? Why does it need them?

Submit your answers to these questions on Canvas by 12:00pm on Monday 4/6 (note the change in day from usual). You should be writing a few sentences in response to each question (so we don't need you to write an essay for each one, but we're also expecting more than one-word answers). Your responses should be in your own words, not direct quotations from the paper.