On Wed, Jul 27, 2011 at 01:30:47PM -0400, Robert Haas wrote:
> On Wed, Jul 27, 2011 at 12:55 PM, Noah Misch <n...@2ndquadrant.com> wrote:
> > [wrong objection]
> 
> Eh, how can this possibly happen?  You have to hold msgNumLock to to
> set maxMsgNum and msgNumLock to read maxMsgNum.  If that's not enough
> to guarantee that we never read a stale value, what is?

Indeed, my analysis was all wrong.

> > I think a benchmark is in order, something like 900 idle connections and 80
> > connections running small transactions that create a few temporary tables.  
> > If
> > that shows no statistically significant regression, then we're probably fine
> > here.  I'm not sure what result to expect, honestly.
> 
> That's setting the bar pretty high.  I don't mind doing the
> experiment, but I'm not sure that's the case we should be optimizing
> for.

Granted.  How about 32 clients running the temporary table transaction, no idle
connections?  Given the meager benefit of this patch compared to your previous
version, it would be hard to justify a notable performance drop in return.

> > What did you think of making the message number a uint64, removing 
> > wraparound
> > handling, and retaining SISeg.msgnumLock for 32-bit only?  You could 
> > isolate the
> > variant logic in READ_MSGNUM and WRITE_MSGNUM macros.
> 
> Well, what you really need to know is whether the platform has 8-byte
> atomic stores, which doesn't seem trivial to figure out, plus you need
> a memory fence.  If that's the only method of fixing this problem we
> can agree on, I'm willing to work on it, but an
> architecture-independent fix would be nicer.

Fair enough.

Thanks,
nm

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

-- 
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

Reply via email to