Doroszlai, Attila created AMBARI-18569:
------------------------------------------
Summary: Execute topology tasks in parallel by hosts
Key: AMBARI-18569
URL: https://issues.apache.org/jira/browse/AMBARI-18569
Project: Ambari
Issue Type: Task
Components: ambari-server
Affects Versions: 2.4.0
Reporter: Doroszlai, Attila
Assignee: Doroszlai, Attila
Fix For: 3.0.0, 2.5.0
Currently when a cluster is created using Blueprints,
{{PersistHostResourcesTask}}, {{RegisterWithConfigGroupTask}},
{{InstallHostTask}} and {{StartHostTask}} topology tasks are created in this
order for each host. These tasks are then executed by a single-threaded
executor {{TopologyManager.executor}} as hosts are being assigned to the
cluster.
Since {{TopologyManager}} is singleton, this leads to sequential execution of
topology tasks on a single thread. The execution of the each individual
topology task involves db operations under the hood. If for any reason there is
some latency introduced by the db operations (e.g. the db server is remote
instead of local) than this latency builds up a considerable delay if there are
many hosts to execute topology tasks for. Executing the topology tasks in
parallel would reduce the delay in this case.
Topology tasks for a host must be executed in order, but tasks that belong to
different hosts can be executed concurrently. E.g. the
{{PersistHostResourcesTask}}, {{RegisterWithConfigGroupTask}},
{{InstallHostTask}} and {{StartHostTask}} topology tasks would be executed
sequentially by one thread for host1 and by another thread for host2.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)