Re: Removing PD_ALL_VISIBLE

Jeff Davis <pgsql@j-davis.com>

From: Jeff Davis <pgsql@j-davis.com>
To: Heikki Linnakangas <hlinnakangas@vmware.com>
Cc: Pavan Deolasee <pavan.deolasee@gmail.com>, Tom Lane <tgl@sss.pgh.pa.us>, Robert Haas <robertmhaas@gmail.com>, Simon Riggs <simon@2ndquadrant.com>, pgsql-hackers@postgresql.org
Date: 2013-01-22T19:23:35Z
Lists: pgsql-hackers

Attachments

On Mon, 2013-01-21 at 12:00 +0200, Heikki Linnakangas wrote:
> On 21.01.2013 11:10, Jeff Davis wrote:
> > That confuses me. The testing was to show it didn't hurt other workloads
> > (like scans or inserts/updates/deletes); so the best possible result is
> > that they don't show signs either way.
> 
> I went back to look at the initial test results that demonstrated that 
> keeping the pin on the VM buffer mitigated the overhead of pinning the 
> vm page. The obvious next question is, what is the impact when that's 
> inefficient, ie. when you update pages across different 512 MB sections, 
> so that the vm pin has to be dropped and reacquired repeatedly.
> 
> I tried to construct a worst case scenario for that:

I confirmed this result in a single connection (no concurrency). I used
a shared_buffers of 2GB so that the whole table would fit.

Also, I fixed a bug that I noticed along the way, which was an
uninitialized variable. New version attached.

FWIW, I'm considering this patch to be rejected; I just didn't want to
leave a patch with a bug in it.

Regards,
	Jeff Davis