Simon Riggs wrote:
> On Fri, 2009-12-04 at 07:12 -0500, Bruce Momjian wrote:
>
> > I think the hint bit has to be added to the item pointer, by using the
> > offset bits that are already zero, according to Greg Stark. That
> > solution leads to easy programming, no expanding hint bit array, and it
> > is backward compatible so doesn't cause problems for pg_migrator.
>
> Seems like a reasonable way forward.
>
> As I pointed out here
> http://archives.postgresql.org/pgsql-hackers/2009-12/msg00056.php
> we only need to use 3 bits not 4, but it does limit tuple length to 4096
> for all block sizes. (Two different options there for doing that).
>
> An added advantage of this approach is that the cachelines for the item
> pointer array will already be in CPU cache, so there is no additional
> access time when we set the hint bits when they are moved to their new
> position.
>
> I should also point out that removing 4 bits from the tuple header would
> allow us to get rid of t_infomask2, reducing tuple length by a further 2
> bytes.
Wow, that is a nice win. Does alignment allow us to actually use that
space?
-- Bruce Momjian <bruce@momjian.us> http://momjian.us EnterpriseDB
http://enterprisedb.com
+ If your life is a hard drive, Christ can be your backup. +