commit 6e522e32694d4ce0aa05df8df269f504480d0f71
parent 75727788504043eb284fec68c6b6cb2e05a3a5b6
Author: Ivan Gankevich <igankevich@ya.ru>
Date: Fri, 17 Feb 2017 12:55:45 +0300
Sync p3.
Diffstat:
2 files changed, 16 insertions(+), 11 deletions(-)
diff --git a/phd-diss-ru.org b/phd-diss-ru.org
@@ -2726,17 +2726,14 @@ digraph {
отказоустойчивости на уровне библиотеки передачи сообщений кроме как путем
перезапуска всех параллельных процессов из контрольной точки восстановления.
-В то же время, существует возможность продолжить выполнение задачи на меньшем
-количестве узлов, чем было изначально выделено под нее планировщиком. В этом
-случае нагрузка должна быть динамически перераспределена между оставшимися
-узлами. Несмотря на то что динамическое распределение нагрузки было реализовано
-в поверх библиотеки передачи сообщений в ряде
-работ\nbsp{}cite:bhandarkar2001adaptive,lusk2010more, оно никогда не применялось
-в задаче обеспечения отказоустойчивости. В этом разделе исследуются методы
-обеспечения отказоустойчивости при выходе из строя подчиненных и главных узлов и
-показывается, как приемы объектно-ориентированного программирования могут быть
-использованы для сохранения минимального состояния программы, необходимого для
-ее перезапуска, в иерархии объектов, а не в глобальных и локальных переменных.
+Однако, существует возможность продолжить выполнение задачи на меньшем
+количестве узлов, чем было изначально выделено изначально, реализовав
+отказоустойчивость на уровне приложения. В этом случае роли руководителя и
+подчиненного динамически распределяются между сервисами планировщика задач,
+работающими на каждом узле кластера, образуя древовидную иерархию узлов
+кластера, а параллельная программа состоит из управляющих объектов, использующих
+иерархию узлов для динамического распределения нагрузки и свою собственную
+иерархию для перезапуска управляющих объектов в случае сбоя узла.
**** Иерархия управляющих объектов.
Для распределения нагрузки узлы кластера объединяются в древовидную иерархию
diff --git a/phd-diss.org b/phd-diss.org
@@ -2553,6 +2553,14 @@ number to be constant. So, there is no reliable way to provide fault tolerance
in message passing library other than restarting all parallel processes from a
checkpoint.
+There is, however, a possibility to continue execution of a job on lesser number
+of nodes than it was initially requested by implementing fault tolerance on
+application level. In this case principal and subordinate roles are dynamically
+distributed between job scheduler daemons running on each cluster node, forming
+a tree hierarchy of cluster nodes, and parallel programme consists of kernels
+which use node hierarchy to dynamically distribute the load and use their own
+hierarchy to restart kernels upon node failure.
+
**** Related work.
Dynamic role assignment is an emerging trend in design of distributed systems\nbsp{}cite:ostrovsky2015couchbase,divya2013elasticsearch,boyer2012glusterfs,anderson2010couchdb,lakshman2010cassandra,
however, it is still not used in big data and HPC job schedulers. For example,