From: | Robert Haas <robertmhaas(at)gmail(dot)com> |
---|---|
To: | Andres Freund <andres(at)anarazel(dot)de> |
Cc: | "pgsql-hackers(at)postgresql(dot)org" <pgsql-hackers(at)postgresql(dot)org> |
Subject: | Re: slowest tap tests - split or accelerate? |
Date: | 2022-01-18 17:49:16 |
Message-ID: | CA+TgmoamUNs_YyaRQ1kYGCeriuev+SyWg1DWNh39pF04j=b4Wg@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
On Mon, Jan 17, 2022 at 2:57 PM Andres Freund <andres(at)anarazel(dot)de> wrote:
> > pg_basebackup's 010_pg_basebackup.pl looks like it could be split up,
> > though. That one, at least to me, looks like people have just kept
> > adding semi-related things into the same test file.
>
> Yea.
Here's a patch that splits up that file. Essentially the first half of
the file is concerned with testing that a backup ends up in the state
it expects, while the second half is concerned with checking that
various options to pg_basebackup work. So I split it that way, plus I
moved some of the really basic stuff to a completely separate file
with a very brief runtime. The test results are interesting.
Unpatched:
[12:33:33] t/010_pg_basebackup.pl ... ok 16161 ms ( 0.02 usr 0.00
sys + 2.07 cusr 7.80 csys = 9.89 CPU)
[12:33:49] t/020_pg_receivewal.pl ... ok 4115 ms ( 0.00 usr 0.00
sys + 0.89 cusr 1.73 csys = 2.62 CPU)
[12:33:53] t/030_pg_recvlogical.pl .. ok 1857 ms ( 0.01 usr 0.01
sys + 0.63 cusr 0.73 csys = 1.38 CPU)
[12:33:55]
All tests successful.
Files=3, Tests=177, 22 wallclock secs ( 0.04 usr 0.02 sys + 3.59
cusr 10.26 csys = 13.91 CPU)
Pached:
[12:32:03] t/010_pg_basebackup_basic.pl ...... ok 192 ms ( 0.01
usr 0.00 sys + 0.10 cusr 0.05 csys = 0.16 CPU)
[12:32:03] t/011_pg_basebackup_integrity.pl .. ok 5530 ms ( 0.00
usr 0.00 sys + 0.87 cusr 2.51 csys = 3.38 CPU)
[12:32:09] t/012_pg_basebackup_options.pl .... ok 13117 ms ( 0.00
usr 0.00 sys + 1.87 cusr 6.31 csys = 8.18 CPU)
[12:32:22] t/020_pg_receivewal.pl ............ ok 4314 ms ( 0.01
usr 0.00 sys + 0.97 cusr 1.77 csys = 2.75 CPU)
[12:32:26] t/030_pg_recvlogical.pl ........... ok 1908 ms ( 0.00
usr 0.00 sys + 0.64 cusr 0.77 csys = 1.41 CPU)
[12:32:28]
All tests successful.
Files=5, Tests=177, 25 wallclock secs ( 0.04 usr 0.02 sys + 4.45
cusr 11.41 csys = 15.92 CPU)
Sadly, we've gained about 2.5 seconds of runtime as the price of
splitting the test. Arguably the options part could be split up a lot
more finely than this, but that would drive up the runtime even more,
basically because we'd need more initdbs. So I don't know whether it's
better to leave things as they are, split them this much, or split
them more. I think this amount of splitting might be justified simply
in the interests of clarity, but I'm reluctant to go further unless we
get some nifty initdb-caching system.
Thoughts?
--
Robert Haas
EDB: http://www.enterprisedb.com
Attachment | Content-Type | Size |
---|---|---|
v1-0001-Split-010_pg_basebackup.pl.patch | application/octet-stream | 22.9 KB |
From | Date | Subject | |
---|---|---|---|
Next Message | Alvaro Herrera | 2022-01-18 17:50:10 | Re: Add last commit LSN to pg_last_committed_xact() |
Previous Message | Andres Freund | 2022-01-18 17:44:13 | Re: Adding CI to our tree |