Wednesday, May 07, 2008

Is my MacBook faster than Google's AppEngine?

Really. I'm only a little kidding. Check it out at my AppEngine testbed. My performance.py script is available for review. Some reasons why this is the case:

  1. Google is running much more on the hardware I'm using than just my process.
  2. Google is using old commodity hardware. My MacBook is just faster.
  3. Google quota checking is not entirely trivial and thread calls may involve heavier operations here. My MacBook using the AppEngine SDK does no quota checks.
  4. New thread creation was not a performance focus for Google's platform.
Implications:
  1. "You write it, we'll scale it." is a hard proposition to make. In fact, it may likely be impossible. Google has taken a very opaque approach to their platform. It is opaque because you have little control, knowledge, or understanding of how your code is being executed. Specifically--what type of server is it on? what memory footprint? what other load is on the server? what are Google-induced constraints? what are multi-server scaling induced constraints?
  2. Will Google open its architecture for developer review? If not, is it worthwhile--and Google approved--to externally investigate their configuration through scripts like the trivial one I wrote?
  3. Google is facing a tough problem striking a balance between keeping their unblemished record of scaling their own apps from being dragged lower by us 3rd parties. The more Google keeps to themselves about their architecture and implementation, the more risk they take on their plate. The more they are transparent, the more they put on ours. Right now we see very little--and without reverse engineering Google's platform, we can only make our findings and decide whether Google performance can be trusted to meet our needs. 

0 comments: