Fusion-io: a shot in the arm for server farms
What can you do in 28 seconds?
The list is pretty short, at least it is if you confine your consideration to things you might be allowed to do during a working day with a productive outcome.
Answer the phone, so long as it isn’t actually for you, is one possibility. Read an email that needs a “yes” or “no” answer. Print something out, on plain paper using default settings (if it isn’t too long).
Preliminarily sort the paper junk mail from the Other Stuff. Certainly nothing earth-shattering, and nothing close to my own personal benchmark for a reasonable working day’s effort: to start and finish three tasks is all I expect.
My own personal benchmark for a reasonable working day’s effort: to start and finish three tasks is all I expect
So suppose that 28 seconds was all you needed to do a whole day’s worth of work. That’s probably about as long as it’s taken you to read this far.
Twenty-eight seconds to get through a whole day’s worth of tasks, follow-ups, kick-offs, communications – you get the idea. Why 28 seconds? Because that’s close to 1/1,000th of an eight-hour working day, or one-thousandth of the time you’d normally have to spend on the variety of tasks you need to perform to earn your crust.
And it happens that 1:1,000, or three orders of magnitude, is precisely the ratio between a millisecond and a microsecond. It’s a shame that these two units start with the same letter, because they constitute – as I hope my 28-second parable illustrated – very different worlds.
When we’re talking about storage, the fact that a K is one-thousandth of an M, which is one-thousandth of a G, is nice and easy to get your head around, whereas by contrast the measures of time are both represented by an M.
But I digress: having now got you thinking about enormous differences in speed, I’d better start talking about why this is relevant, what prompted it, and where I was at the time.
It all started with something I couldn’t really take an adequate picture of at Microsoft’s TechEd in Berlin: a video wall about seven feet square that was displaying 1,800 smoothly moving tiled video screens.
These turned out to be of DVD quality, and the stack of devices that powered the wall – seven HP ProLiant DL380 G7 servers in a rack next to a suspiciously custom-looking Supermicro desk-side PC (which I was assured contained 48 cores) – were there to show off the capabilities of a PCI Express add-on board heavily populated with flash memory from an outfit called Fusion-io.
This demo wasn’t about streaming video-on-demand into hotel rooms (although it did go some way towards explaining why the systems needed to do this are so large and cranky). It was about having more than one channel inside your servers to do your work.
Hard disk upgrade
Let’s go back to basics for a second. Pretty much every PC you’ve ever used, unless you borrowed it from me, will have contained a single hard disk.
However, pretty much every PC (unless it’s a laptop) is capable of mounting more than one hard disk, and by that I don’t mean simply chopping up a single drive into separate partitions – I mean having two separate spinning disk mechanisms inside it to store your stuff.
At the simplest level, I always used to do disk upgrades for people by putting a shiny new disk on their primary channel and swapping their old hard disk on to the secondary channel, and sharing this with the CD drive.
The clash of priorities that can potentially arise in such a setup if an application wanted to access both the CD drive and the second disk at once is something that almost never happens in the real world, so this always seemed to me like a win-win solution.