Workflow Service for OpenStack.
Go to file
Renat Akhmerov 3d7acd3957 Improve workflow completion logic by removing periodic jobs
* Workflow completion algorithm use periodic scheduled jobs to
  poll DB and determine when a workflow is finished. The problem
  with this approach is that if Mistral runs another iteration
  of such job too soon then running such jobs will create a big
  load on the system. If too late, then a workflow may be in
  RUNNING state for too long after all its tasks are completed.
  The current implementation tries to predict a delay with which
  the next job should run, based on a number of incompleted tasks.
  This approach was initially taken because we switched to a
  non-blocking transactional model (previously we locked the entire
  workflow execution graph in order to change a state of anything)
  and in this architecture, when we have parallel branches, i.e.
  parallel DB transactions, we can't make a consistent read from
  DB from neither of these transactions to make a reliable decision
  about whether the workflow is completed or not. Using periodic
  jobs was a solution. However, this approach has been proven to
  work unreliably because such a prediction about delay before the
  next job iteration doesn't work well on all variety of use cases
  that we have.
  This patch removes using periodic jobs in favor of using the
  "two transactions" approach when in the first transaction we
  handle action completion event (and task completion if it causes
  it) and in the second transaction, if a task is completed, we
  check if the workflow is completed. This approach guarantees
  that at least one of the "second" transactions in parallel
  branches will make needed consistent read from DB (i.e. will
  see the actuall state of all needed objects) to make the right
  decision.

Closes-Bug: #1799382
Change-Id: I2333507503b3b8226c184beb0bd783e1dcfa397f
2018-11-07 04:00:04 +00:00
api-ref/source Remove the invalid toctree 2018-01-31 04:16:42 +00:00
devstack Install mistral-lib as a sibling for tox jobs 2018-07-19 12:56:52 -04:00
doc Mistral install guide 2018-10-19 10:45:29 +02:00
etc Implement policy in code - event trigger (11) 2017-11-27 02:47:50 +00:00
functionaltests Remove intree mistral tempest plugin 2017-12-26 07:49:14 +00:00
mistral Improve workflow completion logic by removing periodic jobs 2018-11-07 04:00:04 +00:00
playbooks Merge "Fix docker image build job" 2018-04-25 10:09:05 +00:00
rally-jobs Reduce the concurrency in the 500 wb join Rally task 2018-10-17 09:36:29 +01:00
releasenotes Improve join by removing periodic jobs 2018-10-23 14:01:39 +07:00
tools Fix docker image not building 2018-08-01 05:08:48 +00:00
.coveragerc Exclude .tox folder from coverage report 2016-12-19 03:33:29 +00:00
.dockerignore Update default Docker configuration and documentation 2018-06-10 19:21:18 -05:00
.gitignore Update default Docker configuration and documentation 2018-06-10 19:21:18 -05:00
.gitreview Update .gitreview file for project rename 2015-06-12 23:12:30 +00:00
.stestr.conf Switch to using stestr 2018-05-30 14:46:25 -04:00
.zuul.yaml Remove remaining references to the rpc_backend 2018-10-12 11:23:50 +07:00
CONTRIBUTING.rst Merge "Chnage the mailing list URL" 2017-07-24 15:23:07 +00:00
HACKING.rst Fix the pep8 commands failed 2017-07-27 22:15:12 +08:00
LICENSE Adding license and authors file 2013-12-30 13:11:49 +07:00
README.rst Add CloudFlow info to Mistral documentation 2018-07-04 09:29:57 +03:00
lower-constraints.txt Support Manila actions in Mistral 2018-07-24 15:11:08 +02:00
requirements.txt Support Manila actions in Mistral 2018-07-24 15:11:08 +02:00
run_functional_tests.sh Removed mistral/tests/functional 2016-01-29 11:04:03 +09:00
run_tests.sh switch mysql functional tests to PyMySQL 2018-06-27 20:40:39 +00:00
setup.cfg Add entry point to allow for oslo.policy CLI usage 2018-09-19 16:25:33 +00:00
setup.py Updated from global requirements 2017-03-03 10:17:44 +00:00
test-requirements.txt Follow the new PTI for document build 2018-07-09 14:54:23 +07:00
tox.ini Mistral install guide 2018-10-19 10:45:29 +02:00

README.rst

Team and repository tags

image

Mistral

Workflow Service for OpenStack cloud. This project aims to provide a mechanism to define tasks and workflows without writing code, manage and execute them in the cloud environment.

Project Resources