diff options
| author | cnnrznn <cnnrznn@gmail.com> | 2016-12-07 14:52:21 -0500 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2016-12-07 14:52:21 -0500 |
| commit | a61720c405141700b5d533ca27af2921c775864e (patch) | |
| tree | 23c721277a50f606560638e1c96e9dbbf708434d | |
| parent | 1e6ce06c7c57eba04315e90353f1cd7ab3fff1a8 (diff) | |
Update dist-langs.md
| -rw-r--r-- | chapter/4/dist-langs.md | 52 |
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 |
