Parallel plan execution for parent child

classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

Parallel plan execution for parent child

sabhinandan
Hi Yan,
We are having setup contains 4 services, 2 are having parents and two are standalone For ex:
service0 and service1 is standalonde, service2 having parent2 and service3 having parent3.

Case1:
If we execute parallel plan for service0 and service1, the plan we get is
<plan fabric="Test" .........>
  <parallel name="Deploy - .....>
    <sequential> ....
         for service1
     </sequential>
    <sequential>
        for service2
    </sequential>
   </parallel>   
</plan>
Which is absolutely fine.

Case2:
Now if I choose parallel deployment for service1(standalone), service2 and service3 (both are having parent). the plan generated is as follows:
Deploy - agent [10.1.1.1] - PARALLEL [20]

    Deploy - agent [10.1.1.1] - PARALLEL
        depth=0
            10.1.1.1 - /test/service1/10.1.1.1

                1. Install script for [/test/service1/10.1.1.1] on [10.1.1.1]

                2. Run [install] phase for [/test/service1/10.1.1.1] on [10.1.1.1]

                3. Run [configure] phase for [/test/service1/10.1.1.1] on [10.1.1.1]

                4. Run [start] phase for [/test/service1/10.1.1.1] on [10.1.1.1]

            1. Install script for [/test/parent2/10.1.1.1] on [10.1.1.1]

            1. Install script for [/test/parent3/10.1.1.1] on [10.1.1.1]

        depth=1

            1. Install script for [/test/service2/10.1.1.1] on [10.1.1.1]

            1. Install script for [/test/service3/10.1.1.1] on [10.1.1.1]

            1. Run [install] phase for [/test/parent2/10.1.1.1] on [10.1.1.1]

            1. Run [install] phase for [/test/parent3/10.1.1.1] on [10.1.1.1]

        depth=2

            1. Run [install] phase for [/test/service2/10.1.1.1] on [10.1.1.1]

            1. Run [install] phase for [/test/service3/10.1.1.1] on [10.1.1.1]

            1. Run [configure] phase for [/test/parent2/10.1.1.1] on [10.1.1.1]

            1. Run [configure] phase for [/test/parent3/10.1.1.1] on [10.1.1.1]

        depth=3

            1. Run [configure] phase for [/test/service2/10.1.1.1] on [10.1.1.1]

            1. Run [configure] phase for [/test/service3/10.1.1.1] on [10.1.1.1]

            1. Run [start] phase for [/test/parent2/10.1.1.1] on [10.1.1.1]

            1. Run [start] phase for [/test/parent3/10.1.1.1] on [10.1.1.1]

        depth=4

            1. Run [start] phase for [/test/service2/10.1.1.1] on [10.1.1.1]

            1. Run [start] phase for [/test/service3/10.1.1.1] on [10.1.1.1]

Issue here is if even action failed for my service1 (which is in depth0), other depth also doesn't execute.
I assume if I choosed the parallel plan, other services should not get affected. So the structure should be, there should be 3 paralled executions in one plan, one for service1, one for service2 and one for service3, and the plan for service2 and service3 contains there dependent depth structures.

New plan should be:
<plan fabric="Test" .........>
  <parallel name="Deploy - .....>
    <sequential> ....
         for service1
     </sequential>
    <sequential>
        for service2 having depth concept for its parent execution
    </sequential>
    <sequential>
        for service3 having depth concept for its parent execution
    </sequential>
   </parallel>   
</plan>

FYI: We are using GLu 4.6.2

Thanks,
Abhinandan
Reply | Threaded
Open this post in threaded view
|

Re: Parallel plan execution for parent child

frenchyan
Administrator
This is not an "issue" per se. The plan you are getting is the correct one when a parent/child relationship is detected for the current implementation. You can certainly argue that this is not optimum and I agree. I have created a ticket to look into it and try to make it better: https://github.com/pongasoft/glu/issues/226

Note that I am currently working on glu-58 (create easy production setup for glu) so I am not going to be able to work on this for quite a while.

Thanks
Yan