Disk Locality in Datacenter Computing Considered Irrelevant (2011) [pdf]
cs.berkeley.edu
cs.berkeley.edu
Disk bandwidth consistently exceeds network bandwidth by a significant factor in common systems and this is likely to be the case for the foreseeable future. A platform with a good I/O scheduler can easily and demonstrably turn that into extra throughput on the same hardware for many use cases.
Their corroborating examples are platforms that happen to have poor I/O scheduling. In these cases, the effects of poor I/O schedules would be expected to dominate the effects of differences in bandwidth. You would expect the differences in available bandwidth to have no practical effect as a result. But there are many platforms that do implement good I/O schedulers where differences in bandwidth materially affect performance because the I/O schedulers can take advantage of that bandwidth.
While not entirely their fault, their assumptions about the cost of SSDs is incorrect. The difference in cost/GB is down to a relatively small integer factor and shrinking, well under a single order of magnitude. And these can deliver enormous local bandwidth in cheap systems. In many cloud clusters now, the cost of a large, local SSD JBOD (how you would want to use it) is less than the cost of the server, even with cheap servers. The cost of using SSD over spinning disk has become increasingly marginal for many applications.
In summary: platforms with good I/O schedulers see real benefits to disk locality, assuming the application is I/O intensive. Platforms with poor I/O schedulers not so much. Make the appropriate choice for your use case and platform.
But most people are still stuck on 1Gbps. At the same time a steadily increasing proportion of those systems have SSDs which can do 2GB/sec+ reads.
To provide some perspective - in 1 cycle of a 1GHz CPU light (or electric potential) travels about 30cm. So round-trip communication with a disk (or whatever) that is 5cm away vs one that is one 1m away (could be same rack) would take 20 times longer in each direction. Now consider communicating across a football-field-sized datacenter.
Am I mistaken?
Disk locality is not that important when you're fully async, as throughput tends to be similar, however, if your code is not fully async then you usually pay significant penalties in latency, and if multiple nodes are able to access the data then you pay a huge price in caching.