Today, Mozilla is using SeaMicro’s older 512-core machines to handle downloads of its Firefox browser
Can anyone comment on the accuracy of this? "Handling downloads" is pretty vague, but still it seems like a pretty braindead job, and I know Mozilla is leveraging lots of mirrors and probably CDNs for this.
"Today, when an end user running Firefox wants to download an update, addon or persona, the browser sends a URL request to Mozilla’s download cluster. The servers running Linux, Apache, and PHP run a query to the backend database/memcache cluster and return an HTTP Redirect URL (also called an HTTP 302 return) back to the browser so that Firefox can fetch the desired file from the network of donated download resources."
Let me get this strait, it's basically (request)>(redirect) for a few MB's of data. That seems like the kind of thing where a single CPU could handle ~100,000 requests per second. I know the Firefox team is not exactly well know for writing fast code, but there must be more to it than that.
This could be journalistic laziness and muddling of facts, but there is also something to be said for understanding the sub-millisecond performance considerations of a large professional effort, which may need an assured throughput even with known possible failures, and instantaneous hand off of each packet in as near real time as tuned with other devices, so as to not gum up the works subtly both down and up stream.
and instantaneous hand off of each packet in as near real time as tuned with other devices, so as to not gum up the works subtly both down and up stream.
Wow. You make static HTTP-downloads sound like rocket science.
Honestly, this is as trivial as it gets in terms of scaling. No "512 core machine" needed whatsoever, unless they've started to fold proteins along with their downloads...
You have less than 1kb requests and less than 1kb responses on average.
Let's see how many requests a 1gb net card can do? Well it's bit's not bites, but it's also a full duplex so you have 1gbit up and download. 1gigabyte / (8 kiliobit) = 1,000,000 / 8 = 125,000 requests per second. Granted full TCP/IP has a fair amount of overhead, but if you use UDP you can get vary close to this.
Yet, they don't need to get anywhere near that performance, for every 100 million clients updating every four hours using a random second to connect is around 10k connections a second.
Note that semiconductor sells Atom cards which are about 10% of a Xeon core in power and energy. So 512 core isn't 43 2x6core Mac Pros, it is more like 4.
Note, as of yet due to its dependency on Intel's Atom line SeaMicro on only can't offer much memory per chip but they also can't offer parity or ECC, which is a much bigger deal killer for me.
So all those folks who always say "memory is cheap" and who make fun of others who write small conservative programs might not be so smart after all.
Because they can't run their "feature-rich" unconstrained applications on wimpy nodes. And thus they can't cut their employer's energy and real estate costs.
Why did Google abandon its plans to supply its own energy?
> So all those folks who always say "memory is cheap" and who make fun of others who write small conservative programs might not be so smart after all.
Your first hint that an opinion comes from a neophyte is that they make fun of others. Your second hint is that they have an un-nuanced worldview.
> Why did Google abandon its plans to supply its own energy?
They didn't. They shut down part of their alternative energy R&D efforts, then turned around and dumped about $100 million into new solar projects. And they've never stopped putting PV panels on their datacenters. Mass media somehow misinterpreted this as an abandonment of some grand strategy by Google.
This is exactly right--by leaving numbers off, they don't set up false expectations. So you call them up and say you want 1 rack, they quote you $100,000. Facebook calls them and says they need 1,000 racks, they're going to sell them for $75,000 due to the scale of the purchase.
Now, if they were selling consumer-targeted items, they'd probably give a quote. But, if you wanted to buy a couple hundred, it would still behoove you to call them up and ask for a deal, because selling 1,000 units to 1 customer is a hell of a lot easier than selling 1,000 units to 1,000 customers.
Kinda like asking $1000 for a glass of water from the man almost dying of thirst but accepting $3 from the man that's jogging and wants a sip.
The problem is I've always seen explanations where pricing is set my the market demand. I'm curious how an economical model would look when there is no market, just this sort of individual negotiations with zero transparency.
Edit: This reminds me of the "how much is your time worth" sales question. Imagine how much a billionaire pays his maid.
As soon as another vendor tries to negotiate with you, there will be a market. Just because it's less convenient for the casual shopper doesn't mean that it's not a market.
What if they are selling an unique product and there is no other vendor? Is there a market when the same product is negotiated at a different price with each customer?
To stretch the analogy, the man dying of thirst hasn't got the resources to find the water himself. The difference in price is determined by the customers knowledge of the market and the product.
Seriously, though, they might need to look at getting chip manufacturers to up the low-power-core count on each chip to make these packages fit together more efficiently.
Can anyone comment on the accuracy of this? "Handling downloads" is pretty vague, but still it seems like a pretty braindead job, and I know Mozilla is leveraging lots of mirrors and probably CDNs for this.