OpenStack Task Tracking API
Go to file
Adam Coldrick 63a003af7f Optimise the Story browsing query
The `story_get_all` function currently constructs a query which perfoms
very poorly, making search in StoryBoard painful to the point of being
almost unusable with only ~30000 stories in the database. There are a
number of reasons for the poor performance, but the most impactful is
the fact that we join two subqueries, one of which contains the entire
stories table, and the other which contains a filtered list of story
IDs to implement most of the filtering.

This commit removes all of the subquerying, and just does simple
filtering in a single WHERE clause. Basic comparison of the two queries
shows around an 85% - 90% speedup in the execution time using the new
approach, from ~100ms for the current query, and ~10-15ms for the new
query (using a test dataset containing 10000 stories).

This approach adds a bit of code complexity around filtering stories by
story status, but this is a cost worth paying for the performance
improvement. The new approach will also allow extra flexibility in the
meaning of the story statuses, making it easier to have per-project
statuses for example.

Story: 2005845
Task: 33627
Change-Id: I7c19372506017726e4fc61ffb09d3cfb9c6b36d3
2020-09-11 12:27:55 +01:00
doc Drop Python 2.7 support 2020-03-28 14:25:33 +00:00
docker Optimise the Story browsing query 2020-09-11 12:27:55 +01:00
etc Add a Swift storage backend implementation 2019-11-16 21:03:37 +00:00
storyboard Optimise the Story browsing query 2020-09-11 12:27:55 +01:00
tools Unpin webob and hacking to fix compatibility issues 2020-09-11 12:26:47 +01:00
.coveragerc remove final vestiges of incubated oslo code 2016-11-07 13:31:55 -05:00
.gitignore Remove vagrant setup 2018-01-10 00:30:08 +00:00
.gitreview OpenDev Migration Patch 2019-04-19 19:26:02 +00:00
.stestr.conf Use one database per test class rather than per test 2019-03-18 15:24:05 +00:00
.zuul.yaml Drop Python 2.7 support 2020-03-28 14:25:33 +00:00
CONTRIBUTING.rst Replace broken links and http links in the doc 2018-06-30 00:04:59 +02:00
Dockerfile Build container images 2019-12-09 16:09:20 -05:00
LICENSE Initial import 2013-07-01 18:09:56 +02:00
MANIFEST.in Introducing basic REST API 2014-01-22 11:37:54 -08:00
README.rst Replace broken links and http links in the doc 2018-06-30 00:04:59 +02:00
babel.cfg Add SQLalchemy database model 2014-01-13 18:52:47 +04:00
bindep.txt Build container images 2019-12-09 16:09:20 -05:00
requirements.txt Unpin webob and hacking to fix compatibility issues 2020-09-11 12:26:47 +01:00
setup.cfg Drop Python 2.7 support 2020-03-28 14:25:33 +00:00
setup.py Drop Python 2.7 support 2020-03-28 14:25:33 +00:00
test-requirements.txt Unpin webob and hacking to fix compatibility issues 2020-09-11 12:26:47 +01:00
tox.ini Unpin webob and hacking to fix compatibility issues 2020-09-11 12:26:47 +01:00

README.rst

Storyboard

Storyboard is a task tracker created to serve the needs of highly-distributed systems that span multiple projects, to enable cross-project work on a massive scale. Concepts were adapted from existing tools, and as many potential points of contention were removed as possible, to better facilitate coordination of project work by stakeholders with widely varied interests and needs.

Project Resources

Project status, bugs, and blueprints are tracked at:

https://storyboard.openstack.org

Source code can be found at:

https://git.openstack.org/cgit/openstack-infra/storyboard/

Documentation can be found here:

https://docs.openstack.org/infra/storyboard/

Additional resources are linked from the project wiki page:

https://wiki.openstack.org/wiki/StoryBoard

Anyone wishing to contribute to an OpenStack project should find plenty of helpful resources here:

https://docs.openstack.org/infra/manual/developers.html

All OpenStack projects use Gerrit for code reviews. A good reference for that is here:

https://docs.openstack.org/infra/manual/developers.html#development-workflow