Saturday, April 4, 2009

Google's architecture through the eyes of a 4-year-old

My 4-year-old daughter drew this picture of the Google architecture today (I told her how to spell the words):
Here's the backstory that lead to this picture...

I started working at Google when my daughter was two years old. I would come home from work and I would ask her "What did you do today?" and she'd answer. Before long, she'd start asking me, "What did you do today?" Frequently, in my first year at Google (and still today) the answer was "I wrote a MapReduce." Fast-forward two years, and now both she and my son (age 2) often race to the door when I arrive home to see who can be the first to ask "Daddy, Daddy, did you write a MapReduce?"

She is also fascinated by "how things work" and will regularly request at bedtime an explanation of how something works. "How does the light work?", "How does your stomach work?" etc. Not too surprising for the child of two engineers. As a brief diversion, I had another "I live in the future" moment the other night: My daughter asked at bedtime "How does your eye work?" I explained in as much detail as I could and she was intrigued, and asked "Can we see it?", so I put my eye close to hers and explained what she was seeing. She replied, "No, I mean the inside!". An idea dawned on me. I pulled out my G1, spoke the words "diagram of an eye" (Voice Search is awesome), and a few seconds later a beautiful diagram of an eye was on the screen. My daughter was satisfied, but didn't even blink at what had just happened, while I felt like I was in a remarkably banal Star Trek episode.

In any case, yesterday I arrived home, greeted by the chorus of "Did you write a MapReduce?" to which I replied "Yes, I wrote a MapReduce." She asked what it did, I explained that it organized some information about books in a Bigtable, which is a useful place to store large amounts of information. She declared, "At bedtime tonight, I want you to explain how a Bigtable works." At bedtime, she did in fact ask, and I did my best to explain it at a 4-year-old level and she seemed to absorb it alright. After she went to bed, in a combination of amusement and fatherly pride, I twittered about it.

This morning, I told her that some of my friends were very impressed that she wanted to know about Bigtable. So, she decided she would draw a picture. The picture shows, on the Bigtable side a table (notice the legs) with a bunch of boxes (bigtable cells) organized in rows and columns. On the MapReduce side, the box between "Map" and "Reduce" is the mapper, while the big swirly cloud connected to it is the shuffle phase, and then the nice neat lines connected to that is the reducer. I'd love to say the big scribble at the top is the "cloud" from cloud computing, but she informs me that's the ceiling.

(Actual details about various parts of Google's architecture are available at Google Research's site, including papers on Bigtable and MapReduce.)