Standing on Distributed Shoulders of Giants
queue.acm.org
queue.acm.org
http://research.microsoft.com/en-us/um/people/lamport/pubs/p...
Newton invented the reflecting telescope, the refracting telescope was invented around 1600.
This is not true in any realistic distributed system. Sure latency is not decreasing much, but it is several orders of magnitude higher than the speed of light. There's a lot of fat to trim if we are willing to try.
I.e., latency is -always- going to be an issue, for everyone doing anything distributed; it will never go away, or become so small as to effectively be ignorable. You can trim the fat, which can improve the real-world experience of certain things, but it doesn't actually solve, or even simplify, the hard edge cases. It just may make them rarer.
Speed of light is 299792458 m/s (according to google)
Distance between London and Sydney is 16,983Km (according to google)
So, 16,983 / 299792.458 * 1000 = 56ms.
Now:
PING xyz.com (220.233.xxx.xxx): 56 data bytes
64 bytes from 220.233.xxx.xxx: icmp_seq=0 ttl=46 time=409.263 ms
64 bytes from 220.233.xxx.xxx: icmp_seq=1 ttl=46 time=432.955 ms
64 bytes from 220.233.xxx.xxx: icmp_seq=2 ttl=46 time=351.018 ms
64 bytes from 220.233.xxx.xxx: icmp_seq=3 ttl=46 time=373.894 ms
64 bytes from 220.233.xxx.xxx: icmp_seq=4 ttl=46 time=392.918 ms
64 bytes from 220.233.xxx.xxx: icmp_seq=5 ttl=46 time=412.357 ms
Pretty much 10x the speed of light. So, not several orders of magnitude, but at least one. This gets way worse in datacetner networks.
Then you've got to account for the round-trip. You've only covered half the distance of the ping.
You also have to account for a non-direct path from London to Sydney.
All of this means you're looking at about 200ms or more as the lower bound, so your 10x becomes < 2x.
On the other issues, I disagree. They are the precisely the point of my objection. Assuming that latency is governed by the speed of light fails to take into account all of those other effects. Many of which can be mitigated. And, this is an extreme case. London to Sydney is probably one of the longest paths you can take (except maybe London Auckland?) with many stretches of fibre. On shorter paths, the overheads stack up much more heavily. In datacenters, the time of flight is a few nano-seconds, but the overall latency is tens of micro-seconds to tens of milli-seconds.
Isn't it odd that we accept 2x-5x (sometimes even 1000x) overhead over the best case and yet still argue that it's governed by the speed of light? How many other places in computing are we willing to accept that?
A simple thought experiment will quickly tell you that's not true. Given a task queue, the compute process that pulled the task and put a result could easily provide where and when and give you both.