Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtp (Exim 4.80) (envelope-from ) id 1XLy8G-0008Sg-Hq for pgsql-hackers@arkaria.postgresql.org; Mon, 25 Aug 2014 17:32:40 +0000 Received: from localhost ([127.0.0.1] helo=postgresql.org) by malur.postgresql.org with smtp (Exim 4.80) (envelope-from ) id 1XLy8G-0007ty-0G for pgsql-hackers@arkaria.postgresql.org; Mon, 25 Aug 2014 17:32:40 +0000 Received: from makus.postgresql.org ([2001:4800:1501:1::229]) by malur.postgresql.org with esmtps (TLS1.2:DHE_RSA_AES_256_CBC_SHA256:256) (Exim 4.80) (envelope-from ) id 1XLy8E-0007tp-C4 for pgsql-hackers@postgresql.org; Mon, 25 Aug 2014 17:32:38 +0000 Received: from smtp-outbound-1.vmware.com ([208.91.2.12]) by makus.postgresql.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.80) (envelope-from ) id 1XLy85-00027R-P4 for pgsql-hackers@postgresql.org; Mon, 25 Aug 2014 17:32:35 +0000 Received: from sc9-mailhost1.vmware.com (sc9-mailhost1.vmware.com [10.113.161.71]) by smtp-outbound-1.vmware.com (Postfix) with ESMTP id 0CE1228589; Mon, 25 Aug 2014 10:32:28 -0700 (PDT) Received: from EX13-CAS-010.vmware.com (EX13-CAS-010.vmware.com [10.113.191.62]) by sc9-mailhost1.vmware.com (Postfix) with ESMTP id 07119184A2; Mon, 25 Aug 2014 10:32:28 -0700 (PDT) Received: from EX13-MBX-024.vmware.com (10.113.191.44) by EX13-MBX-012.vmware.com (10.113.191.32) with Microsoft SMTP Server (TLS) id 15.0.775.38; Mon, 25 Aug 2014 10:32:28 -0700 Received: from [192.168.1.90] (10.113.160.246) by EX13-MBX-024.vmware.com (10.113.191.44) with Microsoft SMTP Server (TLS) id 15.0.775.38; Mon, 25 Aug 2014 10:32:26 -0700 Message-ID: <53FB7326.9010006@vmware.com> Date: Mon, 25 Aug 2014 20:32:22 +0300 From: Heikki Linnakangas Organization: VMware User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Icedove/24.5.0 MIME-Version: 1.0 To: Peter Eisentraut , pgsql-hackers Subject: Re: improving speed of make check-world References: <53ED9E6C.1080700@gmx.net> In-Reply-To: <53ED9E6C.1080700@gmx.net> Content-Type: text/plain; charset="UTF-8"; format=flowed Content-Transfer-Encoding: 7bit X-Originating-IP: [10.113.160.246] X-ClientProxiedBy: EX13-CAS-013.vmware.com (10.113.191.65) To EX13-MBX-024.vmware.com (10.113.191.44) X-Pg-Spam-Score: -6.9 (------) List-Archive: List-Help: List-ID: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: X-Mailing-List: pgsql-hackers Precedence: bulk Sender: pgsql-hackers-owner@postgresql.org On 08/15/2014 08:45 AM, Peter Eisentraut wrote: > make check-world creates a temporary installation in every subdirectory > it runs a test in, which is stupid: it's very slow and uses a lot of > disk space. It's enough to do this once per run. That is the essence > of what I have implemented. It cuts the time for make check-world in > half or less, and it saves gigabytes of disk space. Nice! > The idea is that we only maintain one temporary installation under the > top-level directory. By looking at the variable MAKELEVEL, we can tell > whether we are the top-level make invocation. If so, make a temp > installation. If not, we know that the upper layers have already done > it and we can just point to the existing temp installation. > > I do this by ripping out the temp installation logic from pg_regress and > implementing it directly in the makefiles. This is much simpler and has > additional potential benefits: > > The pg_regress temp install mode is actually a combination of two > functionalities: temp install plus temp instance. Until now, you could > only get the two together, but the temp instance functionality is > actually quite useful by itself. It opens up the possibility of > implementing "make check" for external pgxs modules, for example. > > Also, you could now run the temp installation step using parallel make, > making it even faster. This was previously disabled because the make > flags would have to pass through pg_regress. It still won't quite work > to run make check-world -j8, say, because we can't actually run the > tests in parallel (yet), but something like make -C src/test/regress > check -j8 should work. > > To that end, I have renamed the pg_regress --temp-install option to > --temp-instance. Since --temp-install is only used inside the source > tree, this shouldn't cause any compatibility problems. Yeah, that all makes a lot of sense. The new EXTRA_INSTALL makefile variable ought to be documented in extend.sgml, where we list REGRESS_OPTS and others. - Heikki -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers