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

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: Heikki Linnakangas <heikki(dot)linnakangas(at)enterprisedb(dot)com>
Cc: Fujii Masao <masao(dot)fujii(at)gmail(dot)com>, Jeff Janes <jeff(dot)janes(at)gmail(dot)com>, Robert Haas <robertmhaas(at)gmail(dot)com>, PostgreSQL-development <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: Scaling XLog insertion (was Re: Moving more work outside WALInsertLock)
Date: 2012-03-05 17:17:26
Message-ID: 13352.1330967846@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Heikki Linnakangas <heikki(dot)linnakangas(at)enterprisedb(dot)com> writes:
> On 21.02.2012 13:19, Fujii Masao wrote:
>> In some places, the spinlock "insertpos_lck" is taken while another
>> spinlock "info_lck" is being held. Is this OK? What if unfortunately
>> inner spinlock takes long to be taken?

> Hmm, that's only done at a checkpoint (and a restartpoint), so I doubt
> that's a big issue in practice. We had the same pattern before the
> patch, just with WALInsertLock instead of insertpos_lck. Holding a
> spinlock longer is much worse than holding a lwlock longer, but
> nevertheless I don't think that's a problem.

No, that's NOT okay. A spinlock is only supposed to be held across a
short straight-line sequence of instructions. Something that could
involve a spin loop, or worse a sleep() kernel call, is right out.
Please change this.

regards, tom lane

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Robert Haas 2012-03-05 17:28:24 Re: Our regex vs. POSIX on "longest match"
Previous Message Tom Lane 2012-03-05 17:08:37 Re: Patch review for logging hooks (CF 2012-01)