Re: possible memory leak with SRFs

Поиск
Список
Период
Сортировка
От Nikhil Sontakke
Тема Re: possible memory leak with SRFs
Дата
Msg-id k2za301bfd91005060047qaf68fd41ra19c651c69c3b569@mail.gmail.com
обсуждение исходный текст
Ответ на possible memory leak with SRFs  (Nikhil Sontakke <nikhil.sontakke@enterprisedb.com>)
Ответы Re: possible memory leak with SRFs  (Nikhil Sontakke <nikhil.sontakke@enterprisedb.com>)
Re: possible memory leak with SRFs  (Tom Lane <tgl@sss.pgh.pa.us>)
Список pgsql-hackers
Hi,

Continuing on this:

Can someone please explain why we do not reset the expression context
if an SRF is involved during execution? Once the current result from
the SRF has been consumed, I would think that the
ecxt_per_tuple_memory context should be reset. As its name suggests,
it is supposed to a per tuple context and is not meant to be
long-lived. To test this out I shifted the call to ResetExprContext to
just before returning from the SRF inside ExecResult and I do not see
the memleak at all. Patch attached with this mail.

The SRF has its own long-lived "SRF multi-call context" anyways. And
AIUI, SRFs return tuples one-by-one or do we materialize the same into
a tuplestore in some cases?

Regards,
Nikhils

On Wed, May 5, 2010 at 7:23 PM, Nikhil Sontakke
<nikhil.sontakke@enterprisedb.com> wrote:
> Hi,
>
> I saw this behavior with latest GIT head:
>
> create table xlarge(val numeric(19,0));
> insert into xlarge values(generate_series(1,5));
>
> The above generate series will return an int8 which will then be
> casted to numeric (via int8_to_numericvar) before being inserted into
> the table. I observed that the ExprContext memory associated with
> econtext->ecxt_per_tuple_memory is slowly bloating up till the end of
> the insert operation.
>
> This becomes significant the moment we try to insert a significant
> number of entries using this SRF. I can see the memory being consumed
> by the PG backend slowly grow to a large percentage.
>
> I see that the executor (take ExecResult as an example) does not reset
> the expression context early if an SRF is churning out tuples. What
> could be a good way to fix this?
>
> Regards,
> Nikhils
> --
> http://www.enterprisedb.com
>



--
http://www.enterprisedb.com

Вложения

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

Предыдущее
От: Rob Wultsch
Дата:
Сообщение: Re: max_standby_delay considered harmful
Следующее
От: Simon Riggs
Дата:
Сообщение: Re: max_standby_delay considered harmful