From patchwork Fri Aug 10 08:01:04 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Stewart Smith X-Patchwork-Id: 956039 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from lists.ozlabs.org (lists.ozlabs.org [IPv6:2401:3900:2:1::3]) (using TLSv1.2 with cipher ADH-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 41myHn3GNcz9s5b for ; Fri, 10 Aug 2018 18:01:25 +1000 (AEST) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=linux.ibm.com Received: from lists.ozlabs.org (lists.ozlabs.org [IPv6:2401:3900:2:1::3]) by lists.ozlabs.org (Postfix) with ESMTP id 41myHn1QnwzF09Y for ; Fri, 10 Aug 2018 18:01:25 +1000 (AEST) Authentication-Results: lists.ozlabs.org; dmarc=none (p=none dis=none) header.from=linux.ibm.com X-Original-To: patchwork@lists.ozlabs.org Delivered-To: patchwork@lists.ozlabs.org Authentication-Results: lists.ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=linux.ibm.com (client-ip=148.163.156.1; helo=mx0a-001b2d01.pphosted.com; envelope-from=stewart@linux.ibm.com; receiver=) Authentication-Results: lists.ozlabs.org; dmarc=none (p=none dis=none) header.from=linux.ibm.com Received: from mx0a-001b2d01.pphosted.com (mx0a-001b2d01.pphosted.com [148.163.156.1]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by lists.ozlabs.org (Postfix) with ESMTPS id 41myHg5kfczDrtm for ; Fri, 10 Aug 2018 18:01:19 +1000 (AEST) Received: from pps.filterd (m0098399.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.16.0.22/8.16.0.22) with SMTP id w7A7wn8e016073 for ; Fri, 10 Aug 2018 04:01:17 -0400 Received: from e16.ny.us.ibm.com (e16.ny.us.ibm.com [129.33.205.206]) by mx0a-001b2d01.pphosted.com with ESMTP id 2ks3rm6kg7-1 (version=TLSv1.2 cipher=AES256-GCM-SHA384 bits=256 verify=NOT) for ; Fri, 10 Aug 2018 04:01:16 -0400 Received: from localhost by e16.ny.us.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted for from ; Fri, 10 Aug 2018 04:01:15 -0400 Received: from b01cxnp23034.gho.pok.ibm.com (9.57.198.29) by e16.ny.us.ibm.com (146.89.104.203) with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted; (version=TLSv1/SSLv3 cipher=AES256-GCM-SHA384 bits=256/256) Fri, 10 Aug 2018 04:01:13 -0400 Received: from b01ledav002.gho.pok.ibm.com (b01ledav002.gho.pok.ibm.com [9.57.199.107]) by b01cxnp23034.gho.pok.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id w7A81Cni5636412 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=FAIL) for ; Fri, 10 Aug 2018 08:01:12 GMT Received: from b01ledav002.gho.pok.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id E76BD124060 for ; Fri, 10 Aug 2018 05:02:14 -0400 (EDT) Received: from b01ledav002.gho.pok.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id A5B36124058 for ; Fri, 10 Aug 2018 05:02:14 -0400 (EDT) Received: from birb.localdomain (unknown [9.185.142.88]) by b01ledav002.gho.pok.ibm.com (Postfix) with ESMTP for ; Fri, 10 Aug 2018 05:02:14 -0400 (EDT) Received: by birb.localdomain (Postfix, from userid 1000) id 56EEF4EC5E0; Fri, 10 Aug 2018 18:01:07 +1000 (AEST) From: Stewart Smith To: patchwork@lists.ozlabs.org Subject: [PATCH 09/11] Optimise fetching checks when displaying a patch Date: Fri, 10 Aug 2018 18:01:04 +1000 X-Mailer: git-send-email 2.17.1 In-Reply-To: <20180810080106.10714-1-stewart@linux.ibm.com> References: <20180810080106.10714-1-stewart@linux.ibm.com> X-TM-AS-GCONF: 00 x-cbid: 18081008-0072-0000-0000-0000038E92BA X-IBM-SpamModules-Scores: X-IBM-SpamModules-Versions: BY=3.00009517; HX=3.00000242; KW=3.00000007; PH=3.00000004; SC=3.00000266; SDB=6.01071573; UDB=6.00551858; IPR=6.00851334; MB=3.00022630; MTD=3.00000008; XFM=3.00000015; UTC=2018-08-10 08:01:13 X-IBM-AV-DETECTION: SAVI=unused REMOTE=unused XFE=unused x-cbparentid: 18081008-0073-0000-0000-000049076FE3 Message-Id: <20180810080106.10714-10-stewart@linux.ibm.com> X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:, , definitions=2018-08-10_05:, , signatures=0 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 malwarescore=0 suspectscore=1 phishscore=0 bulkscore=0 spamscore=0 clxscore=1015 lowpriorityscore=0 mlxscore=0 impostorscore=0 mlxlogscore=939 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1807170000 definitions=main-1808100087 X-BeenThere: patchwork@lists.ozlabs.org X-Mailman-Version: 2.1.27 Precedence: list List-Id: Patchwork development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Errors-To: patchwork-bounces+incoming=patchwork.ozlabs.org@lists.ozlabs.org Sender: "Patchwork" Prior to this patch, a typical /patch// query for linuxppc-dev (which has about half a dozen checks per patch) took around 20 queries and 16.5ms in the database. About half of those queries were fetching the checks and who did the check. We can just do one query to get all that needed information, so we do that. This brings a page load down to 10 queries in 12ms. Signed-off-by: Stewart Smith Reviewed-by: Stephen Finucane --- patchwork/templates/patchwork/submission.html | 4 ++-- patchwork/views/patch.py | 1 + 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/patchwork/templates/patchwork/submission.html b/patchwork/templates/patchwork/submission.html index 3b6f9fbe909e..72bc947c3f2d 100644 --- a/patchwork/templates/patchwork/submission.html +++ b/patchwork/templates/patchwork/submission.html @@ -216,7 +216,7 @@ function toggle_div(link_id, headers_id) >{{ submission.pull_url }} {% endif %} -{% if submission.checks %} +{% if checks %}

Checks

@@ -224,7 +224,7 @@ function toggle_div(link_id, headers_id) -{% for check in submission.checks %} +{% for check in checks %}
Check Description
{{ check.user }}/{{ check.context }} diff --git a/patchwork/views/patch.py b/patchwork/views/patch.py index e1d0cdcfcf39..fbde04280844 100644 --- a/patchwork/views/patch.py +++ b/patchwork/views/patch.py @@ -119,6 +119,7 @@ def patch_detail(request, patch_id): comments = comments.only('submitter','date','id','content','submission') context['all_series'] = patch.series.all().order_by('-date') + context['checks'] = patch.check_set.all().select_related('user') context['comments'] = comments context['submission'] = patch context['patchform'] = form