> What I'm wondering is if you had any other intended use for "mark for
> cleanup" than VACUUM.  The cheapest implementation would allow only
> one process to be waiting for cleanup on a given buffer, which is OK
> for VACUUM because we'll only allow one VACUUM at a time on a relation
> anyway.  But if you had some other uses in mind, maybe the code needs
> to support multiple waiters.

I was going to use it for UNDO but it seems that UNDO w/o OSMGR is not
popular and OSMGR will require different approaches anyway, so -
do whatever you want.

Vadim

Thu, 5 Jul 2001 12:46:44 -0700 
"Mikheev, Vadim" <vmikheev@SECTORBASE.COM>
RE: Re: Buffer access rules, and a probable bug 
"Mikheev, Vadim" wrote:
> 
> > What I'm wondering is if you had any other intended use for "mark for
> > cleanup" than VACUUM.  The cheapest implementation would allow only
> > one process to be waiting for cleanup on a given buffer, which is OK
> > for VACUUM because we'll only allow one VACUUM at a time on a relation
> > anyway.  But if you had some other uses in mind, maybe the code needs
> > to support multiple waiters.
> 
> I was going to use it for UNDO but it seems that UNDO w/o OSMGR is not
> popular and OSMGR will require different approaches anyway, so -
> do whatever you want.
> 

How is UNDO now ?
I've wanted a partial rollback functionality for a long
time and I've never seen the practical solution other
than UNDO.

I'm thinking the following rstricted UNDO.

UNDO is never invoked for an entire rollback of a transaction.
The implicit savepoint at the beginning of a transaction isn't
needed. If there's no savepoints, UNDO is never invoked.
Especially UNDO is never invoked for commands outside the
transaction block. WAL logs before savepoints could be 
discarded at CheckPoint.

Comments ? 

regards,
Hiroshi Inoue

Fri, 06 Jul 2001 10:22:38 +0900
Hiroshi Inoue <Inoue@tpf.co.jp>
Re: Re: Buffer access rules, and a probable bug