The trouble with file counts
The other issue is that Google's single master can handle only a limited number of files. The master node stores the metadata describing the files spread across the chunkservers, and that metadata can't be any larger than the master's memory. In other words, there's a finite number of files a master can accommodate.
With its new file system - GFS II? - Google is working to solve both problems. Quinlin and crew are moving to a system that uses not only distributed slaves but distributed masters. And the slaves will store much smaller files. The chunks will go from 64MB down to 1MB.
This takes care of that single point of failure. But it also handles the file-count issue - up to a point. With more masters you can not only provide redundancy, you can also store more metadata. "The distributed master certainly allows you to grow file counts, in line with the number of machines you're willing to throw at it," Quinlan says. "That certainly helps."
And with files shrunk to 1MB, Quinlan argues, you have more room to accommodate another ten years of change. "My gut feeling is that if you design for an average 1MB file size, then that should provide for a much larger class of things than does a design that assumes a 64MB average file size. Ideally, you would like to imagine a system that goes all the way down to much smaller file sizes, but 1MB seems a reasonable compromise in our environment.
Why didn't Google design the original GFS around distributed masters? This wasn't an oversight, according to Quinlan.
"The decision to go with a single master was actually one of the very first decisions, mostly just to simplify the overall design problem. That is, building a distributed master right from the outset was deemed too difficult and would take too much time," Quinlan says.
"Also, by going with the single-master approach, the engineers were able to simplify a lot of problems. Having a central place to control replication and garbage collection and many other activities was definitely simpler than handling it all on a distributed basis."
So Google was building for the short term. And now it's ten years later. Definitely time for an upgrade.
"There's no question that GFS faces many challenges now," Quinlin says. "Engineers at Google have been working for much of the past two years on a new distributed master system designed to take full advantage of BigTable to attack some of those problems that have proved particularly difficult for GFS."
In addition to running the Google empire, GFS, MapReduce, and BigTable have spawned an open-source project, Hadoop, that underpins everything from Yahoo! to Facebook to - believe it or not - Microsoft Bing.
And of course, Quinlin believes that the sequel will put the original to shame. "It now seems that beyond all the adjustments made to ensure the continued survival of GFS, the newest branch on the evolutionary tree will continue to grow in significance over the years to come." ®
Update: This story has been updated to show that Google's new file system is apparently part of the new "Caffeine" infrastructure that the company announced earlier this week