Re: Scaling XLog insertion (was Re: Moving more work outside WALInsertLock)

Heikki Linnakangas <heikki.linnakangas@enterprisedb.com>

From: Heikki Linnakangas <heikki.linnakangas@enterprisedb.com>
To: Fujii Masao <masao.fujii@gmail.com>
Cc: Tom Lane <tgl@sss.pgh.pa.us>, Simon Riggs <simon@2ndquadrant.com>, Alvaro Herrera <alvherre@commandprompt.com>, Jeff Janes <jeff.janes@gmail.com>, Robert Haas <robertmhaas@gmail.com>, Pg Hackers <pgsql-hackers@postgresql.org>
Date: 2012-03-09T10:45:05Z
Lists: pgsql-hackers

Attachments

On 09.03.2012 12:34, Fujii Masao wrote:
> On Fri, Mar 9, 2012 at 7:04 PM, Heikki Linnakangas
> <heikki.linnakangas@enterprisedb.com>  wrote:
>> Here's an updated patch. It now only loops once per segment that a record
>> crosses. Plus a lot of other small cleanup.
>
> Thanks! But you forgot to attach the patch.

Sorry, here you go.

>> I've been doing some performance testing with this, using a simple C
>> function that just inserts a dummy WAL record of given size. I'm not totally
>> satisfied. Although the patch helps with scalability at 3-4 concurrent
>> backends doing WAL insertions, it seems to slow down the single-client case
>> with small WAL records by about 5-10%. This is what Robert also saw with an
>> earlier version of the patch
>> (http://archives.postgresql.org/pgsql-hackers/2011-12/msg01223.php). I
>> tested this with the data directory on a RAM drive, unfortunately I don't
>> have a server with a hard drive that can sustain the high insertion rate.
>> I'll post more detailed results, once I've refined the tests a bit.
>
> I'm also doing performance test. If I get interesting result, I'll post it.

Thanks!

BTW, I haven't forgotten about the recovery bugs Jeff found earlier. I'm 
planning to do a longer run with his test script - I only run it for 
about 1000 iterations - to see if I can reproduce the PANIC with both 
the earlier patch version he tested, and this new one.

-- 
   Heikki Linnakangas
   EnterpriseDB   http://www.enterprisedb.com