From: | Heikki Linnakangas <hlinnakangas(at)vmware(dot)com> |
---|---|
To: | Peter Eisentraut <peter_e(at)gmx(dot)net>, pgsql-hackers <pgsql-hackers(at)postgresql(dot)org> |
Subject: | Re: improving speed of make check-world |
Date: | 2014-08-25 17:32:22 |
Message-ID: | 53FB7326.9010006@vmware.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-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
From | Date | Subject | |
---|---|---|---|
Next Message | Fujii Masao | 2014-08-25 17:53:21 | Re: Specifying the unit in storage parameter |
Previous Message | Heikki Linnakangas | 2014-08-25 17:18:05 | Re: SKIP LOCKED DATA (work in progress) |