Обсуждение: RE: [HACKERS] couldn't rollback cache ?

Поиск
Список
Период
Сортировка

RE: [HACKERS] couldn't rollback cache ?

От
"Hiroshi Inoue"
Дата:
> -----Original Message-----
> From: Hiroshi Inoue [mailto:Inoue@tpf.co.jp]
> Sent: Wednesday, September 22, 1999 7:12 PM
> To: Tom Lane
> Cc: pgsql-hackers
> Subject: RE: [HACKERS] couldn't rollback cache ? 
> 

I thought about the way which neither calls HeapTupleSatis-
fies() in SearchSysCache() nor invalidates syscache entry
by OID.

In this case,we would need the information as follows.

1. To_be_rollbacked info for the backend   A list of being inserted system tuples.   This list is held till end of
transaction.  In case of commit,this list is ignored and discarded.   In case of rollback,tuples inserted after the
specified  savepoint are rollbacked and discarded. Syscache   and relcache entries for the backend which correspond
tothe tuples are invalidated.
 

2, To_be_invalidated info for the backend   A list of being deleted system tuples.   This list is discarded at every
command.  In case of rollback this list is ignored.   Otherwise,syscache and relcache entries for the backend   which
correspondto the tuples in this list are invalidated   before execution of each command. 
 

3. To_be_invalidated info for other backends   A list of being deleted system tuples.   This list is held till end of
transaction.  In case of commit,this list is sent to other backends and   discarded.   In case of rollback,tuples
deletedafter the specified savepoint   are discarded.
 

4. Immediate registrarion of to_be_invalidated relcache for all backends   Currently SI messages aren't sent in case of
elog(ERROR/FATAL).  Seems the following commands have to register relcache invali-   dation for all backends just when
wecall smgrunlink()/smgrtruncate(). 
 
   DROP TABLE/INDEX   TRUNCATE TABLE(implemented by Mike Mascari)   VACUUM

Comments ?

Hiroshi Inoue
Inoue@tpf.co.jp