What is Scalability? Do I have Extreme Requirements?

Can I turn my Volvo into an F1 Racer?

 

 

I am a fan of auto racing. I started following racing way, way back. At the low end of the spectrum, anyone with a car can get started racing in autocrosses and track days, for not very much money. At the other end of the spectrum, the pinnacle of the sport, the very top, is Formula One. It's a racing series in which teams field two cars, and they can spend hundreds of millions of dollars for a single season. The cars are very lightweight and produce over 850bhp of power from what engineers would call a "traditional" internal combustion engine, of 2.4 liters displacement. That by the way, is the same displacement engine used in my 1994 Volvo wagon, which delivers about 150bhp, but weighs about 2.5x as much as an F1 racer.

If I am into acceleration, that comparison should make me very sad. Remembering Newton's Second Law of motion, gold old F=ma, I know that acceleration, in automobiles, is proportional to the power-to-weight ratio of the car. More power means more acceleration. Less weight means more acceleration. The F1 car has a 15x advantage in power-to-weight ratio over my car. Yow. That's horrible.

If I wanted to add a little more spice to my morning commute, maybe I should think about learning from the F1 McLaren team, and using some of that technology in my Volvo? Would that work? Let's see.

The F1 engine has a peak internal speed of 19,200 RPM, whereas my Volvo redlines at 7000 RPM. Because the F1 engine has such extreme speeds, the friction generated by it is extreme, and the temperatures, too. The exhaust temperature on an F1 car can reach 1000F. Imagine pulling up to the quickie mart with a glowing-red hot exhaust pipe sticking out. It would be a huge safety issue. Speaking of exhaust, the pipes are custom made, and cost maybe USD$12,000 a pop. The entire engine goes for maybe USD$200,000. The noise generated by an F1 engine can reach 120 db at 20 feet away. That might be a problem for my neighbors. The fuel economy of an F1 car is around 3 mpg. Before you start an F1 engine, you need a team of people to pre-heat it; the tolerances are so close that starting a cold engine would damage it. And on and on.

Hmm, okay. So this all might get kinda impractical. Maybe pinnacle-of-the-industry technology is not right for me.

Where does Scalability Come From?

On a completely unrelated note, Dare is continuing to blog on protocols. This time he takes on the idea that Google's Protocol Buffers bring Scalability and Speed from Scott Loganbill.

Dare writes:

The fact that Google uses MapReduce and BigTable to solve problems in a particular problem space does not mean those technologies work well in others. MapReduce isn't terribly useful if you are building an instant messaging service. Similarly, if you are building an email service you want an infrastructure based on message queuing not BigTable. A binary wire format like Protocol Buffers is a smart idea if your applications bottleneck is network bandwidth or CPU used when serializing/deserializing XML.  As part of building their search engine Google has to cache a significant chunk of the World Wide Web and then perform data intensive operations on that data. In Google's scenarios, the network bandwidth utilized when transferring the massive amounts of data they process can actually be the bottleneck. Hence inventing a technology like Protocol Buffers became a necessity. However, that isn't Twitter's problem so a technology like Protocol Buffers isn't going to "help them scale". Twitter's problems have been clearly spelled out by the development team and nowhere is network bandwidth called out as a culprit.

I completely agree. We can all get a little sloppy. "If it works for THEM, it's probably the perfect thing for ME." Nope. That is a dangerous habit to get into. Are we F1 racers, or commuters, or something in between? Can we tolerate the costs, the 1000F exhaust temperatures and the extreme noise of an F1-class infrastructure? Probably not We need to be more thoughtful about our requirements. Technology does not always transfer downward effectively from the pinnacle of any industry.

Dare also asserts,

If someone tells you "technology X doesn't scale" without qualifying that statement, it often means the person either doesn't know what he is talking about or is trying to sell you something. Technologies don't scale, services do.

I think what he means by "services" in this context is "implementations".   Even so, I cannot completely agree here.  Some technologies just don't scale well.  On the other hand, to say that "XML doesn't scale", as Mr Loganbill seems to do, asks us all to ignore the success XML has enjoyed since the late 90's. It scales, up as well as down.  From my mobile phone to the datacenter.  Does XML solve all problems? No. Google had some particular data-shipping scenarios for which XML was not an optimal solution. We can conclude "XML did not meet the requirements of Google in some particular cases."  That does not mean "XML does not scale." To draw that general conclusion is to deny the reality of the internet today.

There's an exponential decay curve that describes the scalability requirements for all apps in the world, where the Y-axis can be any aspect of scalability:  number of users, petabytes of data handled, number of transactions, and so on. 

Your app, dear reader, is probably not in the first 25% of that curve. Google's is. But yours probably isn't. Google's network is at the pinnacle of the industry. The most extreme requirements. Are you at that point? Probably not.  And even if you are, you ought to examine your own requirements closely, rather than just "doing with the other guy did."  This all goes to show that just because Google believes that Protocol Buffers (or whatever - you pick the particular technology choice) is the most effective solution for their particular problem space, does not mean that the given technology choice is the right one for YOU too.

Getting back to F1: it's true that some technologies have migrated from F1 to passenger cars. For example, now it is possible to get cars with carbon-ceramic disc brakes, just like an F1 car. Some cars have flippy-paddle shifters, just like an F1 car.  But... not everything translates so readily. And even with those technologies, there is a cost/benefit analysis that is worth doing.  Do I need ceramic brakes or can I just buy commodity cast-iron discs for much less cost?  (If you know me, you know the choice I made here).

Technology that is just perfect for an F1 racer, is probably not exactly right for the commuter.