Re: 9.5: Better memory accounting, towards memory-bounded HashAgg

Поиск
Список
Период
Сортировка
От Tomas Vondra
Тема Re: 9.5: Better memory accounting, towards memory-bounded HashAgg
Дата
Msg-id 5400C51F.40203@fuzzy.cz
обсуждение исходный текст
Ответ на Re: 9.5: Better memory accounting, towards memory-bounded HashAgg  (Tom Lane <tgl@sss.pgh.pa.us>)
Список pgsql-hackers
On 29.8.2014 16:12, Tom Lane wrote:
> Jeff Davis <pgsql@j-davis.com> writes:
>> I have a new approach to the patch which is to call a callback at each
>> block allocation and child contexts inherit the callback from their
>> parents. The callback could be defined to simply dereference and
>> increment its argument, which would mean block allocations anywhere in
>> the hierarchy are incrementing the same variable, avoiding the need to
>> traverse the hierarchy.
>
> Cute, but it's impossible to believe that a function call isn't going
> to be *even more* overhead than what you've got now.  This could only
> measure out as a win when the feature is going unused.
> 
> What about removing the callback per se and just keeping the argument,
> as it were.  That is, a MemoryContext has a field of type "size_t *"
> that is normally NULL, but if set to non-NULL, then we increment the
> pointed-to value for pallocs and decrement for pfrees.

How is that going to work with two memory contexts (parent/child), both
requesting accounting? If I understand the proposal correctly, the child
will either inherit pointer to the field in parent (and then won't get
accounting for it's own memory), or wil get a private field (and thus
won't update the accounting of the parent context).

Or am I missing something?

regards
Tomas



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

Предыдущее
От: Pavel Stehule
Дата:
Сообщение: Re: Built-in binning functions
Следующее
От: Hannu Krosing
Дата:
Сообщение: Re: On partitioning