On Thu, 2008-08-07 at 10:20 -0400, Alvaro Herrera wrote:
> Simon Riggs wrote:
> >
> > Currently, we calculate a single OldestXmin across all snapshots on the
> > assumption that any transaction might access any table.
> >
> > I propose creating "Visibility Groups" that *explicitly* limit the
> > ability of a transaction to access data outside its visibility group(s).
> > By default, visibility_groups would be NULL, implying potential access
> > to all tables.
>
> I think this is a cumbersome thing to use. We can do better -- right
> now we keep closer track of open snapshots, which means that if there is
> a long running transaction that refreshes its snapshots periodically,
> vacuum doesn't need to keep all the dead rows that it can no longer see.
>
> We can improve vacuum to be able to remove a lot more dead rows than we
> do currently. This is invisible to the user, which IMHO is a better
> user interface than what you are proposing.
Agreed, but this is a step even beyond that.
-- Simon Riggs www.2ndQuadrant.comPostgreSQL Training, Services and Support