“$1 million dollars will buy you a system that can handle 1 billion requests a day with 2 terabytes of RAM and 1 petabyte of storage. This super-computer is an aggregate of $2000 machines [Ed: this is highly paraphrased].”
_– Adam Bosworth, Vice President of Engineering at Google_
MySQL Users Conference
This is very handy back-of-the-envelope data for those of you who want to build a web service with scale.
Dear Adam, how much does the bandwidth to support this cost?
One has to ask: if you’re not indexing the internet, why would you need a petabyte of storage?
I got a nice email from Amit Gupta (former CTO of Andale) regarding the bandwidth and power costs. The bottom line is that the bandwidth is around $30K/month and the power is around $20K/month. He gave me permission to reproduce his email:
I am not Adam; the math here depends on three parameters: 1) request-response size 2) burstiness (ratio of peak to avg data rate) 3) bandwidth pricing
Request volume = 10^9 requests / day Time = 10^5 seconds / day Typical request-response = 10^5 bits (assume 10KBytes/request – this can be off by an order of magnitude either way; likely smaller for a large service) Burstiness = 3 (depends on the service; lower for large services with global customer base)
Data rate = Burstiness * Request size * Requests-per-day / Seconds-per-day = 3 * 10^5 * 10^9 / 10^5 = 3Gbps Monthly price per Mbps = $10 (or $10K per Gbps for high-volume commit) Monthly bill = $30K/month
The power bill for 500 machines will be lower but same order-magnitude (guess $10K-$20K).
thanks
-amit