fuel-web/nailgun/nailgun/orchestrator
Alexander Kislitsky 4fa861fa8a Distributed serialization implementation
Distributed serialization is implemented with python distributed
library. We have scheduler for jobs management and workers for
jobs processing. Scheduler is started on the master node as well
as set of workers on it. Also workers are started on all nodes.
In the cluster settings we can select the type of serialization
and nodes statuses that allows serialization on it. By default
nodes with status 'ready' are excluded from the workers list.

For data serialization we are using only nodes from the cluster
where serialization is performing.

Before the computation fresh nailgun code is sent to the workers
as zip file and it will be imported for job execution. So we always
have fresh nailgun code on the workers.

In one job we are processing chunks of tasks on the workers. This
approach significantly boosts performance. The tasks chunk size
is defined as settings.LCM_DS_TASKS_PER_JOB parameter.

For limiting memory consumption on the master node we use parameter
settings.LCM_DS_NODE_LOAD_COEFF for calculation max number of jobs
in the processing queue.

Synthetic tests of distributed serialization for 500 nodes with
nubmer of ifaces >= 5 performed on 40 cores (4 different machines)
took 6-7 minutes on average.

Change-Id: Id8ff8fada2f1ab036775fc01c78d91befdda9ea2
Implements: blueprint distributed-serialization
2017-03-24 15:15:30 +00:00
..
__init__.py Files with no code must be left completely empty 2016-09-30 16:13:45 +07:00
base_serializers.py remove vmware 2017-02-14 15:52:27 +00:00
deployment_serializers.py Distributed serialization implementation 2017-03-24 15:15:30 +00:00
graph_configuration.py Revert "Add default tags" 2016-11-08 12:42:36 +00:00
graph_visualization.py Orchestrator DeploymentGraph is renamed to the GraphSolver 2016-03-17 03:25:37 +03:00
orchestrator_graph.py Resolve tasks by role tags 2016-11-17 18:07:30 +03:00
plugins_serializers.py Use only first two number from version in repositories file names 2016-12-09 18:03:12 +00:00
priority_serializers.py Fix hacking 0.10 errors in nailgun 2015-10-08 12:01:55 +02:00
provisioning_serializers.py Added list of packages to provision info 2016-10-04 18:04:01 +03:00
stages.py Resolve tasks by role tags 2016-11-17 18:07:30 +03:00
task_based_deployment.py Resolve tasks by role tags 2016-11-17 18:07:30 +03:00
tasks_serializer.py Merge "Resolve tasks by role tags" 2016-11-18 13:21:23 +00:00
tasks_templates.py Remove downloading debian-installer components 2016-04-18 10:18:20 +00:00