]> git.ipfire.org Git - thirdparty/patchwork.git/commit
Add covering index for /list/ query
authorStewart Smith <stewart@linux.ibm.com>
Fri, 10 Aug 2018 08:00:59 +0000 (18:00 +1000)
committerStephen Finucane <stephen@that.guru>
Mon, 10 Sep 2018 20:24:09 +0000 (14:24 -0600)
commit102c1571c7026798813b6ce274941fd578f39613
tree7bd07e8f49df75d23f77864c49434398baef1acf
parent2e46aa9ec3dea42942012e6ed8c48276249719a8
Add covering index for /list/ query

In constructing the list of patches for a project, there are two
main queries that are executed:
1) get a count() of how many patches there are
2) Get the page of results being displayed

In a test dataset of ~11500 LKML patches and ~4000 others, the existing
code would take around 585ms and 858ms with a cold cache and 28ms and
198ms for a warm cache.

By adding a covering index, we get down to 4ms and 255ms for a cold
cache, and 4ms and 143ms for a warm cache!

Additionally, when there's a lot of archived or accepted patches
(I used ~11000 archived out of the 15000 total in my test set)
the query time goes from 28ms and 72ms down to 2ms and 33-40ms!

Signed-off-by: Stewart Smith <stewart@linux.ibm.com>
[stephenfin: Regenerate migrations per addition of 0027 in earlier
 patch]
Signed-off-by: Stephen Finucane <stephen@that.guru>
patchwork/migrations/0029_add_list_covering_index.py [new file with mode: 0644]
patchwork/models.py