Tom Lane wrote:
> Karel Zak <[EMAIL PROTECTED]> writes:
> >     * The patch allows store query-planns to shared memory and is
> >       possible EXECUTE it at more backends (over same DB) and planns
> >       are persistent across connetions. For this feature I create special 
> >       memory context subsystem (like current aset.c, but it works with 
> >       IPC shared memory).
> >       This is maybe too complex solution and (maybe) sufficient is cache 
> >       query in one backend only. I know unbelief about this shared
> >       memory solution (Tom?). 
> 
> Yes, that is the part that was my sticking point last time around.
> (1) Because shared memory cannot be extended on-the-fly, I think it is
> a very bad idea to put data structures in there without some well
> thought out way of predicting/limiting their size.  (2) How the heck do
> you get rid of obsoleted cached plans, if the things stick around in
> shared memory even after you start a new backend?  (3) A shared cache
> requires locking; contention among multiple backends to access that
> shared resource could negate whatever performance benefit you might hope
> to realize from it.
> 
> A per-backend cache kept in local memory avoids all of these problems,
> and I have seen no numbers to make me think that a shared plan cache
> would achieve significantly more performance benefit than a local one.

Certainly a shared cache would be good for apps that connect to issue a
single query frequently.  In such cases, there would be no local cache
to use.

-- 
  Bruce Momjian                        |  http://candle.pha.pa.us
  [EMAIL PROTECTED]               |  (610) 853-3000
  +  If your life is a hard drive,     |  830 Blythe Avenue
  +  Christ can be your backup.        |  Drexel Hill, Pennsylvania 19026

---------------------------(end of broadcast)---------------------------
TIP 4: Don't 'kill -9' the postmaster

Reply via email to