From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp1 ([2001:41d0:2:4a6f::]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) by ms0.migadu.com with LMTPS id LQQOOR4mjGC7ugAAgWs5BA (envelope-from ) for ; Fri, 30 Apr 2021 17:45:34 +0200 Received: from aspmx1.migadu.com ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp1 with LMTPS id 0BaBMx4mjGAhJAAAbx9fmQ (envelope-from ) for ; Fri, 30 Apr 2021 15:45:34 +0000 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by aspmx1.migadu.com (Postfix) with ESMTPS id 7ED07205A6 for ; Fri, 30 Apr 2021 17:45:34 +0200 (CEST) Received: from localhost ([::1]:58252 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lcVKf-0005q0-Mu for larch@yhetil.org; Fri, 30 Apr 2021 11:45:33 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:48722) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lcVKK-0005oG-Sw for guix-devel@gnu.org; Fri, 30 Apr 2021 11:45:12 -0400 Received: from mout01.posteo.de ([185.67.36.65]:49769) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lcVKI-0007Km-64 for guix-devel@gnu.org; Fri, 30 Apr 2021 11:45:12 -0400 Received: from submission (posteo.de [89.146.220.130]) by mout01.posteo.de (Postfix) with ESMTPS id 45C62240027 for ; Fri, 30 Apr 2021 17:45:04 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=posteo.net; s=2017; t=1619797504; bh=y3t8yImAE+UEb61Jkd7yDnr/RYcRiGcvvpzmQIZxbrk=; h=Date:From:To:Subject:From; b=a7z22U6QCJKGMMJx8UbUJ0zKJRATl9vuq9xwPOw78WbGpsBMOOgRX50afhcWHgUi0 wf4uM0qzFNaDrbqz8kWSjUEgB8ZH3Wap54VwVcEEKhf0toqATCw0LkW+Mwd6BDYgjM OIWxRxP0VGysMqiDdNIm5H/vbHuu6+ahOxt9uLe5tMoB6yw4Ud1TaUOE6W4J2c4T4a 6I/+zb+XM5kn1DB0lZ/HFknIMAg6FRSLvx9ZncVT8DJ+hROtDcuKd46b67fEZBo39U ydkR+IbfYwWso7VJnVra/Pmp2s6CO5oH18COyIsvWKgDB/dmFdMEVPrpebhw2SXNmZ gzxKa8xuoWYsg== Received: from customer (localhost [127.0.0.1]) by submission (posteo.de) with ESMTPSA id 4FWxWx6Zxnz9rxm; Fri, 30 Apr 2021 17:45:01 +0200 (CEST) Date: Fri, 30 Apr 2021 15:44:43 +0000 From: Luciana Lima Brito To: Christopher Baines , guix-devel@gnu.org Subject: Re: Outreachy: Timeline tasks Message-ID: <20210430124443.561fb340@lubrito> In-Reply-To: <87mttgetm5.fsf@cbaines.net> References: <20210428145941.4bd0dd6f@lubrito> <87y2d2e0j4.fsf@cbaines.net> <20210428162030.2cab4106@lubrito> <87v986dvrn.fsf@cbaines.net> <87mttgetm5.fsf@cbaines.net> MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Received-SPF: pass client-ip=185.67.36.65; envelope-from=lubrito@posteo.net; helo=mout01.posteo.de X-Spam_score_int: -43 X-Spam_score: -4.4 X-Spam_bar: ---- X-Spam_report: (-4.4 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_MED=-2.3, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: guix-devel@gnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-devel-bounces+larch=yhetil.org@gnu.org Sender: "Guix-devel" X-Migadu-Flow: FLOW_IN ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1619797534; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:list-id:list-help: list-unsubscribe:list-subscribe:list-post:dkim-signature; bh=RGhk7ec6Td9ooRiatjAgkLgpGTd3yCVS4W1g0kDW73U=; b=QwBE65C25ml12qFx/3uRw336E/6HLnF/6XlB3e4koVuEM/0qnBWGq9AT2fhDGG4MYCUrV4 faM5O1q86xAWrnrybnlLnOMSk6mDKf2bjAy3HJhg6fb/ugPuLM22nQxVtcjz/pN9dAFPLQ YdK9/8YrGGUh1Le+OxP2eVYeYj36rKQt4ka5Z10I7g0ESDQqlChdusZvLl7WxrHTH0XIYp qMyuvgj6ipEOxMu54G4gCcB++yLWV/koWUoabZQej3Ia0fFxUTP+0nZosn6q9DC6SUHS// 0Io7X8vQ3lkWyW4s3Q+iFiRoBDKfN5J8cfheisEB/b21oCIV7q67JkXxMk1CuQ== ARC-Seal: i=1; s=key1; d=yhetil.org; t=1619797534; a=rsa-sha256; cv=none; b=ICJwU+0SapY2zzmUNPzqyfWvcJa+bYk0ZiiUH26QMs/nkbN74BcrbbSaTvHfNU4ZbWO6EQ T8EtXcbTOGqfjM4qYtl6gS72aelXO31wrtJI2CgcKdKpifKxWqc8R3lOa6VKtzraMDtt5k daXcB5tzi0/gU6hjfuKWDpfyRWW9hIQZoNll5jttk6J0ype7/FSR242pIYRadqIw8VLAwq YSc4YmwbOnHT/abZQiTu4MilmBCJGpyhc0BKppiIOGUAcuVJvN5NMBLXArmrS3TYeUWCQf 8C44Wz6aKBcZlGncA4w32FjuuJ83JNvW1zijafGfiEx9rHCO7t5TKz589azVkw== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=pass header.d=posteo.net header.s=2017 header.b=a7z22U6Q; spf=pass (aspmx1.migadu.com: domain of guix-devel-bounces@gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=guix-devel-bounces@gnu.org X-Migadu-Spam-Score: -2.66 Authentication-Results: aspmx1.migadu.com; dkim=pass header.d=posteo.net header.s=2017 header.b=a7z22U6Q; dmarc=pass (policy=none) header.from=posteo.net; spf=pass (aspmx1.migadu.com: domain of guix-devel-bounces@gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=guix-devel-bounces@gnu.org X-Migadu-Queue-Id: 7ED07205A6 X-Spam-Score: -2.66 X-Migadu-Scanner: scn0.migadu.com X-TUID: 3lwRXgU41b9E Hi, On Thu, 29 Apr 2021 21:14:10 +0100 Christopher Baines wrote: > Great, can you add more detail to this bit? Given the instrumentation > is a really important part, it would be good to have some working > ideas for what this chart might look like, and what goes in to making > it (like where the data comes from and if and where it's stored). Task 1: Add instrumentation to identify the slow parts of processing new revisions: - Implementing a chart over time to identify slow parts: - The chart should consider two aspects, the time took by each specific part, and its name, for identification purpose. A bar chart is a good candidate for this task, it is simple and can show the whole picture of the time taken by the system to process a new revision; - The bars on the chart should be sorted in order of precedence of the process in the X axis, and its height, which is determined by the time it takes, measured in the Y axis; - The charts should work as picture-logs for timing; - A chart should be generated for each new revision in real time; - The time is already being computed for each part and it is shown in the logs, the same data can be used to build the charts. This way data does not need to be stored, because the chart can be built in real time, but the chart itself needs to be stored, in the same way as the logs already are. > I'd try to set out more of a strategy, so what might be causes of > slowness, how would you investigate them, and what are common > approaches to making those things faster? Task 2: Improve the performance of these slow parts: - Select candidate parts to be analyzed; - Identify the causes of slowness: - If it uses queries, perform query analysis, for example using EXPLAIN and ANALYZE, get its statistics and improve them when needed; - On the code, investigate the structure, for example, using Tracing to discover if a recursion is too long and if it can be modified to be tail recursive. - Implement the required improvements. In fact, I have never performed improvements on queries or code this way, but I am studying. Please, tell me if I am missing important details. See what you think about that. -- Best Regards, Luciana Lima Brito MSc. in Computer Science