From: | "Todd A(dot) Cook" <tcook(at)blackducksoftware(dot)com> |
---|---|
To: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
Cc: | Kevin Grittner <Kevin(dot)Grittner(at)wicourts(dot)gov>, "pgsql-hackers(at)postgresql(dot)org" <pgsql-hackers(at)postgresql(dot)org> |
Subject: | Re: slow commits with heavy temp table usage in 8.4.0 |
Date: | 2009-08-07 16:07:41 |
Message-ID: | 4A7C514D.6080101@blackducksoftware.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
Tom Lane wrote:
>
> Actually, this is easier than I thought, because there is already
> bookkeeping being done that (in effect) tracks whether a table has
> already been truncated in the current transaction. So we can rely
> on that, and with only a very few lines of code added, ensure that
> a situation like this does only one full-scale transaction-safe
> truncation per transaction. The attached prototype patch does this
> and seems to fix the speed problem nicely. It's not tremendously
> well tested, but perhaps you'd like to test? Should work in 8.4.
I downloaded the 8.4 source, built it unmodified, created a new cluster,
and ran the test in an empty DB there. Function execution took about
230 seconds, and commit took about 6 seconds.
With the patch applied, the test only took 35 seconds, and the commit
was practically instant (30ms). I monitored the database directory,
and the test execution only created 2 files (down from 60000).
Thanks for the patch; it looks great. :)
Is there any chance that it will be backpatched to 8.4?
-- todd
From | Date | Subject | |
---|---|---|---|
Next Message | Alvaro Herrera | 2009-08-07 16:08:00 | Re: Split-up ECPG patches |
Previous Message | Tom Lane | 2009-08-07 16:04:07 | Re: mixed, named notation support |