[openstack-dev] [Magnum] Add periodic task threading for conductor server

大塚元央 yuanying at oeilvert.org
Tue Jun 16 07:46:44 UTC 2015

Hi, folks.

At the last summit, we decided to support pluggable conductor for multi
backend [1].
So, if we choose #3, new service (instance of periodic task) also should
support plugin.
I think this will be a little complicated to implement a plugin.

[1]: https://etherpad.openstack.org/p/liberty-work-abstract-backend


2015年6月15日(月) 11:59 Hongbin Lu <hongbin.lu at huawei.com>:

>  I think option #3 is the most desired choice in performance’s point of
> view, because magnum is going to support multiple conductors and all
> conductors share the same DB. However, if each conductor runs its own
> thread for periodic task, we will end up to have multiple instances of
> tasks for doing the same job (syncing heat’s state to magnum’s DB). I think
> magnum should have only one instance of periodic task since the replicated
> instance of tasks will stress the computing and networking resources.
> Best regards,
> Hongbin
> *From:* Qiao,Liyong [mailto:liyong.qiao at intel.com]
> *Sent:* June-14-15 9:38 PM
> *To:* openstack-dev at lists.openstack.org
> *Cc:* qiaoliyong at gmail.com
> *Subject:* [openstack-dev] [Magnum] Add periodic task threading for
> conductor server
> hi magnum team,
> I am planing to add periodic task for magnum conductor service, it will be
> good
> to sync task status with heat and container service. and I have already
> have a WIP
> patch[1], I'd like to start a discussion on the implement.
> Currently, conductor service is an rpc server, and it has several handlers
>     endpoints = [
>         docker_conductor.Handler(),
>         k8s_conductor.Handler(),
>         bay_conductor.Handler(),
>         conductor_listener.Handler(),
>     ]
> all handler runs in the rpc server.
> 1. my patch [1] is to add periodic task functions in each handlers (if it
> requires such tasks)
> and setup these functions when start rpc server, add them to a thread
> group.
> so for example:
> if we have task in bay_conductor.Handler() and docker_conductor.Handler(),
> then adding 2 threads to current service's tg. each thread run it own
> periodic tasks.
> the advantage is we separate each handler's task job to separate thread.
> but hongbin's concern is if it will has some impacts on horizontally
> scalability.
> 2. another implement is put all tasks in a thread, this thread will run all
> tasks(for bay,k8s, docker etc), just like sahara does see [2]
> 3 last one is start a new service in a separate process to run tasks.( I
> think this
> will be too heavy/wasteful)
> I'd like to get what's your suggestion, thanks in advance.
> [1] https://review.openstack.org/#/c/187090/4
> [2]
> https://github.com/openstack/sahara/blob/master/sahara/service/periodic.py#L118
>  --
> BR, Eli(Li Yong)Qiao
>  __________________________________________________________________________
> OpenStack Development Mailing List (not for usage questions)
> Unsubscribe: OpenStack-dev-request at lists.openstack.org?subject:unsubscribe
> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openstack.org/pipermail/openstack-dev/attachments/20150616/bbe53406/attachment.html>

More information about the OpenStack-dev mailing list