Re: [HACKERS] mdnblocks is an amazing time sink in huge relations
Vadim Mikheev <vadim@krs.ru>
From: Vadim Mikheev <vadim@krs.ru>
To: Hiroshi Inoue <Inoue@tpf.co.jp>
Cc: pgsql-hackers@postgreSQL.org, Tom Lane <tgl@sss.pgh.pa.us>
Date: 1999-10-20T02:28:23Z
Lists: pgsql-hackers
Hiroshi Inoue wrote:
>
> > I supposed that each backend will still use own catalog
> > cache (after reading entries from shared one) and synchronize
> > shared/private caches on commit - e.g. update reltuples!
> > relpages will be updated immediately after physical changes -
> > what's problem with this?
> >
>
> Does this mean the following ?
>
> 1. shared cache holds committed system tuples.
> 2. private cache holds uncommitted system tuples.
> 3. relpages of shared cache are updated immediately by
> phisical change and corresponding buffer pages are
> marked dirty.
> 4. on commit, the contents of uncommitted tuples except
> relpages,reltuples,... are copied to correponding tuples
^^^^^^^^^
reltuples in shared catalog cache (SCC) will be updated!
If transaction inserted some tuples then SCC->reltuples
will be incremented, etc.
> in shared cache and the combined contents are
> committed.
>
> If so,catalog cache invalidation would be no longer needed.
I never liked our invalidation code -:)
> But synchronization of the step 4. may be difficult.
What's easy in this life? -:)
Vadim