From: | "Vadim B(dot) Mikheev" <vadim(at)sable(dot)krasnoyarsk(dot)su> |
---|---|
To: | Maurice Gittens <mgittens(at)gits(dot)nl> |
Cc: | pgsql-hackers(at)postgreSQL(dot)org |
Subject: | Re: [HACKERS] How To free resources used by large object Relations? |
Date: | 1998-02-22 10:47:07 |
Message-ID: | 34F0022B.60E59681@sable.krasnoyarsk.su |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
Maurice Gittens wrote:
>
> Hi,
>
> I've changed the large object memory managment strategy to ensure that
> each large object has it's own memory context.
> This way I can free all memory for a large object when I lo_close
> is called for it's oid. This seems to work.
>
> I've noticed that the heap_close function used to close the heap used
> by a large object doesn't really do any thing. (It calls RelationClose
> which decrements some reference count).
>
> Somehow I have to free the relation from the cache in the following
> situations:
> 1. In a transaction I must free the stuff when the transaction is
> commited/aborted.
Backend does it, don't worry.
> 2. Otherwise it must happen when lo_close is called.
It seems that you can't remove relation from cache untill
commit/abort, currently: backend uses local cache to unlink
files of relations created in transaction if abort...
We could change relcache.c:RelationPurgeLocalRelation()
to read from pg_class directly...
But how many LO do you create in single xact ?
Is memory allocated for cache so big ?
Vadim
From | Date | Subject | |
---|---|---|---|
Next Message | Vadim B. Mikheev | 1998-02-22 11:26:45 | Re: AW: [HACKERS] triggers, views and rules (not instead) |
Previous Message | Vadim B. Mikheev | 1998-02-22 10:12:32 | Re: [HACKERS] Permissions on copy |