Differential dataflow paper now available
So in the last few posts we’ve hopefully whetted your appetite for using Naiad, but we haven’t said much about the secret sauce that enables it to compute results efficiently. Just before Thanksgiving, we finished work on the camera-ready version of our paper on differential dataflow, which will be presented early next year at the Conference on Innovative Data Systems Research (CIDR 2013). This paper sets out the key ideas and algorithms that underpin Naiad, and enable it to perform complex iterative analyses on real-world data in real-time.
The main idea in the paper is differential computation, which is a new form of incremental computation. The main idea of differential computation is that you can benefit from storing multiple previous versions of a computation’s state, if there exists some partial order describing the “reasons” for which the state changes. When applied to data-parallel dataflow, this allows a system like Naiad to disentangle the changes to a collection that are due to iteration, and those that are due to external inputs. In the next few weeks, we’ll post some more details about the math of differential computation, and discuss different ways of implementing it. In the meantime, have a read of the paper and get in touch if you have any questions!