The following table is from Peter Norvigís essay Teach Yourself Programming in Ten Years. All times are in units of nanoseconds.
|Computer Action||Time (in NANOSECONDS)|
|execute typical instruction||1|
|fetch from L1 cache memory||0.5|
|fetch from L2 cache memory||7|
|fetch from main memory||100|
|send 2K bytes over 1Gbps network||20,000|
|read 1MB sequentially from memory||250,000|
|fetch from new disk location (seek)||8,000,000|
|read 1MB sequentially from disk||20,000,000|
|send packet US to Europe and back||150,000,000|
The EtherealMind View
So this is a part of the circular argument FOR CLOUD COMPUTERING: by centralising as much computing as possible in a single place, I reduce the latency for most transactions. Thus, transactions within the data centre are so much faster. Lets not forget easier to organise: especially interactions between multiple systems. Therefore Cloud Computering is a good thing.
But, you see that last number there. Yep **150 000 000 nanoseconds**. Got it ? “That’s me losing my religion” because you can’t change the speed of light. If you put my hosting in another continent, that’s it, Cloud Computering is a fail. How can you solve the problem for data exchange when, on a very very good day (yeah right), I get lossless 150 millisecond delay ? Cause I’m not getting lossless, and I’m not getting 150ms at my house.
So, yes, the challenge of overcoming the bandwidth shortage is the big issue today and for the next ten years. If I am accessing a Cloudy system in China or the US then I’m facing an extraordinary delay. A delay that is thousands of order of magnitude bigger than compute power. And if I’m using Internet bandwidth, the delay, packet loss and round trip time is not guaranteed.
And its cumulative – lets say a hundred transactions are needed (not uncommon for reasonable client server data interaction), that *fifteen seconds* of total delay. And that’s what I experience every day because I don’t live the in the San Francisco Bay area less than 100 kilometres from the data centres that host this cloud computering stuff. I live ten thousand kilometres away and the cloud is SLOW. Unusably slow.
Because the global network delay is SO LARGE how are you going to address this ? WAN Acceleration ? Local Caching ? Client Side Caching ? Packets Carried by Angels in Magical Boxes ? Avian Carriers ?
If you want to claim these are the saviours, then tell me why we aren’t using them today.
Where are the answers to that ? Please queue up in the comments below.
Reference to the table via John D Cook – The Endeavour