You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ambari.apache.org by "Doroszlai, Attila (JIRA)" <ji...@apache.org> on 2016/10/11 14:01:20 UTC

[jira] [Created] (AMBARI-18569) Execute topology tasks in parallel by hosts

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)