I'd like to kick off the official merge process. We will start the merge
process after the branch has passed necessary tests

Kelven

On 6/10/13 2:51 PM, "Kelven Yang" <kelven.y...@citrix.com> wrote:

>Hi there,
>
>Alex Huang and I are targeting to finish the debugging process on VMsync
>improvement by the end of this week. I'd like to encourage those who are
>interested or having concerns about this  project to review it as soon as
>possible on branch vmsync. We are going to propose the official merge
>request soon after it has passed our internal test.
>
>Some details have been posted to wiki a while ago at
>https://cwiki.apache.org/confluence/display/CLOUDSTACK/FS+-+VMSync+improve
>ment.  Here is a summary about this change.
>
>
>  1.  We changed the underlying VM state sync modeling.
>
>For those who are familiar with the old Microsoft COM model, they may
>recall "Free threading model" and "Thread-apartment model",  VM state
>sync modeling change is similar to switching from free-threading to
>thread-apartment modeling.  Previously, VM state changes are reported and
>processed in management server in a "free-threading" fashion, regardless
>whether or not there is active process with the subject VM, the state
>sync process is always executed in place.  This approach has issues with
>the concurrency complexity by nature, since all sync-process has been
>concentrated into one place and caused complex code logic that is hard to
>change and maintain.
>
>A major modeling shift is introduced in this change, we now switch to an
>approach which we can call it "job-apartment" model, comparable to
>Microsoft's COM "thread-apartment model", that is, making the sync logic
>within the process context and de-centralize it across the board.  This
>approach can simplify VM state sync logic individually and leave the
>complexity to underlying framework, which in the future, the framework
>can be optimized separately without affecting business layer (separating
>of concerns at architecture level)
>
>2. De-couple hypervisor resource agent from managing VM state in Cloud
>layer
>
>We also changed the way on how resource agent is involved in the overall
>VM state sync process. Previously, resource agent needs to participate VM
>state management in the Cloud layer closely, this requirement is removed
>and resource agent is no longer required to help maintain "delta" state
>in the overall VM state management, all it needs is to report what it
>knows about the VM state at virtualization layer, leaving all the
>handling to CloudStack management server.
>
>The reason for this change is to simplify the architecture between agent
>resource and management server, de-coupling in this way can lower the
>requirement for developers to write a new hypervisor resource agent and
>also give room for management server developers to optimize sync logic
>independently. (Again, separating of concerns at architecture level)
>
>
>3. Job framework has been improved
>
>To make the proposal possible, job framework has been refactored to
>support more explicit management of jobs,  job joining, wake-up
>scheduling and serializing job execution has been added together with a
>topic-based message bus facility.
>
>4. Compile-time strong typing of Java generic usage in
>VirtualMachineManagerImpl
>
>Job scheduling change require more flexible run-time handling, however,
>previously VirtualMachineManagerImpl has a heavy-weight usage of Java
>generic to take advantage of compile-time strong typing provided by Java,
>this has brought some troubles with object serialization the occurs
>between boundaries of "job-apartments", VirtualMachineManagerImpl has
>been refactored because of that.
>
>Flames and Comment? all are welcome.
>
>Kelven
>

Reply via email to