On 17.12.2010 21:07, Tom Lane wrote:
IIUC, the problem is that the bufmgr might think that a GIST NSN is an
LSN that should affect when to force out a dirty buffer? What if we
taught it the difference? We could for example dedicate a pd_flags
bit to marking pages whose pd_lsn isn't actually an LSN.
This solution would probably imply that all pages in the shared buffer
pool have to have a standard PageHeaderData header, not just an LSN at
the front as is assumed now. But that doesn't seem like a bad thing to
me, unless maybe we were dumb enough to not use a standard page header
in some of the secondary forks.
I'm not very fond of expanding buffer manager's knowledge of the page
layout. How about a new flag in the buffer desc, BM_UNLOGGED? There was
some talk about skipping flushing of unlogged tables at checkpoints, I
think we'd need BM_UNLOGGED for that anyway. Or I guess we could hang
that behavior on the pd_flags bit too, but it doesn't seem like the
right place for that information.
--
Heikki Linnakangas
EnterpriseDB http://www.enterprisedb.com
--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers