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)

Reply via email to