From 3429e3824c060071e59a117c19c95659c78e4c8b Mon Sep 17 00:00:00 2001 From: Dmitry Tantsur Date: Thu, 7 Jan 2016 12:12:59 +0100 Subject: 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 --- releasenotes/notes/futurist-e9c55699f479f97a.yaml | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 releasenotes/notes/futurist-e9c55699f479f97a.yaml (limited to 'releasenotes/notes/futurist-e9c55699f479f97a.yaml') diff --git a/releasenotes/notes/futurist-e9c55699f479f97a.yaml b/releasenotes/notes/futurist-e9c55699f479f97a.yaml new file mode 100644 index 000000000..4423af5c3 --- /dev/null +++ b/releasenotes/notes/futurist-e9c55699f479f97a.yaml @@ -0,0 +1,16 @@ +--- +prelude: > + This release features switch to Oslo Futurist library for asynchronous + thread execution and periodic tasks. Main benefit is that periodic tasks + are now executed truly in parallel, and not sequentially in one + green thread. +upgrade: + - Configuration option "workers_pool_size" can no longer be less or equal + to 2. Please set it to greater value (the default is 100) before update. +deprecations: + - Configuration option "periodic_interval" is deprecated. + - Using "driver_periodic_task" decorator is deprecated. Please update your + out-of-tree drivers to use "periodics.periodic" decorator from Futurist + library. +fixes: + - Periodic tasks are no longer executed all in one thread. -- cgit v1.2.1