Re: [Testperf-general] Re: ExclusiveLock - Mailing list pgsql-hackers

From Simon Riggs
Subject Re: [Testperf-general] Re: ExclusiveLock
Date
Msg-id 1100900912.3388.12.camel@localhost.localdomain
Whole thread Raw
In response to Re: [Testperf-general] Re: ExclusiveLock  (Tom Lane <tgl@sss.pgh.pa.us>)
Responses Re: [Testperf-general] Re: ExclusiveLock  (Tom Lane <tgl@sss.pgh.pa.us>)
List pgsql-hackers
On Thu, 2004-11-18 at 22:55, Tom Lane wrote:
> Josh Berkus <josh@agliodbs.com> writes:
> >> The main problem on INSERTs is that it is usually the same few pages:
> >> the lead data block and the lead index block. There are ways of
> >> spreading the load out across an index, but I'm not sure what happens on
> >> the leading edge of the data relation, but I think it hits the same
> >> block each time.
> 
> > I actually have several test cases for this, can you give me a trace or 
> > profile suggestion that would show if this is happening?
> 
> If it is a problem, the LockBuffer calls in RelationGetBufferForTuple
> would be the places showing contention delays.

You say this as if we can easily check that. My understanding is that
this would require a scripted gdb session to instrument the executable
at that point.

Is that what you mean? That isn't typically regarded as a great thing to
do on a production system. 

You've mentioned about performance speculation, which I agree with, but
what are the alternatives? Compile-time changes aren't usually able to
be enabled, since many people from work RPMs.

> It could also be that the contention is for the WALInsertLock, ie, the
> right to stuff a WAL record into the shared buffers.  This effect would
> be the same even if you were inserting into N separate tables.

...and how do we check that also.

Are we back to simulated workloads and fully rigged executables?

-- 
Best Regards, Simon Riggs



pgsql-hackers by date:

Previous
From: "Barry Lind"
Date:
Subject: Re: [JDBC] Strange server error with current 8.0beta driver
Next
From: Thomas Hallgren
Date:
Subject: Re: Error handling in plperl and pltcl