Every once in a while I say something on Twitter and it gets a few responses. Today, it was this quote:
At some point in the future, cloud storage will be faster than a local HDD. Even later, cloud will be faster than an SSD.
A couple of people called “BS” on the SSD part, which I found surprising. They quoted network latency, and other facts about today’s performance numbers.
Remember that in today’s large scale server environments, that a clustered filesystem can provide performance that’s better than any locally connected storage. Yes, this is really true, today. And yes, it’s about network latency and the pretty lame state of bus technology for hard drives. But, it’s true nonetheless. (You might have to try pretty hard with a fully switched 10GigE network, but it’s possible.) I can even imagine a not-that-crazy rack setup that provided better throughput than a locally connected 4*SSD RAID array. (by using fully switched 4*10GigE bonded ethernet). But, I digress.
Isn’t this exactly like saying “640kB should be enough for anyone”? What were network latency and throughput numbers like 10, 15 or 20 years ago? I’ll remind you: 15 years ago you were lucky to have a 100Mhz machine, and you likely had a 56.6kbps modem, and maybe you had a 100GB hard drive. Maybe.
So, 15 years in the future, and I’d fully expect my home to be connected to cloud storage that’s faster than a single locally connected SATA3 SSD is today. But, I’d also expect that whatever state-of-the-art local storage technology we have will still be far faster than that.
In the fall of 1998 (a little over 13 years ago) I built a machine for a friend of mine for college. It was 333mhz, had 64 megs of ram, and had a 4 gig hard drive. You could get bigger drives, more memory, and faster processors, but that was the best bang for the buck at the time. In the summer of 1997, a friend of mine bought a 200mhz machine, 32 megs of ram, with a 2 gig drive in it. You may be close on the mhz, but you are way over on the disk storage.
That said, I had a 56k modem in 1998. But my friend had 5 mbit cable modem. Now, 14 years later, Time Warner, Cox, Comcast, etc., are still more or less topping out at 20mbit in most areas, with 50mbit to select areas. AT&T U-verse and Verizon FIOS top out at 50mbit. Here we are, 13 years later, and peak connection speeds are only 10x better than they were then.
Meanwhile, those 4 gig drives could do about 15-20 megs/second sequential transfer, 1-2 megs random. The best 3-4TB spinning drives now can do up to around 200 megs/second sequential transfer, *maybe* getting to 4-5 megs random (but only with large on-disk buffers, which risk data integrity issues on power failure). SSDs are a game changer because you can get 50-100 megs/second random and 150+ megs/second sequential transfers with sub-ms latencies (compared to ~10ms latencies with spinning disks). You get an enterprise PCI-Express SSD, and you start pushing 1 gig/second sequential, 500 megs/second random – with a single device.
If we assume that in 13 years network connection speeds will increase by 10x (unlikely with the way the cable/telephone companies have been dragging their heels, trying to claim that they are paupers despite huge profits), that will only be 500 mbit. Meanwhile, a single high-quality SSD today will beat the hell out of that network connection in terms of both throughput and latency. Because in the .1ms that an SSD can respond in, electricity can only travel 30km, which means that not only will you need multiple high-bandwidth connections to the mythical cloud, but you will also need to be within 15km of that cloud.
Local storage wins, and will keep winning for any “home vs cloud” solution. In the server world, that is different, but then we start talking about different orders of magnitude. Though, as Artur Bergman said: http://www.livestream.com/oreillyconfs/video?clipId=pla_3beec3a2-54f5-4a19-8aaf-35a839b6ecaa Just buy some SSDs and put it in a box. That’s your answer to scaling.