Re: [HACKERS] CLUSTER command progress monitor

Поиск
Список
Период
Сортировка
От Tattsu Yama
Тема Re: [HACKERS] CLUSTER command progress monitor
Дата
Msg-id CAOKkKFtN97_LjhLCuqxdrnQQAYLzDwy40L6gtuXiHWkeN97yoA@mail.gmail.com
обсуждение исходный текст
Ответ на Re: [HACKERS] CLUSTER command progress monitor  (Tattsu Yama <yamatattsu@gmail.com>)
Ответы Re: [HACKERS] CLUSTER command progress monitor  (Alvaro Herrera <alvherre@2ndquadrant.com>)
Re: [HACKERS] CLUSTER command progress monitor  (Michael Paquier <michael@paquier.xyz>)
Список pgsql-hackers
Hi Michael,


> Attached file is WIP patch.In my patch, I added "command id" to all APIs of
> progress reporting to isolate commands. Therefore, it doesn't allow to
> cascade updating system views. And my patch is on WIP so it needs clean-up
> and test.
> I share it anyway. :)

+       if (cmdtype == PROGRESS_COMMAND_INVALID || beentry->st_progress_command == cmdtype)
+       {
+               PGSTAT_BEGIN_WRITE_ACTIVITY(beentry);
+               beentry->st_progress_param[index] = val;
+               PGSTAT_END_WRITE_ACTIVITY(beentry);
+       }
You basically don't need the progress reports if the command ID is
invalid, no?


Ah, right.
I'll check and fix that today. :)



I fixed the patch based on your comment.
Please find attached file.  :)

I should have explained the API changes more. I added cmdtype as a given parameter for all functions (See below).
Therefore, I suppose that my patch is similar to the following fix as you mentioned on -hackers. 

- Allow only reporting for a given command ID, which would basically
require to pass down the command ID to progress update APIs and bypass an update
if the command ID provided by caller does not match the existing one started (?).

#pgstat.c
pgstat_progress_start_command(ProgressCommandType cmdtype,...)
   - Progress reporter starts when beentry->st_progress_command is PROGRESS_COMMAND_INVALID

pgstat_progress_end_command(ProgressCommandType cmdtype,...)
   - Progress reporter ends when beentry->st_progress_command equals cmdtype

pgstat_progress_update_param(ProgressCommandType cmdtype,...)  and
pgstat_progress_update_multi_param(ProgressCommandType cmdtype,...)
   - Progress reporter updates parameters if beentry->st_progress_command equals cmdtype

Note:
cmdtype means the ProgressCommandType below:

# pgstat.h
typedef enum ProgressCommandType
{
    PROGRESS_COMMAND_INVALID,
    PROGRESS_COMMAND_VACUUM,
    PROGRESS_COMMAND_CLUSTER,
    PROGRESS_COMMAND_CREATE_INDEX
} ProgressCommandType;

Thanks,
Tatsuro Yamada

 
Вложения

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

Предыдущее
От: Amit Kapila
Дата:
Сообщение: Re: [HACKERS] [PATCH] pageinspect function to decode infomasks
Следующее
От: Amit Kapila
Дата:
Сообщение: Re: block-level incremental backup