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

Simon Riggs <simon@2ndquadrant.com>

From: Simon Riggs <simon@2ndQuadrant.com>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: Alvaro Herrera <alvherre@commandprompt.com>, Heikki Linnakangas <heikki.linnakangas@enterprisedb.com>, Fujii Masao <masao.fujii@gmail.com>, Jeff Janes <jeff.janes@gmail.com>, Robert Haas <robertmhaas@gmail.com>, Pg Hackers <pgsql-hackers@postgresql.org>
Date: 2012-03-07T15:17:10Z
Lists: pgsql-hackers
On Wed, Mar 7, 2012 at 3:04 PM, Tom Lane <tgl@sss.pgh.pa.us> wrote:
> Alvaro Herrera <alvherre@commandprompt.com> writes:
>> Just to keep things in perspective -- For a commit record to reach one
>> megabyte, it would have to be a transaction that drops over 43k tables.
>> Or have 64k smgr inval messages (for example, a TRUNCATE might send half
>> a dozen of these messages). Or have 262k subtransactions.  Or
>> combinations thereof.
>
>> Now admittedly, a page is only 8 kB, so for a commit record to be "many
>> pages long" (that is, >=3) it would require about 1500 smgr inval
>> messages, or, say, about 250 TRUNCATEs (of permanent tables with at
>> least one toastable field and at least one index).
>
> What about the locks (if running hot-standby)?

It's a list of active AccessExclusiveLocks. If that list is long you
can be sure not much else is happening on the server.


>> So they are undoubtely rare.  Not sure if as rare as Higgs bosons.
>
> Even if they're rare, having a major performance hiccup when one happens
> is not a side-effect I want to see from a patch whose only reason to
> exist is better performance.

I agree the effect you point out can exist, I just don't want to slow
down the main case as a result.

-- 
 Simon Riggs                   http://www.2ndQuadrant.com/
 PostgreSQL Development, 24x7 Support, Training & Services