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
|
Список | 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 по дате отправления: