commit 15eb640420995da9e9c8f41e90687144c9df9648
parent b4350a568951955f33f7fd9b3be36622cc6c27e4
Author: Ivan Gankevich <igankevich@ya.ru>
Date: Thu, 2 Nov 2017 10:36:16 +0300
Edit p1.
Diffstat:
2 files changed, 39 insertions(+), 14 deletions(-)
diff --git a/arma-thesis-ru.org b/arma-thesis-ru.org
@@ -2404,7 +2404,26 @@ arma.plot_factory_vs_openmp_overlap(
** Отказоустойчивый планировщик пакетных задач
*** Архитектура системы
**** Физический уровень.
+Состоит из узлов и прямых/маршрутизируемых физических сетевых соединений. На
+этом уровне предполагается полная сетевая связность, т.е.\nbsp{}возможность
+отправить сетевой пакет между любой парой узлов кластера.
+
**** Уровень резидентных процессов.
+Состоит из процессов, находящихся на узлах кластера и иерархических логических
+связей (главный/подчиненный) между ними. На каждом узле запущен ровно один
+процесс, поэтому эти понятия взаимозаменяемы в данной работе. Роль главного и
+подчиненного назначается резидентным процессам динамически, т.е.\nbsp{}любой
+физический узел может стать главным или подчиненным, или быть и тем и другим
+одновремено. Динамический выбор ролей использует алгоритм выбора лидера, не
+требующий периодической отправки широковещательных сообщений всем узлам
+кластера, вместо этого роль определяется IP-адресом узла. Подробное описание
+алгоритма приведено в разд.\nbsp{}[[#sec-node-discovery]]. Его сильными сторонами
+являются масштабируемость на большое количество узлов и низкие накладные
+расходы, что делает его пригодным для высокопроизводительных вычислений; его
+слабой стороной является искусственная зависимость места, занимаего узлом в
+иерархии, от его IP-адреса, что делает его непригодным для виртуальных сред, где
+IP-адрес узла может динамически меняться.
+
**** Уровень управляющих объектов.
**** Программная реализация.
Из соображений эффективности конвейер объектов и методы обеспечения
@@ -2878,7 +2897,7 @@ Parallel)\nbsp{}cite:valiant1990bridging, применяемой в систем
*** Алгоритм обнаружения узлов кластера
:PROPERTIES:
-:CUSTOM_ID: sec:node-discovery
+:CUSTOM_ID: sec-node-discovery
:END:
**** Алгоритмы выбора лидера.
@@ -3341,7 +3360,7 @@ Keepalived\nbsp{}cite:cassen2002keepalived.
**** Иерархия управляющих объектов.
Для распределения нагрузки узлы кластера объединяются в древовидную иерархию
-(см.\nbsp{}раздел [[#sec:node-discovery]]), и нагрузка распределяется между
+(см.\nbsp{}раздел [[#sec-node-discovery]]), и нагрузка распределяется между
непосредственными соседями узла, так что при запуске управляющего объекта на
подчиненном узле главный узел также получают часть его подчиненных объектов. Это
делает систему симметричной и легкой в обслуживании: на каждом узле установлен
diff --git a/arma-thesis.org b/arma-thesis.org
@@ -2262,21 +2262,23 @@ consume much more time.
*** System architecture
**** Physical layer.
Consists of nodes and direct/routed physical network links. On this layer full
-network connectivity, i.e. an ability to send packet from one cluster node to
-any other, is assumed.
+network connectivity, i.e.\nbsp{}an ability to send network packet between any
+pair of cluster nodes.
**** Daemon process layer.
Consists of daemon processes residing on cluster nodes and hierarchical
-(master/slave) logical links between them. Master and slave roles are
-dynamically assigned to daemon processes, i.e.~any physical cluster node may
-become a master or a slave. Dynamic reassignment uses leader election algorithm
-that does not require periodic broadcasting of messages, and the role is derived
-from node's IP address. Detailed explanation of the algorithm is provided
-in\nbsp{}[[#sec:node-discovery]]. Its strengths are scalability to a large number of
-nodes and low overhead, which are essential for large-scale high-performance
-computations, and its weakness is in artificial dependence of node's position in
-the hierarchy on its IP address, which may not desirable in virtual
-environments, where nodes' IP addresses may change without a notice.
+(master/slave) logical links between them. Only one daemon process is launched
+per node, so these terms are use interchangeably in this work. Master and slave
+roles are dynamically assigned to daemon processes, i.e.\nbsp{}any physical
+cluster node may become a master or a slave, or both simultaneously. Dynamic
+reassignment uses leader election algorithm that does not require periodic
+broadcasting of messages to all cluster nodes, instead the role is determined by
+node's IP address. Detailed explanation of the algorithm is provided
+in\nbsp{}[[#sec-node-discovery]]. Its strengths are scalability to a large number of
+nodes and low overhead, which makes it suitable for large-scale high-performance
+computations; its weakness is in artificial dependence of node's position in the
+hierarchy on its IP address, which makes it unsuitable for virtual environments,
+where nodes' IP addresses may change dynamically.
The only purpose of tree hierarchy is to provide load balancing and
automatically reconfigurable logical tree hierarchy of cluster nodes. This
@@ -2787,6 +2789,10 @@ which maximises efficiency of a programme.
So, control flow objects (or kernels) possess properties of both cooperative
routines and event handlers.
*** Cluster node discovery algorithm
+:PROPERTIES:
+:CUSTOM_ID: sec-node-discovery
+:END:
+
**** Leader election algorithms.
Many batch job scheduling systems are built on the principle of /subordination/:
there is principal node in each cluster which manages job queue, schedules job