]> git.ipfire.org Git - thirdparty/patchwork.git/commit
xmlrpc/patch_list: only fetch required fields
authorDaniel Axtens <dja@axtens.net>
Thu, 28 Sep 2017 14:12:24 +0000 (00:12 +1000)
committerDaniel Axtens <dja@axtens.net>
Sun, 22 Oct 2017 07:10:39 +0000 (18:10 +1100)
commit76c3dae262590b8fcddc3d24a89b9b3717e3a9dc
tree5541d90a5513a9546a006e1c30948c531ae6451a
parent10a132f134cef46aabb01ca88a32d06bdc8cf320
xmlrpc/patch_list: only fetch required fields

OzLabs noticed *massive* slowdowns in queries like this one:

SELECT "patchwork_submission"."id", "patchwork_submission"."msgid",
"patchwork_submission"."date", "patchwork_submission"."headers",
"patchwork_submission"."submitter_id",
"patchwork_submission"."content", "patchwork_submission"."project_id",
"patchwork_submission"."name", "patchwork_patch"."submission_ptr_id",
"patchwork_patch"."diff", "patchwork_patch"."commit_ref",
"patchwork_patch"."pull_url", "patchwork_patch"."delegate_id",
"patchwork_patch"."state_id", "patchwork_patch"."archived",
"patchwork_patch"."hash" FROM "patchwork_patch" INNER JOIN
"patchwork_submission" ON ("patchwork_patch"."submission_ptr_id" =
"patchwork_submission"."id") WHERE
("patchwork_submission"."project_id" = 2 AND
"patchwork_patch"."state_id" = 1) ORDER BY
"patchwork_submission"."date" ASC

These appear to be a result of pwclient list operations. We *do not*
need content/headers/diff in this case - so do not fetch them as it
is incredibly expensive - queries in excess of 50s have been observed.

This should go to stable/2.0.

Reported-by: Stephen Rothwell <sfr@canb.auug.org.au>
Reported-by: Michael Ellerman <mpe@ellerman.id.au>
Cc: Jeremy Kerr <jk@ozlabs.org>
Signed-off-by: Daniel Axtens <dja@axtens.net>
Reviewed-by: Stephen Finucane <stephen@that.guru>
patchwork/views/xmlrpc.py