aboutsummaryrefslogtreecommitdiff
path: root/chapter/4
diff options
context:
space:
mode:
authorcnnrznn <cnnrznn@gmail.com>2016-12-08 11:06:31 -0500
committerGitHub <noreply@github.com>2016-12-08 11:06:31 -0500
commit6605f95f575b009d645c28448dcf374621057bfd (patch)
tree6633d48386fa1e7e4e39483c952f0ac0044ba80e /chapter/4
parentd9299098200fa9271a286806b3ec4d8c0e11d699 (diff)
Update dist-langs.md
Diffstat (limited to 'chapter/4')
-rw-r--r--chapter/4/dist-langs.md25
1 files changed, 10 insertions, 15 deletions
diff --git a/chapter/4/dist-langs.md b/chapter/4/dist-langs.md
index 0477199..202bcfa 100644
--- a/chapter/4/dist-langs.md
+++ b/chapter/4/dist-langs.md
@@ -7,30 +7,25 @@ by: "A Systems Person"
## Problems of Distributed Programming
There are problems that exist in distributed system environments that do not exist in single-machine environments.
-For example, programs running on distributed systems must be resilient to partial failure.
-In a single-machine environment, a program is either running or crashed.
-When instructions are distributed accross multiple machines, the program can be running, crashed, or partially crashed.
-Programs, systems, and languages designed for distribution must be able to tolerate problems such as partial failure.
-Furthermore, they must abstract some or all of these problems from the application developer and application logic.
+Partial failure, concurrency, and latency are three problems that make distributed computing fundamentally different from local computing.
+In order to understand the design decisions behind programming languages and systems for distributed computing, it is necessary to discuss these three problems that make distributed computing unique.
+In this section, we present an overview of these three problems and their impact on distributed programming models.
### Partial Failure
On a single-machine environment, a crash means that either the machine has failed (total failure), or the source of the crash can be learned from a central resource manager such as the operating system. (// TODO cite "a note on dist. comp.)
-If an application consists of multiple communicating processes, it is possible for some components to remain running when others have crashed.
-
-### Consistency (Concurrency)
-
-
-
-### Efficiency (Latency)
+If an application consists of multiple communicating processes partial failure is possible, however because the cause of the partial failure can be determined, this kind of partial failure can be repaired given the operating system's knowledge about the failure.
+For example, a process can be restored based on a checkpoint, another process in the application can query the operating system about another's state, etc.
+Because of the presence of a network, in a distributed computing environment it is not possible to know the source of failure.
+Failure in a distributed settings means either the network or the host has failed (or both).
+Further, if the failure is network related, it is possible for the network to "come back up" at some future time.
+### Consistency (Concurrency)
-### Scallability
-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.
+### Latency
## Three major approaches to distributed languages: