Re: [HACKERS] Advice wanted on backend memory management

Поиск
Список
Период
Сортировка
От Vadim Mikheev
Тема Re: [HACKERS] Advice wanted on backend memory management
Дата
Msg-id 372F9C55.C0BADB02@krs.ru
обсуждение исходный текст
Ответ на Advice wanted on backend memory management  (Tom Lane <tgl@sss.pgh.pa.us>)
Ответы Re: [HACKERS] Advice wanted on backend memory management  (Tom Lane <tgl@sss.pgh.pa.us>)
Список pgsql-hackers
Tom Lane wrote:
> 
> I want to change hashjoin's use of a fixed-size overflow area for tuples
> that don't fit into the hashbucket they ought to go in.  Since it's
> always possible for an improbably large number of tuples to hash into the
> same hashbucket, the overflow area itself can overflow; without the
> ability to recover from that, hashjoin is inherently unreliable.
> So I think this is an important thing to fix.
> 
> To do this, I need to be able to allocate chunks of space that I will
> later want to give back all at once (at the end of a hash pass).
> Seems to me like a job for palloc and a special memory context ---
> but I see no way in mcxt.h to create a new memory context.  How do
> I do that?  Also, I'd want the new context to be a "sub-context" of

No way :(
StartPortalAllocMode could help but - portalmem.c:
/** StartPortalAllocMode *      Starts a new block of portal heap allocation using mode and limit;*      the current
blockis disabled until EndPortalAllocMode is called.
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
I'm unhappy with this allocation block stacking for quite long time :(

Try to pfree chunks "by hand".

Vadim


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

Предыдущее
От: Christian
Дата:
Сообщение: 6.4.2 core dumping.
Следующее
От: The Hermit Hacker
Дата:
Сообщение: || in v6.4.2 ...