[Kimchi-devel] [RFC] Improve task management for kimchi

Wen Wang wenwang at linux.vnet.ibm.com
Thu Jul 3 10:04:18 UTC 2014


On 7/2/2014 11:06 PM, Sheldon wrote:
> On 06/27/2014 07:15 PM, Wen Wang wrote:
>> Dear all,
>> *
>> **Problems:*
>> Now our strategy  for long time operation is using task which the 
>> browser needs to check up-to-date task status time by time until the 
>> task ends. It's time consuming and less efficient. Also there exists 
>> several problems when locating each task when doing debug generating 
>> and storage pool as well as some new features that might use task 
>> strategy in the future.
>>
>> *Solution*:
>> As talked with Sheldon and Zhengsheng, we came up with a solution 
>> that avoid browser checking status every 200ms. Also, we might need 
>> some more labels in each task to provide more information when 
>> getting the task like we might need to indicate which operation 
>> triggered certain task. What's in our mind is to use the strategy 
>> that allow the server inform browser about the task information. Our 
>> proposal is designed as follows.
>>
>> 1) Browser needs to register to the back end to indicate which part 
>> the result needs to reply to when the task finished.
>> 2) The back end use broker to manage message distribution: when a 
>> task is finished or experiencing an error, back end inform the 
>> browser certain part of work is finished or error.
>> 3) Using websocket of cherrypy to accomplish the message transfer.
> Now let me elaborate above.
>
> For Browser, it can be an event loop worker.
> It can subscribe event message that users care to the back end broker.
> listen the events from the broker and take some action for the event.
>
> For back:
> The broker should collect and store the events from everywhere.
> The broker should dispatch the message to the client who subscribes it.
> For some event, broker should determined whether it should dispatch to 
> user.
> Such a VM shutdown event, the broker just send it to the user who has 
> the access permission. (Yu Xing's suggestion)
> We had better define the event message format.
>
> We had better to find an existing python lib for it. If no we should 
> code it for ourself.
>                                                            [ client1 ]
>                                             care VM     |       ^
> libvirt event -------------\        shutdown  |        |  VM shutdown
>                                    \                         V       |
> event 1 -------- -------------------------->[   broker ]
>                                   /                        ^        |  
> dispatch
> event 2       ------------/                          |         |
>                                           subscribe   |        V listen
>                                                           [ client2 ]
>
>
> For websocket:
> There's also an issue about it. 
> https://github.com/kimchi-project/kimchi/issues/22
> The websocket is the pipe to connect the broker of the UI event worker.
> We should support websocket proxying directly from the cherrypy server 
> on its given port.
> Zheng Sheng is working on it.  It can work on cherrypy. Seems 
> something wrong with nginx.
>
Thanks Sheldon, as we discussed yesterday on scrum meeting, it's better 
to use the socket method solve long time task problem. We wanted to make 
this feature a generic one so that every long-time task will benefit 
from it. I think Kimchi should use the user information alongside with 
task type to decide which user(s) we should send the message to. It all 
happen when automatically. I don't think we need the message management 
for users.

Also, do we need to change all the tasks to this socket pattern or just 
for long-time tasks? I recommend long-time tasks.

For the message format, I think we might need the user name, role and 
the url to indicate which kind of task we are running.

As you said , the broker filter the message from the backend and I might 
need to know your design for the message frontend gets. We need to have 
it discussed further more.
>
>
>>
>> Best Regards
>>
>> Wang Wen
>>
>>
>>
>>
>> _______________________________________________
>> Kimchi-devel mailing list
>> Kimchi-devel at ovirt.org
>> http://lists.ovirt.org/mailman/listinfo/kimchi-devel
>
>
> -- 
> Thanks and best regards!
>
> Sheldon Feng(???)<shaohef at linux.vnet.ibm.com>
> IBM Linux Technology Center

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.ovirt.org/pipermail/kimchi-devel/attachments/20140703/e2c7c184/attachment.html>


More information about the Kimchi-devel mailing list