Naiad: a timely dataflow system
Proceedings of the Twenty-Fourth ACM Symposium on Operating Systems Principles, 2013•dl.acm.org
Naiad is a distributed system for executing data parallel, cyclic dataflow programs. It offers
the high throughput of batch processors, the low latency of stream processors, and the ability
to perform iterative and incremental computations. Although existing systems offer some of
these features, applications that require all three have relied on multiple platforms, at the
expense of efficiency, maintainability, and simplicity. Naiad resolves the complexities of
combining these features in one framework. A new computational model, timely dataflow …
the high throughput of batch processors, the low latency of stream processors, and the ability
to perform iterative and incremental computations. Although existing systems offer some of
these features, applications that require all three have relied on multiple platforms, at the
expense of efficiency, maintainability, and simplicity. Naiad resolves the complexities of
combining these features in one framework. A new computational model, timely dataflow …
Naiad is a distributed system for executing data parallel, cyclic dataflow programs. It offers the high throughput of batch processors, the low latency of stream processors, and the ability to perform iterative and incremental computations. Although existing systems offer some of these features, applications that require all three have relied on multiple platforms, at the expense of efficiency, maintainability, and simplicity. Naiad resolves the complexities of combining these features in one framework.
A new computational model, timely dataflow, underlies Naiad and captures opportunities for parallelism across a wide class of algorithms. This model enriches dataflow computation with timestamps that represent logical points in the computation and provide the basis for an efficient, lightweight coordination mechanism.
We show that many powerful high-level programming models can be built on Naiad's low-level primitives, enabling such diverse tasks as streaming data analysis, iterative machine learning, and interactive graph mining. Naiad outperforms specialized systems in their target application domains, and its unique features enable the development of new high-performance applications.
ACM Digital Library