diff options
| author | Connor Zanin <cnnrznn@gmail.com> | 2016-12-12 14:12:46 -0500 |
|---|---|---|
| committer | Connor Zanin <cnnrznn@gmail.com> | 2016-12-12 14:12:46 -0500 |
| commit | 96cf859dd50e8ea67cda6e10989a99e1a1fac741 (patch) | |
| tree | 750c28a30d9f859537c37257f52bf21957edee68 | |
| parent | 5bfcd392ebf514e6dbfd1256c3c10811372407e2 (diff) | |
intro
| -rw-r--r-- | chapter/4/dist-langs.md | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/chapter/4/dist-langs.md b/chapter/4/dist-langs.md index eb7b7a4..21adfa6 100644 --- a/chapter/4/dist-langs.md +++ b/chapter/4/dist-langs.md @@ -275,15 +275,17 @@ To accomplish reconciliation, Orleans provides data structures that can be autom As well, the developer can implement arbitrary logic for merging state. In the case of the YouTube video, we would want logic to determine the delta of views since the start of the activation, and add that to the actors' sum. -### Dataflow model (static and stream) +### Dataflow model -The dataflow model has its roots in functional programming. -Some languages that use this model are: +In the dataflow model, programs are expressed as transformations on data. +Given a set of input data, programs are constructed as a series of transformations and reductions. +Computation is data-centric, and expressed easily as a directed acyclic graph (DAG). +Unlike the DSM and actor models, processes are not exposed to the programmer. +Rather, the programmer designs the data transformations, and a system is responsible for initializing processes and distributing work accross a system. -* Multilisp -* MapReduce (Spark, Hadoop, etc.) -* RDD -* Dryad, DryadLinq +#### Multilisp () +#### MapReduce () +#### DryadLINQ () ### Which is best? Why? |
