Re: [HACKERS] Block level parallel vacuum
От | Masahiko Sawada |
---|---|
Тема | Re: [HACKERS] Block level parallel vacuum |
Дата | |
Msg-id | CAD21AoA321FbQYBJQhBUfSFmzwFh9ToHuFR+UNobkz508_w0Mg@mail.gmail.com обсуждение исходный текст |
Ответ на | Re: [HACKERS] Block level parallel vacuum (Dilip Kumar <dilipbalaut@gmail.com>) |
Ответы |
Re: [HACKERS] Block level parallel vacuum
|
Список | pgsql-hackers |
On Thu, Oct 3, 2019 at 9:06 PM Dilip Kumar <dilipbalaut@gmail.com> wrote: > > On Wed, Oct 2, 2019 at 7:29 PM Masahiko Sawada <sawada.mshk@gmail.com> wrote: > > > I have started reviewing this patch and I have some cosmetic comments. > I will continue the review tomorrow. > Thank you for reviewing the patch! > +This change adds PARALLEL option to VACUUM command that enable us to > +perform index vacuuming and index cleanup with background > +workers. Indivisual > > /s/Indivisual/Individual/ Fixed. > > + * parallel worker processes. Individual indexes is processed by one vacuum > + * process. At beginning of lazy vacuum (at lazy_scan_heap) we prepare the > > /s/Individual indexes is processed/Individual indexes are processed/ > /s/At beginning/ At the beginning Fixed. > > + * parallel workers. In parallel lazy vacuum, we enter parallel mode and > + * create the parallel context and the DSM segment before starting heap > + * scan. > > Can we extend the comment to explain why we do that before starting > the heap scan? Added more comment. > > + else > + { > + if (for_cleanup) > + { > + if (lps->nworkers_requested > 0) > + appendStringInfo(&buf, > + ngettext("launched %d parallel vacuum worker for index cleanup > (planned: %d, requested %d)", > + "launched %d parallel vacuum workers for index cleanup (planned: > %d, requsted %d)", > + lps->pcxt->nworkers_launched), > + lps->pcxt->nworkers_launched, > + lps->pcxt->nworkers, > + lps->nworkers_requested); > + else > + appendStringInfo(&buf, > + ngettext("launched %d parallel vacuum worker for index cleanup (planned: %d)", > + "launched %d parallel vacuum workers for index cleanup (planned: %d)", > + lps->pcxt->nworkers_launched), > + lps->pcxt->nworkers_launched, > + lps->pcxt->nworkers); > + } > + else > + { > + if (lps->nworkers_requested > 0) > + appendStringInfo(&buf, > + ngettext("launched %d parallel vacuum worker for index vacuuming > (planned: %d, requested %d)", > + "launched %d parallel vacuum workers for index vacuuming (planned: > %d, requested %d)", > + lps->pcxt->nworkers_launched), > + lps->pcxt->nworkers_launched, > + lps->pcxt->nworkers, > + lps->nworkers_requested); > + else > + appendStringInfo(&buf, > + ngettext("launched %d parallel vacuum worker for index vacuuming > (planned: %d)", > + "launched %d parallel vacuum workers for index vacuuming (planned: %d)", > + lps->pcxt->nworkers_launched), > + lps->pcxt->nworkers_launched, > + lps->pcxt->nworkers); > + } > > Multiple places I see a lot of duplicate code for for_cleanup is true > or false. The only difference is in the error message whether we give > index cleanup or index vacuuming otherwise complete code is the same > for > both the cases. Can't we create some string and based on the value of > the for_cleanup and append it in the error message that way we can > avoid duplicating this at many places? I think it's necessary for translation. IIUC if we construct the message it cannot be translated. Attached the updated patch. Regards, -- Masahiko Sawada
Вложения
В списке pgsql-hackers по дате отправления: