[RFE] Switch periodic tasks to the Futurist library

Bug #1526277 reported by Vladyslav Drok on 2015-12-15
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Fix Released
Dmitry Tantsur

Bug Description

Futurist is a new Oslo library providing tools for writing asynchronous code.
This spec suggests swithing our periodic task implementation to Futurist to solve some long-standing problems.


Vladyslav Drok (vdrok) wrote :
Changed in ironic:
status: New → Confirmed
importance: Undecided → Wishlist
tags: added: rfe
Dmitry Tantsur (divius) wrote :

Setting to triaged, as the spec is approved

Changed in ironic:
status: Confirmed → Triaged
assignee: nobody → Dmitry Tantsur (divius)
Ruby Loo (rloo) wrote :

Spec is available at http://specs.openstack.org/openstack/ironic-specs/specs/approved/futurist.html.

Copying this from corresponding BP (https://blueprints.launchpad.net/ironic/+spec/futurist):

Gerrit topic: https://review.openstack.org/#q,topic:futurist,n,z

Addressed by: https://review.openstack.org/191710
    Switch periodic tasks to the Futurist library

Gerrit topic: https://review.openstack.org/#q,topic:bp/futurist,n,z

Addressed by: https://review.openstack.org/232517
    Move common code from ironic.conductor.manager to ironic.conductor.utils

Addressed by: https://review.openstack.org/249938
    Split BaseManager from ConductorManager

Changed in ironic:
status: Triaged → In Progress

Changing to rfe-approved since the spec is already approved: http://specs.openstack.org/openstack/ironic-specs/specs/approved/futurist.html

tags: added: rfe-approved
removed: rfe

Reviewed: https://review.openstack.org/264720
Committed: https://git.openstack.org/cgit/openstack/ironic/commit/?id=3429e3824c060071e59a117c19c95659c78e4c8b
Submitter: Jenkins
Branch: master

commit 3429e3824c060071e59a117c19c95659c78e4c8b
Author: Dmitry Tantsur <email address hidden>
Date: Thu Jan 7 12:12:59 2016 +0100

    Switch to Futurist library for asynchronous execution and periodic tasks

    This change switches the conductor to using Futurist library executor and
    periodic tasks worker instead of oslo.service periodic tasks. This allows
    running periodic tasks in parallel and relying on more standard interfaces
    (futures, executors) when dealing with asynchronous execution.

    A green thread executor is used instead of using an eventlet green pool
    directly. The maximum number of workers is taken from the existing
    workers_pool_size configuration option, and no tasks are allowed
    to be enqueued to mimic the previous behaviour (might be lifted later).

    The periodic tasks worker is using the same executor, and its main loop thread
    is also running on it. For this reason minimum value for workers_pool_size
    is now 3: periodic task main loop, keep alive thread and at least one thread for
    other tasks. A special decorator for driver-periodic tasks is now deprecated,
    as the generic decorator can be used there as well.

    Closes-Bug: #1526277
    Change-Id: I57bf7cebfb6db805b6c521bacfef2993b16ce1ee

Changed in ironic:
status: In Progress → Fix Released

This issue was fixed in the openstack/ironic 5.0.0 release.

To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers