aboutsummaryrefslogtreecommitdiff
path: root/chapter/4
diff options
context:
space:
mode:
authorcnnrznn <cnnrznn@gmail.com>2016-12-07 14:52:21 -0500
committerGitHub <noreply@github.com>2016-12-07 14:52:21 -0500
commita61720c405141700b5d533ca27af2921c775864e (patch)
tree23c721277a50f606560638e1c96e9dbbf708434d /chapter/4
parent1e6ce06c7c57eba04315e90353f1cd7ab3fff1a8 (diff)
Update dist-langs.md
Diffstat (limited to 'chapter/4')
-rw-r--r--chapter/4/dist-langs.md52
1 files changed, 25 insertions, 27 deletions
diff --git a/chapter/4/dist-langs.md b/chapter/4/dist-langs.md
index ac7122d..d2f425d 100644
--- a/chapter/4/dist-langs.md
+++ b/chapter/4/dist-langs.md
@@ -11,7 +11,7 @@ by: "A Systems Person"
* Efficiency (Latency)
* Scallability
-For the above points cite "A Note on Distributed Computing"
+For the above points cite "A Note on Distributed Computing," "Fallacies of Distributed Computing Explained"
Languages and systems designed for distribution aim to abstract these problems from the application developer.
@@ -26,6 +26,7 @@ Some examples:
* Linda
* Orca
+* RPC ( and why RPC is shared-memory )
Tries to make many machines look like a single machine.
This is hard because of consistency and partitioning.
@@ -39,7 +40,7 @@ Actors/Objects are location agnostic, because state is not shared.
The system can decide how to most efficiently place actors.
* Erlang
-* Cloud Haskell (I know, right? Why?)
+* Cloud Haskell
* Emerald
* Argus
* Orleans
@@ -51,49 +52,46 @@ Some languages that use this model are:
* Multilisp
* MapReduce (Spark, Hadoop, etc.)
-
+* RDD
+* Dryad, DryadLinq
#### Which is best? Why?
-Why is MR all-the-rage?
+MR vs Actors: depends on problem, solution
-* MR is DSL for distribution? (wouldn't use it to develop single-machine app (probably))
+How fine grain is your data and logic?
+Does your algorithm map to a batch processing job?
+MR:
+
+* MR is DSL for distribution? (wouldn't use it to develop single-machine app (probably))
* Dataflow / MapReduce fundamentally changed the programming style for distributed systems
* Other models (Actor, DSM) tried to mask distribution
* By changing the style, programs need necessarily consider communication patterns (disk, network)
* Although, system may still handle fault tolerance
-## Maybe use below topics
-
-### Why GPL's not DSL's?
-
-* problem of domain-composition
-* problem of abstraction
-* problem of ecosystem
-* problem of tumultuous architecture
-* "any gpl + library can act as a dsl" - mernik"
+Actors:
-#### Erlang vs C: A Tar and Feathering
+*
-{% cite Armstrong2010 --file dist-langs %}
+### Support for Distribution
-Erlang offers nothing that is unavailable in C.
+#### Intro
-For example, dynamic code swapping is one of Erlang's major selling points.
-However, code swapping can easily be achieved in C with dynamic linking.
-This approach is analogous to the example offered in the Erlang paper.
+* What is a DSL?
+> Domain-specific languages are languages tailored to a specific application domain.
-Other selling points, such as isolation, concurrency, and message passing can all be accomplished with unix-style system calls.
-Why is this language not considered redundant?
+> A domain-specific language is a programming language or executable specification language that offer, through appropriate notations and abstractions, expressive power focused on, and usually restricted to, a particular problem domain.
-#### MapReduce: A New Hope
+#### Where is it in the stack?
-Unlike Erlang, MapReduce and DSL's that implement the paradigm are "all the rage."
-Unlike Erlang, MapReduce has experienced adoption because it offers true abstraction of the problems of distributed computing.
-Erlang only provided a way of detecting a process failure; it did not consider machine or network failures.
+#### Why GPL's not DSL's?
-* MapReduce is a GPL for the domain of distribution
+* problem of domain-composition
+* problem of abstraction
+* problem of ecosystem
+* problem of tumultuous architecture
+* "any gpl + library can act as a dsl" - mernik"
## References