[HACKERS] SPI and qCache and bug?

From: Karel Zak - Zakkr <zakkr(at)zf(dot)jcu(dot)cz>
To: pgsql-hackers <pgsql-hackers(at)postgreSQL(dot)org>
Subject: [HACKERS] SPI and qCache and bug?
Date: 2000-03-08 16:33:39
Message-ID: Pine.LNX.3.96.1000308173104.14462F-100000@ara.zf.jcu.cz
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Still quiet for this question? Hmm.. (not interesting?)

On Thu, 2 Mar 2000, Karel Zak - Zakkr wrote:
>
>
> Hi,
>
> query cache hacking continue ...
>
> I just implement my (context-per-plan) query cache (qCache) to SPI.
>
> Changed:
>
> SPI_saveplan() - save plan to qcache instead to never
> unallocated TopMemoryContext.
>
> New:
>
> SPI_saveplan_by_key() - save plan to qcache under specifited hash
> key. This is needful if user define key oneself or if key must be
> binary (non-string) - example Jan use any struct as hash key in RI's
> triggers.)
>
> SPI_execp_by_key() - same as SPI_execp(), but as arg is hash key
> only, (again, it is needful for (example) RI).
> - you not need pointer to plan, you can use key only
>
> SPI_freeplan() - remove plan from qcache and destroy all
> memory associate with plan. It is end of the TopMemoryContext
> feeding :-)
>
> Comments?
>
> A question: I look at the current PG's SPI and (IMHO) is here a little
> performance bug. Very often is used SPI_prepare() and SPI_saveplan()
> together and without any relevant code between these routines. But see:
>
> SPI_prepare() - call 2x copyObject() and copy data to procedure
> context
>
> - well, if you need pquery plans in this context it is OK, but
>
> SPI_saveplan() - call 2x copyObject() and copy (same) data to
> TopMemoryContext (or in future to qCache)
>
> SPI_execp() - call 2x copyObject() and copy data back to current
> context
>
> - hmm, it copy twice all data, but without any efect.
>
> IMHO is solution any SPI_prepare_and_save() and copy data only to
> TopMemoryContext (or to qCache), we not need data in procedure context
> (as it copy SPI_prepare), because SPI_execp() copy it to wanted context
> itself.
>
> The SPI performance will interesting if RI will in real life...
>
>
> Karel

In response to

Browse pgsql-hackers by date

  From Date Subject
Next Message Michael Meskes 2000-03-08 16:40:34 Re: [HACKERS] library policy question
Previous Message Karel Zak - Zakkr 2000-03-08 16:26:14 regex (from TODO)