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>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> 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> > 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> > >> 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> 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> > >>> >> 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> > >>> >> > 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 > >>> >> >> > >>> >> > > >>> >> > > >>> > >> > > > >