aboutsummaryrefslogtreecommitdiff
path: root/chapter
diff options
context:
space:
mode:
Diffstat (limited to 'chapter')
-rw-r--r--chapter/4/MR.pngbin0 -> 83219 bytes
-rw-r--r--chapter/4/dist-langs.md16
2 files changed, 14 insertions, 2 deletions
diff --git a/chapter/4/MR.png b/chapter/4/MR.png
new file mode 100644
index 0000000..54db004
--- /dev/null
+++ b/chapter/4/MR.png
Binary files differ
diff --git a/chapter/4/dist-langs.md b/chapter/4/dist-langs.md
index 21adfa6..64eccc0 100644
--- a/chapter/4/dist-langs.md
+++ b/chapter/4/dist-langs.md
@@ -283,9 +283,21 @@ Computation is data-centric, and expressed easily as a directed acyclic graph (D
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 ()
+#### MapReduce (2004)
+
+* input key-value pairs -> output key-value pairs
+* Map and Reduced chained to create programs
+* Map
+ * input key-value pairs transformed into intermediate key-value pairs
+* Reduce
+ * intermediate keys are aggregated by key
+ * function performs some action based on all values associated with an intermediate key
+* Map and Reduce may emit zero, one, or many key-value pairs per input
+
+![Alt text] (/MR.png "MapReduce Wordcount Workflow")
+
#### DryadLINQ ()
+#### Discretized Streams (2012)
### Which is best? Why?