The authors of this paper try to design efficient scheme that can make developer to write distributed and parallel applications. At first sight, the problem seems too big to be real. After viewing the whole Dryad system, it indeed provide a more efficient way for developer to process big data.
2) What is the solution’s main idea (nugget)?
Dryad represent the computation workflow as a directed acyclic graph. Each vertex is a program whereas each edge represents data channel.
3) Why is solution different from previous work?
First, the problem itself is not new. However, the method is novel. Previous works are more restricted to the workflow, which gives developer less space to personalize the system. Dryad enable the developer to have fine-grained control over the whole communication graph including subroutines.
Second, Dryad can use arbitrary number of inputs and outputs. Other systems like MapReduce can only enable one input one output, whereas SQL and shader achieve multiple input but only single output.
4) Does the paper (or do you) identify any fundamental/hard trade-offs?
Even though Dryad proved higher-level programming model, it is indeed more complicated than other competitive scheme, such as MapReduce. The trade off here is, the developer has more freedom in using Dryad, but need to learn more about how to use it.
I do not think this paper still has impact in 10 years. Even Dryad provide higher-level programming model, it is still not as simple as MapReduce. In my perspective, simple is the key issue in system design. And that is the reason why MapReduce has 10 times more citation than Dryad.
No comments:
Post a Comment