Re: [HACKERS] Cache query (PREPARE/EXECUTE)

Поиск
Список
Период
Сортировка
От wieck@debis.com (Jan Wieck)
Тема Re: [HACKERS] Cache query (PREPARE/EXECUTE)
Дата
Msg-id m12Ni7o-0003kgC@orion.SAPserv.Hamburg.dsh.de
обсуждение исходный текст
Ответ на RE: [HACKERS] Cache query (PREPARE/EXECUTE)  (Karel Zak - Zakkr <zakkr@zf.jcu.cz>)
Ответы Re: [HACKERS] Cache query (PREPARE/EXECUTE)  (Tom Lane <tgl@sss.pgh.pa.us>)
[HACKERS] Cache query implemented  (Karel Zak - Zakkr <zakkr@zf.jcu.cz>)
Список pgsql-hackers
Karel wrote:

> > Why is memory context per plan bad ?
>
>  One context is more simple.
   I  don't  see  much complexity difference between one context   per plan vs. one context for  all.  At  least  if
we do  it   transparently inside of SPI_saveplan() and SPI_freeplan().
 

>  We talking about a *cache*. If exist interface for this cache and
>  all operations are with copy/freeObject it not has restriction.
>
>  For how action it will restriction?
   No restrictions I can see.
   But I think one context per plan is still better, since first   there is no leakage/multiref  problem.  Second,
there is  a   performance   difference   between   explicitly   pfree()'ing   hundreds of small allocations (in
freeObject()traverse), and   just  destroying  a  context.  The  changes  I  made  to  the   MemoryContextAlloc stuff
forv6.5 (IIRC), using bigger blocks   incl.  padding/reuse  for small allocations, caused a speedup   of 5+% for the
entireregression test. This was only  because   it  uses lesser real calls to malloc()/free() and the context
destructiondoes not need to process  a  huge  list  of  all,   however small allocations anymore.  It simply throws
awayall   blocks now.
 
   This  time,  we  talk  about  a   more   complex,   recursive   freeObject(), switch()'ing for every node type into
separate,  per object  type  specific  functions,  pfree()'ing  all  the   little  chunks.   So  there  is  at  least
a difference  in   first/second-level RAM cache rows required. And if  that  can   simply  be  avoided by using one
contextper plan, I vote for   1by1.
 
   Then  again,  copyObject/freeObject   must   be   fixed   WRT   leakage/multiref anyway.


Jan

--

#======================================================================#
# It's easier to get forgiveness for being wrong than for being right. #
# Let's break this rule - forgive me.                                  #
#========================================= wieck@debis.com (Jan Wieck) #




В списке pgsql-hackers по дате отправления:

Предыдущее
От: Bruce Momjian
Дата:
Сообщение: Changes in 7.0
Следующее
От: "Ross J. Reedstrom"
Дата:
Сообщение: Re: [HACKERS] Re: Feature Request