  Data analytics using GUI-based dataflows is an iterative process in which an
analyst makes many iterations of changes to refine the dataflow, generating a
different version at each iteration. In many cases, the result of executing a
dataflow version is equivalent to a result of a prior executed version.
Identifying such equivalence between the execution results of different
dataflow versions is important for optimizing the performance of a dataflow by
reusing results from a previous run. The size of the dataflows and the
complexity of their operators often make existing equivalence verifiers (EVs)
not able to solve the problem. In this paper, we present "Veer," which
leverages the fact that two dataflow versions can be very similar except for a
few changes. The solution divides the dataflow version pair into small parts,
called windows, and verifies the equivalence within each window by using an
existing EV as a black box. We develop solutions to efficiently generate
windows and verify the equivalence within each window. Our thorough experiments
on real dataflows show that Veer is able to not only verify the equivalence of
dataflows that cannot be supported by existing EVs but also do the verification
efficiently.
