On Tue, 2008-09-09 at 17:17 +0300, Heikki Linnakangas wrote:
> Tom Lane wrote:
> > Simon Riggs <simon@2ndQuadrant.com> writes:
> >> On Tue, 2008-09-09 at 08:24 -0400, Tom Lane wrote:
> >>> "Agreed"? That last restriction is a deal-breaker.
> >
> >> OK, I should have said *if wal_buffers are full* XLogInsert() cannot
> >> advance to a new page while we are waiting to send or write. So I don't
> >> think its a deal breaker.
> >
> > Oh, OK, that's obvious --- there's no place to put more data.
>
> Each WAL sender can keep at most one page locked at a time, right? So,
> that should never happen if wal_buffers > 1 + n_wal_senders.
Don't understand. I am referring to the logic at the top of
AdvanceXLInsertBuffer(). We would need to wait for all people reading
the contents of wal_buffers.
Currently, there is no page locking on the WAL buffers, though I have
suggested some for increasing XLogInsert() performance.
-- Simon Riggs www.2ndQuadrant.comPostgreSQL Training, Services and Support