From: | Jaime Casanova <jcasanov(at)systemguards(dot)com(dot)ec> |
---|---|
To: | Alvaro Herrera <alvherre(at)commandprompt(dot)com> |
Cc: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, Jeff Janes <jeff(dot)janes(at)gmail(dot)com>, pgsql-hackers(at)postgresql(dot)org |
Subject: | Re: XLogInsert |
Date: | 2009-12-13 07:18:02 |
Message-ID: | 3073cc9b0912122318v2a7edc47se0378e7335daaf5f@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
On Thu, Dec 10, 2009 at 3:58 PM, Alvaro Herrera
<alvherre(at)commandprompt(dot)com> wrote:
> Jaime Casanova escribió:
>> On Wed, Dec 9, 2009 at 9:39 AM, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> wrote:
>> > so I'd like some independent confirmation that it does.
>> >
>>
>> what kind of tests could show that? or simply running pgbench several
>> times for 15 minutes each run could show any benefit?
>
> Isn't the supposed performance improvement in this patch linked strongly
> to backup blocks? If that's really the case, I think it would show more
> prominently if you had very frequent checkpoints.
>
Ah! Ok, i was only following the logic that it was eliminating the
need of executing a loop twice...
But you are right while the loop executes always it only do something
meaningful after a checkpoint and the for statement only make 3 loops
each, because XLR_MAX_BKP_BLOCKS is defined as 3 in
src/include/access/xlog.h
looked that way seems like the benefit could be only marginal
to prove that i compile with and without the patch, and change
checkpoint_segments = 1 and checkpoint_timeout = 1min to force
frequent checkpoints (actually they ocurred a few seconds apart)
initialize the pgbench database in each installation with:
pgbench -i -s 200 -F 90 test
and executed 6 times with:
pgbench -n -c 50 -j 5 -l -T 900 test
Results are:
Min (tps)
Unpatched - including connections establishing 133.046069 excluding it
133.085274
Patched - including connections establishing 139.567284 excluding
it 139.591229
Max (tps)
Unpatched - including connections establishing 147.082181 excluding
it 147.108752
Patched - including connections establishing 151.276416 excluding
it 151.311745
Avg (tps)
Unpatched - including connections establishing 140.750998 excluding
it 140.790336
Patched - including connections establishing 146.383735 excluding
it 146.411039
So in this extreme case avg tps is just 6 transactions better
PS: i'm attaching the files i use for the tests
--
Atentamente,
Jaime Casanova
Soporte y capacitación de PostgreSQL
Asesoría y desarrollo de sistemas
Guayaquil - Ecuador
Cel. +59387171157
Attachment | Content-Type | Size |
---|---|---|
test_patched.sh | application/x-sh | 647 bytes |
test_unpatched.sh | application/x-sh | 647 bytes |
From | Date | Subject | |
---|---|---|---|
Next Message | KaiGai Kohei | 2009-12-13 08:50:53 | Re: Row-Level Security |
Previous Message | Andrew Dunstan | 2009-12-13 05:42:47 | Re: Winflex |