Improve performance of task claims by managers #852
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
We've noticed that with large databases, the time to claim tasks is a bit slow (multiple seconds). This is particularly noticeable in Issue #850 .
This PR aims to improve this significantly via two main ways:
available
column which can be used to filter, rather than thestatus
column of the joinedbase_record
table. This seems to be the fastest way, although it denormalizes stuff a bitWHERE status = 'waiting'
index on base_record but that didn't even help as muchTests on a copy of a production database show a reduction from ~2-3 seconds to 0.5-0.7 seconds for 200 tasks. Getting it much lower is going to be tough, since some of that is data transfer overhead over the internet.
Note that this does require a database migration with the
upgrade-db
subcommand.Status