How does FDS (flat datacenter storage) make optimizations around locality unnecessary? I was reading the following computer systems paper:

https://www.usenix.org/system/files/conference/osdi12/osdi12-final-75.pdf

And I was trying to understand why it claims that it does not need data locality for it be perform well.

Basically, in the abstract it says:

"...FDS multiplexes an application's large scale I/O across the available throughput and latency budget of every disk in a closer. FDS therefore makes many optimizations around data locality unnecessary."

What I was not sure was, why does multiplexing an applications I/O across the servers in the datacenter, make it unnecessary to have to optimize in terms of data locality?

Basically, as I read the paper they make a big deal that locality is something they don't need and that they can achieve the benefits of it without having servers being close to the clients they provide data access. The part I am not sure is, what is the crux of what makes them not depend on data locality? Is it the CLOS network? Is it because they don't serve clients around the world? Is it because their servers are all in one data center anyways and not scattered around the world? What is it that makes their performance be so amazing?



Paper Reference:

Title: Flat Datacenter Storage

Author(s): Edmund B. Nightingale, Jeremy Elson, Jinliang Fan, Owen Hofmann, Jon Howell, Yutaka Suzue

Institution(s): Microsoft Research, Univeristy of Texas at Austin
The paper you cited is exploring the consequences of the question "what if datacenter network bandwidth was free?"  There are two reasons you might care about data locality.  One is latency and the other is bandwidth.  The workloads they are looking at (mostly) don't care about latency, and they've made bandwidth irrelevant, hence locality doesn't matter.  (Note however that at the end of Section 6.2 (on Page 12) they discuss how the inefficiency of non-local accesses forced them to use more compute nodes for their sorting algorithm.)

They also aren't completely eliminating locality optimizations.  Each compute node is still caching/buffering reads and writes in its local DRAM.  The rule of "avoid unnecessary I/O" still stands.  It's just that you don't make a distinction when you do a disk access of whether the disk is near or far from your compute node.  All disk accesses are assumed to include the extra latency of a round-trip network traversal.

Here's a picture to show the difference. The authors' "flat" storage model is on the left, the traditional "distributed" storage model is on the right:



In the distributed model (on the right) data is either on a local disk or a remote disk.  In the flat model (on the left) data is all remote.  But since the network bandwidth is (effectively) infinite, this doesn't reduce your maximum data bandwidth.