RE: 7.0.3(nofsync) vs 7.1 - Mailing list pgsql-hackers

From Mikheev, Vadim
Subject RE: 7.0.3(nofsync) vs 7.1
Date
Msg-id 8F4C99C66D04D4118F580090272A7A234D31EA@sectorbase1.sectorbase.com
Whole thread Raw
In response to 7.0.3(nofsync) vs 7.1  ("Mikheev, Vadim" <vmikheev@SECTORBASE.COM>)
Responses Re: 7.0.3(nofsync) vs 7.1
Re: 7.0.3(nofsync) vs 7.1
List pgsql-hackers
> > So, I've run simple test (below) to check this. Seems that 7.1
> > is faster than 7.0.3 (nofsync), and that SELECT FOR UPDATE in RI
> > triggers is quite bad for performance.
> > Also, we should add new TODO item: implement dirty reads
> > and use them in RI triggers.
> 
> That would fix RI triggers, I guess, but what about plain SELECT FOR
> UPDATE being used by applications?

What about it? Application normally uses exclusive row locks only when
it's really required by application logic.

Exclusive PK locks are not required for FK inserts by RI logic,
we just have no other means to ensure PK existence currently.

Keeping in mind that RI is used near in every application I would
like to see this fixed. And ppl already complained about it.

> Why exactly is SELECT FOR UPDATE such a performance problem for 7.1,
> anyway?  I wouldn't have thought it'd be a big deal...

I have only one explanation: it reduces number of transactions ready
to commit (because of the same FK writers will wait till first one
committed - ie log fsynced) and WAL commit performance greatly depends
on how many commits were done by single log fsync.
7.0.3+nofsync commit performance doesn't depend on this factor.

Vadim


pgsql-hackers by date:

Previous
From: mlw
Date:
Subject: Re: OK, does anyone have any better ideas?
Next
From: Tom Lane
Date:
Subject: Re: OK, does anyone have any better ideas?