Re: User concurrency thresholding: where do I look? - Mailing list pgsql-performance

From Tom Lane
Subject Re: User concurrency thresholding: where do I look?
Date
Msg-id 1545.1185214760@sss.pgh.pa.us
Whole thread Raw
In response to Re: User concurrency thresholding: where do I look?  ("Simon Riggs" <simon@2ndquadrant.com>)
Responses Re: User concurrency thresholding: where do I look?  ("Simon Riggs" <simon@2ndquadrant.com>)
Re: User concurrency thresholding: where do I look?  ("Jignesh K. Shah" <J.K.Shah@Sun.COM>)
List pgsql-performance
"Simon Riggs" <simon@2ndquadrant.com> writes:
> currPos and markPos are defined as BTScanPosData, which is an array of
> BTScanPosItems. That makes BTScanOpaqueData up to 8232 bytes, which
> seems wasteful since markPos is only ever used during merge joins. Most
> of that space isn't even used during merge joins either, we just do that
> to slightly optimise the speed of the restore during merge joins.

Ah.  I was seeing it as 6600 bytes on HPPA and 6608 on x86_64, but
I forgot that both of those architectures have MAXALIGN = 8.  On a
MAXALIGN = 4 machine, MaxIndexTuplesPerPage will be significantly
larger, leading to larger BTScanPosData.

Not sure it's worth fooling with, given that these days almost everyone
who's seriously concerned about performance is probably using 64bit
hardware.  One less malloc cycle per indexscan is never going to be a
measurable savings anyway...

            regards, tom lane

pgsql-performance by date:

Previous
From: "Simon Riggs"
Date:
Subject: Re: User concurrency thresholding: where do I look?
Next
From: "Simon Riggs"
Date:
Subject: Re: User concurrency thresholding: where do I look?