On Tue, 2007-03-13 at 10:08 -0700, Jeff Davis wrote:
> > One extra LWLock cycle per page processed definitely *is* a significant
> > overhead ... can you say "context swap storm"? I'd think about doing it
> > once every 100 or so pages.
> >
>
> No lock is needed to store the hint. If somehow the hint (which is
> stored in a static table, no pointers) gets invalid data due to a race
> condition, the new scan will simply consider the hint invalid and start
> at 0.
>
> I did this precisely to avoid causing a performance regression for usage
> patterns that don't benefit from sync scans.
>
I'd also like to add that, if a lock was required, a constant offset
would also seem to prone to a context swap storm; it would just happen
100th as much. We'd need to do something to spread the locks over time.
That being said, I'll adjust it to report once per hundred pages anyway,
because there's really no drawback.
Regards,Jeff Davis