> > > >Oracle has MVCC?
> > >
> > > With restrictions, yes.
> > 
> > What restrictions? Rollback segments size?
> > Non-overwriting smgr can eat all disk space...
> 
> Is'nt the same true for an overwriting smgr ? ;)

Removing dead records from rollback segments should
be faster than from datafiles.

> > > You didn't know that?  Vadim did ...
> > 
> > Didn't I mention a few times that I was
> > inspired by Oracle? -:)
> 
> How does it do MVCC with an overwriting storage manager ?

1. System Change Number (SCN) is used: system increments it
   on each transaction commit.
2. When scan meets data block with SCN > SCN as it was when
   query/transaction started, old block image is restored
   using rollback segments.

> Could it possibly be a Postgres-inspired bolted-on hack 
> needed for better concurrency ?

-:)) Oracle has MVCC for years, probably from the beginning
and for sure before Postgres.

> BTW, are you aware how Interbase does its MVCC - is it more 
> like Oracle's way or like PostgreSQL's ?

Like ours.

Vadim

Thu, 24 May 2001 17:23:19 -0700
"Mikheev, Vadim" <vmikheev@SECTORBASE.COM>
RE: Plans for solving the VACUUM problem
"Mikheev, Vadim" wrote:
> 
> > > > >Oracle has MVCC?
> > > >
> > > > With restrictions, yes.
> > >
> > > What restrictions? Rollback segments size?
> > > Non-overwriting smgr can eat all disk space...
> >
> > Is'nt the same true for an overwriting smgr ? ;)
> 
> Removing dead records from rollback segments should
> be faster than from datafiles.

Is it for better locality or are they stored in a different way ?

Do you think that there is some fundamental performance advantage 
in making a copy to rollback segment and then deleting it from 
there vs. reusing space in datafiles ?

One thing (not having to updata non-changing index entries) can be 
quite substantial under some scenarios, but there are probably ways 
to at least speed up part of this by doing other compromizes, perhaps 
by saving more info in index leaf (trading lookup speed for space 
and insert speed) or chaining data pages (trading insert speed for 
(some) space and lookup speed)

> > > > You didn't know that?  Vadim did ...
> > >
> > > Didn't I mention a few times that I was
> > > inspired by Oracle? -:)
> >
> > How does it do MVCC with an overwriting storage manager ?
> 
> 1. System Change Number (SCN) is used: system increments it
>    on each transaction commit.
> 2. When scan meets data block with SCN > SCN as it was when
>    query/transaction started, old block image is restored
>    using rollback segments.

You mean it is restored in session that is running the transaction ?

I guess thet it could be slower than our current way of doing it.

> > Could it possibly be a Postgres-inspired bolted-on hack
> > needed for better concurrency ?
> 
> -:)) Oracle has MVCC for years, probably from the beginning
> and for sure before Postgres.

In that case we can claim thet their way is more primitive ;) ;)

-----------------
Hannu

Fri, 25 May 2001 11:01:53 +0500
Hannu Krosing <hannu@tm.ee>
Re: Plans for solving the VACUUM problem