commit 51decf198a9887689cc7ee9868cef4aae9fb46d4
parent 86bbcf830eab91124707a8c07e7ed77c46a8ce23
Author: Ivan Gankevich <igankevich@ya.ru>
Date: Thu, 2 Nov 2017 12:51:38 +0300
Edit p1.
Diffstat:
2 files changed, 30 insertions(+), 9 deletions(-)
diff --git a/arma-thesis-ru.org b/arma-thesis-ru.org
@@ -2479,6 +2479,19 @@ IP-адрес, передавая, сколько узлов уже связан
:CUSTOM_ID: sec-kernel-layer
:END:
+Ключевая особенность, отсутствующая в текущих технологиях параллельного
+программирования,\nbsp{}--- это возможность задавать иерархические зависимости
+между параллельно выполняющимися задачами. Когда такая зависимость есть,
+руководящая задача становится ответственной за перезапуск подчиненной,
+завершившейся неудачно, на оставшихся узлах кластера. Для того чтобы иметь
+возможность перезапустить задачу, у которой нету задачи, главенствующей над ней,
+создается копия, и отправляется на другой узел
+(см.\nbsp{}разд.\nbsp{}[[#sec-fail-over]]). Существует несколько систем, которые
+способны выполнять направленные ациклические графы задач
+параллельно\nbsp{}cite:acun2014charmpp,islam2012oozie, однако, графы не подходят
+для определения связей руководитель-подчиненный между задачами, поскольку
+вершина графа может иметь несколько входящих ребер.
+
**** Программная реализация.
Из соображений эффективности конвейер объектов и методы обеспечения
отказоустойчивости (которые будут описаны далее) были реализованы во фреймворке
@@ -3269,6 +3282,10 @@ IP-адреса: замена отображения IP-адресов на чт
отправкой сообщений.
*** Алгоритм восстановления после сбоев
+:PROPERTIES:
+:CUSTOM_ID: sec-fail-over
+:END:
+
**** Контрольные точки восстановления.
Сбои узлов распределенной системы можно разделить на два типа: сбой подчиненного
узла и сбой руководящего узла. Для того чтобы запущенная на кластере задача
diff --git a/arma-thesis.org b/arma-thesis.org
@@ -2331,15 +2331,15 @@ hierarchy of daemons processes.
:END:
The key feature that is missing in the current parallel programming technologies
-is a possibility to specify hierarchical dependencies between parallel tasks.
-When one has such dependency, it is trivial to determine which task should be
-responsible for re-executing a failed task on one of the survived nodes. To
-re-execute the task on the top of the hierarchy, a backup task is created and
-executed on a different node. There exists a number of systems that are capable
-of executing directed acyclic graphs of tasks in
-parallel\nbsp{}cite:acun2014charmpp,islam2012oozie, but graphs are not suitable
-to infer principal-subordinate relationship between tasks, because a node in the
-graph may have multiple parent nodes.
+is a possibility to specify hierarchical dependencies between tasks executed in
+parallel. When such dependency exists, the principal task becomes responsible
+for re-executing a failed subordinate task on the survived cluster nodes. To
+re-execute a task which does not have a principal, a copy of it is created and
+sent to a different node (see\nbsp{}sec.\nbsp{}[[#sec-fail-over]]). There exists a
+number of systems that are capable of executing directed acyclic graphs of tasks
+in parallel\nbsp{}cite:acun2014charmpp,islam2012oozie, but graphs are not
+suitable to determine principal-subordinate relationship between tasks, because
+a node in the graph may have multiple parent nodes.
The main purpose of the model is to simplify development of distributed batch
processing applications and middleware. The main focus is to make application
@@ -3097,6 +3097,10 @@ To summarise, node discovery algorithm is
- fully event-based as it does not overload the network by periodically sending
state update messages.
*** Fail over algorithm
+:PROPERTIES:
+:CUSTOM_ID: sec-fail-over
+:END:
+
**** Checkpoints.
Node failures in a distributed system are divided into two types: failure of a
subordinate node and failure of a principal node. In order for a job running on