Thread: Re: [HACKERS] Advice wanted on backend memory management
Re: [HACKERS] Advice wanted on backend memory management
From
Michael.Davis@tvguide.com (Michael Davis)
Date:
Your e-mail did not arrive at its intended destination. You need to send it to Michael J. Davis, not Michael Davis. From: Vadim Mikheev <vadim @ krs.ru> on 05/04/99 09:18 PMTo: Tom Lane <tgl @ sss.pgh.pa.us>@SMTP@EXCHANGEcc: pgsql-hackers@ postgreSQL.org@SMTP@EXCHANGE Subject: Re: [HACKERS] Advice wanted on backend memory management 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.> > Todo 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 memorycontext ---> but I see no way in mcxt.h to create a new memory context. How do> I do that? Also, I'd want the newcontext to be a "sub-context" of No way :(StartPortalAllocMode could help but - portalmem.c:/* * StartPortalAllocMode * Starts a new block of portalheap allocation using mode and limit; * the current block is disabled until EndPortalAllocMode is called. ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^I'm unhappy with this allocation block stacking for quitelong time :( Try to pfree chunks "by hand". Vadim