arma-thesis

git clone https://git.igankevich.com/arma-thesis.git
Log | Files | Refs | LICENSE

commit ea9234489a817e7a727ae0c4dd6f9ed8f298c5d9
parent 4acf802a3c5b0ecf87e2606990fc9fc82dede7f2
Author: Ivan Gankevich <igankevich@ya.ru>
Date:   Thu, 16 Feb 2017 18:26:15 +0300

Sync dynamic role distribution.

Diffstat:
phd-diss-ru.org | 38+++++++++++++++++++++++++++++++++++++-
phd-diss.org | 50+++++++++++++++++++++++++-------------------------
2 files changed, 62 insertions(+), 26 deletions(-)

diff --git a/phd-diss-ru.org b/phd-diss-ru.org @@ -2659,6 +2659,42 @@ digraph { [[file:build/tree-hierarchy-11-ru.pdf]] *** Алгоритм восстановления после сбоев +**** Динамическое распределение ролей. +Отказоуйстовчисть параллельной программы\nbsp{}--- это одна из проблем, которая +должна решаться планировщиком задач обработки больших данных или +высокопроизводительных вычислений, однако, большинство планировщиков +обеспечивают только отказоустойчивость подчиненных узлов. Такого рода сбои +обычно обрабатываются путем перезапуска затронутой задачи (из контрольной точки +восстановления) или ее части на оставшихся узлах, а выход из строя руководящего +узла считается либо маловероятным, либо слишком сложным для обработки и +настройки на целевой платформе. Системные администраторы обычно находят +альтернативы отказоустойчивости на уровне приложения: они изолируют руководящий +процесс планировщика от остальных узлов кластера, размещая его на специально +выделенной машине, или, вместо этого, используют технологии виртуализации. Все +эти альтернативы усложняют конфигурацию и обслуживание, и, уменьшая вероятность +выхода из строя машины, приводящей к выходу из строя всей системы, увеличивают +вероятность ошибки оператора. + +С этой точки зрения более практичным реализовать отказойстойчивость руководящего +узла на уровне приложения, но не существует общего зарекомендовавшего себя +решения. Большинство реализаций слишком привязаны к конкретному приложению, +чтобы стать повсеместно применяемыми. Автор считает, что это происходит из-за +привычки людей думать о кластере, как о совокупности отдельных машин, каждая из +которых может быть руководителем или подчиненным, вместо того чтобы думать о +кластере, как о едином целом, в котором роли руководителя и подчиненного +динамически распределяются между запущенными на разных узлах процессами. + +Понимание того, что кластер тоже является вычислительной машиной, позволяет +реализовать промежуточное программное обеспечение, которое автоматически +распределяет роли руководителя и подчиненного и общим спопобом обрабатывает сбои +узлов. Это программное обеспечение предоставляет программный интерфейс и +распределяет управляющие объекты между доступными на данный момент узлами. +Используя этот интерфейс, можно написать программу, которая запускается на +кластерe, не зная точного количества работающих узлов. Это промежуточное +программное обеспечение работает как кластерная операционная система в +пользовательском пространстве, позволяющая писать и запускать распределенные +приложения прозрачно. + **** Введение. Отказы узлов распределенной системы можно разделить на три типа: отказ подчиненного узла, отказ главного узла и отказ одновременно всех узлов @@ -3073,7 +3109,7 @@ Emacs, предоставляющего вычислительное окруж Исследования были проведены на вычислительных ресурсах ресурсного центра "Вычислительный центр СПбГУ" (\mbox{T-EDGE96} \mbox{HPC-0011828-001}) в рамках -грантов РФФИ (проекты \nbsp{}\mbox{16-07-01111}, \mbox{16-07-00886}, +грантов РФФИ (проекты\nbsp{}\mbox{16-07-01111}, \mbox{16-07-00886}, \mbox{16-07-01113}). * Список сокращений и условных обозначений diff --git a/phd-diss.org b/phd-diss.org @@ -2493,36 +2493,36 @@ digraph { [[file:build/tree-hierarchy-11.pdf]] *** Fail over algorithm -**** Introduction. -Fault tolerance of a parallel programme is one of the top concerns in -development of big data and HPC job schedulers, however, most schedulers provide +**** Dynamic role distribution. +Fault tolerance of a parallel programme is one of the problems which should by +solved by big data and HPC job schedulers, however, most schedulers provide fault tolerance for subordinate nodes only. These types of failures are -routinely mitigated by restarting the failed job (from a checkpoint) or its part -on healthy nodes, and failure of a principal node is often considered either -improbable, or too complicated to handle and configure on the target platform. -System administrators often find alternatives to application level fault -tolerance: they isolate principal node from the rest of the cluster by placing -it on a dedicated machine, or use virtualisation technologies instead. All these -alternatives complexify configuration and maintenance, and by decreasing -probability of a machine failure resulting in a whole system failure, they -increase probability of a human error. +routinely handled by restarting the affected job (from a checkpoint) or its part +on the remaining nodes, and failure of a principal node is often considered +either improbable, or too complicated to handle and configure on the target +platform. System administrators often find alternatives to application level +fault tolerance: they isolate principal process of the scheduler from the rest +of the cluster nodes by placing it on a dedicated machine, or use virtualisation +technologies instead. All these alternatives complexify configuration and +maintenance, and by decreasing probability of a machine failure resulting in a +whole system failure, they increase probability of a human error. From such point of view it seems more practical to implement principal node -fault tolerance at application level, however, there is no generic -implementation. Most implementations are too tied to a particular application to -become universally acceptable. We believe that this happens due to people's +fault tolerance at application level, but there is no proven generic solution. +Most implementations are too tied to a particular application to become +universally applicable. The author believes that this happens due to people's habit to think of a cluster as a collection of individual machines each of which can be either principal or subordinate, rather than to think of a cluster as a -whole with principal and subordinate roles being dynamically assigned to a -particular physical machine. - -This evolution in thinking allows to implement middleware that manages principal -and subordinate roles automatically and handles node failures in a generic way. -This software provides an API to distribute kernels on the pool of available -nodes and between them. Using this API one can write an application that runs on -a cluster without knowing the exact number of online nodes. The middleware works -as a cluster operating system overlay allowing to write distributed -applications. +whole with principal and subordinate roles being dynamically distributed between +processes running on different nodes. + +Realisation of the fact that a cluster is also a computer allows to implement +middleware that distributes principal and subordinate roles automatically and +handles node failures in a generic way. This software provides an API to +distribute kernels between currently available nodes. Using this API one can +write a programme that runs on a cluster without knowing the exact number of +working nodes. The middleware works as a cluster operating system in user space, +allowing to write and execute distributed applications transparently. **** Related work. Dynamic role assignment is an emerging trend in design of distributed systems\nbsp{}cite:ostrovsky2015couchbase,divya2013elasticsearch,boyer2012glusterfs,anderson2010couchdb,lakshman2010cassandra,