Re: Do we need so many hint bits?
Simon Riggs <simon@2ndquadrant.com>
From: Simon Riggs <simon@2ndQuadrant.com>
To: Tom Lane <tgl@sss.pgh.pa.us>, Alvaro Herrera <alvherre@2ndquadrant.com>
Cc: Jeff Davis <pgsql@j-davis.com>, pgsql-hackers@postgresql.org, Merlin Moncure <mmoncure@gmail.com>
Date: 2012-11-16T04:37:49Z
Lists: pgsql-hackers
On 15 November 2012 22:21, Tom Lane <tgl@sss.pgh.pa.us> wrote: >> Removing those 3 hints would give us 3 more flag bits (eventually, after >> we are sure they aren't just leftover), and it would also reduce the >> chance that a page is dirtied for no other reason than to set them. > > We aren't pressed for flag bits particularly. I think the main > attraction of this idea is precisely to reduce unnecessary page dirties, > and so that leads me to suggest a variant: keep the four bits defined as > now, but do not attempt to set XMIN_INVALID or XMAX_COMMITTED unless the > page is already dirty. This would make it a straight-up trade of more > clog consultation for fewer page dirties. Hmm, I thought Alvaro wanted an extra flag bit for foreign key locks but couldn't find it. Come to think of it, why do we have XMIN_INVALID and XMAX_INVALID? We never need both at the same time, so we can just use one... XMIN_INVALID -> XACT_INVALID XMAX_INVALID == XMIN_COMMITTED | XACT_INVALID -- Simon Riggs http://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Training & Services