Re: auto_explain sample rate

Поиск
Список
Период
Сортировка
От Julien Rouhaud
Тема Re: auto_explain sample rate
Дата
Msg-id 56C3BC1F.1040607@dalibo.com
обсуждение исходный текст
Ответ на Re: auto_explain sample rate  (Alvaro Herrera <alvherre@2ndquadrant.com>)
Ответы Re: auto_explain sample rate  (Petr Jelinek <petr@2ndquadrant.com>)
Список pgsql-hackers
On 16/02/2016 22:51, Alvaro Herrera wrote:
> Julien Rouhaud wrote:
>
> Hijacking this macro is just too obscure:
>
>>  #define auto_explain_enabled() \
>>      (auto_explain_log_min_duration >= 0 && \
>> -     (nesting_level == 0 || auto_explain_log_nested_statements))
>> +     (nesting_level == 0 || auto_explain_log_nested_statements) && \
>> +     current_query_sampled)
>
> because it then becomes hard to figure out that assigning to _sampled is
> what makes the enabled() check pass or not depending on sampling:
>
>> @@ -191,6 +211,14 @@ _PG_fini(void)
>>  static void
>>  explain_ExecutorStart(QueryDesc *queryDesc, int eflags)
>>  {
>> +    /*
>> +     * For ratio sampling, randomly choose top-level statement. Either
>> +     * all nested statements will be explained or none will.
>> +     */
>> +    if (auto_explain_log_min_duration >= 0 && nesting_level == 0)
>> +        current_query_sampled = (random() < auto_explain_sample_ratio *
>> +                MAX_RANDOM_VALUE);
>> +
>>      if (auto_explain_enabled())
>>      {
>
> I think it's better to keep the "enabled" macro unmodified, and just add
> another conditional to the "if" test there.
>

Thanks for looking at this!

Agreed, it's too obscure. Attached v4 fixes as you said.

--
Julien Rouhaud
http://dalibo.com - http://dalibo.org

Вложения

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

Предыдущее
От: Bruce Momjian
Дата:
Сообщение: Re: PostgreSQL Audit Extension
Следующее
От: Jim Nasby
Дата:
Сообщение: Re: proposal: function parse_ident