Alena,
I see that you had added this config setting. Any specific reason that this 
only for Start/Stop/Copy and not for all the commands as Alex mentioned? The 
name of the setting looks generic.

-Koushik

On 03-Oct-2013, at 8:10 PM, Alex Ough <alex.o...@sungard.com> wrote:

> Hi Koushik,
> 
> Thanks for your reply, but unfortunately, this setting does NOT cover
> 'MigrateCommand'.
> As you specified, it seems to be effective only in Start/Stop/CopyCommand.
> 
> So can we include 'MigrateCommand' in that setting?
> 
> Thanks
> Alex Ough
> 
> 
> On Wed, Oct 2, 2013 at 11:44 PM, Koushik Das <koushik....@citrix.com> wrote:
> 
>> It is already a global setting in 4.2. The name of the setting is
>> "execute.in.sequence.hypervisor.commands".
>> 
>> Check out Config.java
>> 
>>    ExecuteInSequence("Advanced", ManagementServer.class, Boolean.class,
>> "execute.in.sequence.hypervisor.commands", "true", "If set to true,
>> StartCommand, StopCommand, CopyCommand will be synchronized on the agent
>> side." +
>>    " If set to false, these commands become asynchronous. Default value
>> is true.", null),
>> 
>> 
>> -Koushik
>> 
>> On 02-Oct-2013, at 10:43 PM, Alex Ough <alex.o...@sungard.com<mailto:
>> alex.o...@sungard.com>> wrote:
>> 
>> Thanks for the reply, Marcus.
>> 
>> What about the option #3, which is to make it as a global setting?
>> I think it can prevent side effects if exist.
>> 
>> Alex Ough
>> 
>> 
>> On Wed, Oct 2, 2013 at 11:37 AM, Marcus Sorensen <shadow...@gmail.com
>> <mailto:shadow...@gmail.com>>wrote:
>> 
>> Not sure. I don't know the history well enough to know if there were
>> issues in the past, it might be that some hypervisors were fine and
>> others weren't.
>> 
>> On Wed, Oct 2, 2013 at 9:21 AM, Alex Ough <alex.o...@sungard.com<mailto:
>> alex.o...@sungard.com>> wrote:
>> Marcus/Kelven,
>> 
>> Any thoughts on my suggestions?
>> 
>> Thanks
>> Alex Ough
>> 
>> 
>> On Tue, Sep 24, 2013 at 12:09 PM, Alex Ough <alex.o...@sungard.com<mailto:
>> alex.o...@sungard.com>>
>> wrote:
>> 
>> Oh, sorry for the confusion. I must have reversed the flags.
>> As Kelven pointed, it is set as 'TRUE', which makes the process as
>> sequential.
>> 
>> So my questions are
>> 1. If there is any reason why the method have been defined to return
>> 'TRUE' always?
>> 2. Do we expect any side effects and/or malfunctioning if we change it
>> to
>> returning 'FALSE'?
>> 3. For a resolution without breaking possible flows, can we add the
>> value
>> of 'executeInSequence' to the global setting if #2 answers YES?
>> 
>> 
>> On Tue, Sep 24, 2013 at 11:19 AM, Marcus Sorensen <shadow...@gmail.com
>> <mailto:shadow...@gmail.com>>
>> wrote:
>> 
>> I thought executeInSequence of 'true' made it go serially, or
>> sequentially. In my codebase for 4.1,4.2,master it's been 'true' since
>> August of 2010:
>> 
>> 2010-08-11 09:13:29 -0700 19) public class MigrateCommand extends
>> Command
>> {
>> 2010-08-11 09:13:29 -0700 20)     String vmName;
>> 2010-08-11 09:13:29 -0700 21)     String destIp;
>> 2011-08-10 10:26:04 -0700 22)     String hostGuid;
>> 2010-08-11 09:13:29 -0700 23)     boolean isWindows;
>> 2010-08-11 09:13:29 -0700 24)
>> 2010-08-11 09:13:29 -0700 25)
>> 2010-08-11 09:13:29 -0700 26)     protected MigrateCommand() {
>> 2010-08-11 09:13:29 -0700 27)     }
>> 2012-12-03 22:06:41 -0800 28)
>> 2010-08-11 09:13:29 -0700 29)     public MigrateCommand(String vmName,
>> String destIp, boolean isWindows)
>> 2010-08-11 09:13:29 -0700 30)         this.vmName = vmName;
>> 2010-08-11 09:13:29 -0700 31)         this.destIp = destIp;
>> 2010-08-11 09:13:29 -0700 32)         this.isWindows = isWindows;
>> 2010-08-11 09:13:29 -0700 33)     }
>> 2012-12-03 22:06:41 -0800 34)
>> 2010-08-11 09:13:29 -0700 35)     public boolean isWindows() {
>> 2010-08-11 09:13:29 -0700 36)         return isWindows;
>> 2010-08-11 09:13:29 -0700 37)     }
>> 2012-12-03 22:06:41 -0800 38)
>> 2010-08-11 09:13:29 -0700 39)     public String getDestinationIp() {
>> 2010-08-11 09:13:29 -0700 40)         return destIp;
>> 2010-08-11 09:13:29 -0700 41)     }
>> 2012-12-03 22:06:41 -0800 42)
>> 2010-08-11 09:13:29 -0700 43)     public String getVmName() {
>> 2010-08-11 09:13:29 -0700 44)         return vmName;
>> 2010-08-11 09:13:29 -0700 45)     }
>> 2012-12-03 22:06:41 -0800 46)
>> 2011-08-10 10:26:04 -0700 47)     public void setHostGuid(String guid)
>> {
>> 2011-08-10 10:26:04 -0700 48)         this.hostGuid = guid;
>> 2011-08-10 10:26:04 -0700 49)     }
>> 2012-12-03 22:06:41 -0800 50)
>> 2011-08-10 10:26:04 -0700 51)     public String getHostGuid() {
>> 2011-08-10 10:26:04 -0700 52)         return this.hostGuid;
>> 2011-08-10 10:26:04 -0700 53)     }
>> 2010-08-11 09:13:29 -0700 54)
>> 2010-08-11 09:13:29 -0700 55)     @Override
>> 2010-08-11 09:13:29 -0700 56)     public boolean executeInSequence() {
>> 2010-08-11 09:13:29 -0700 57)         return true;
>> 2010-08-11 09:13:29 -0700 58)     }
>> 2010-08-11 09:13:29 -0700 59) }
>> 
>> On Tue, Sep 24, 2013 at 9:58 AM, Chip Childers
>> <chip.child...@sungard.com<mailto:chip.child...@sungard.com>> wrote:
>> Hey Kelven - This topic was discussed briefly in the past [1].  Are
>> you
>> able to provide any thoughts on Alex's ideas below?
>> 
>> -chip
>> 
>> 
>> [1] http://markmail.org/message/fznrszaswruvlmuy
>> 
>> 
>> 
>> On Tue, Sep 24, 2013 at 10:53:04AM -0500, Alex Ough wrote:
>> For a resolution without breaking possible flows, I'd like to add
>> the
>> value
>> of 'executeInSequence' to the global setting.
>> Is there any reason not to do this?
>> 
>> Thanks
>> Alex Ough
>> 
>> 
>> On Mon, Sep 23, 2013 at 12:57 PM, Alex Ough <alex.o...@sungard.com<mailto:
>> alex.o...@sungard.com>>
>> wrote:
>> 
>> All,
>> 
>> After a little more investigation, I found that the
>> 'MigrateCommand'
>> defined its 'executeInSequence' method to return 'FALSE', which
>> seems to
>> make the vm migrations as serial even if the migration requests
>> are
>> dispatched to ha_worker in parallel.
>> You can confirm this in line 56 of
>> '/cloudstack/core/src/com/cloud/agent/api/MigrateCommand.java'
>> 
>> So my question is if there is any reason why the method have been
>> defined to return 'FALSE' always?
>> And do we expect any side effects and/or malfunctioning if we
>> change
>> it to
>> returning 'TRUE'?
>> 
>> Any answers/comments will be very appreciated.
>> Thanks
>> Alex Ough
>> 
>> 
>> On Wed, Sep 18, 2013 at 10:22 AM, Alex Ough <
>> alex.o...@sungard.com<mailto:alex.o...@sungard.com>>
>> wrote:
>> 
>> I checked the vm migration when their host is set to a
>> maintenance
>> mode
>> and found that even if the orchestration layer fires the each vm
>> migration
>> at the same time using a ha_worker thread, the actual migration
>> seems to be
>> executed serially.
>> 
>> Is this what we expect? And if so, any chance to make the actual
>> migrations in parallel?
>> 
>> Thanks
>> Alex Ough
>> 
>> 
>> 
>> 
>> 
>> 
>> 
>> 
>> 
>> 

Reply via email to