pg.ddx.io  pgsql-hackers@postgresql.org mailing list archive  
help / color / mirror / Atom feed
From: Heikki Linnakangas <hlinnakangas@vmware.com>
To: Peter Eisentraut <peter_e@gmx.net>
To: pgsql-hackers <pgsql-hackers@postgresql.org>
Subject: Re: improving speed of make check-world
Date: Mon, 25 Aug 2014 20:32:22 +0300
Message-ID: <53FB7326.9010006@vmware.com> (raw)
In-Reply-To: <53ED9E6C.1080700@gmx.net>
References: <53ED9E6C.1080700@gmx.net>
List-Unsubscribe: <mailto:majordomo@postgresql.org?body=unsub%20pgsql-hackers>

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



view thread (22+ messages)  latest in thread

Message-ID: <53FB7326.9010006@vmware.com>
Permalink:  ../53FB7326.9010006@vmware.com/
Also on:    postgresql.org/message-id/53FB7326.9010006@vmware.com

 · 

reply

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Reply to all the recipients using the --to and --cc options:
  reply via email

  To: pgsql-hackers@postgresql.org
  Cc: hlinnakangas@vmware.com, peter_e@gmx.net
  Subject: Re: improving speed of make check-world
  In-Reply-To: <53FB7326.9010006@vmware.com>

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox