Re: [HACKERS] Block level parallel vacuum
От | Amit Kapila |
---|---|
Тема | Re: [HACKERS] Block level parallel vacuum |
Дата | |
Msg-id | CAA4eK1LNV-sVhZHB8KjjkVUgKhM9Z1chu+0A5OF9LHGPJmVyaQ@mail.gmail.com обсуждение исходный текст |
Ответ на | Re: [HACKERS] Block level parallel vacuum (Dilip Kumar <dilipbalaut@gmail.com>) |
Список | pgsql-hackers |
On Wed, Nov 13, 2019 at 9:51 AM Dilip Kumar <dilipbalaut@gmail.com> wrote: > > + /* > + * Since parallel workers cannot access data in temporary tables, parallel > + * vacuum is not allowed for temporary relation. > + */ > + if (RelationUsesLocalBuffers(onerel) && params->nworkers >= 0) > + { > + ereport(WARNING, > + (errmsg("skipping vacuum on \"%s\" --- cannot vacuum temporary > tables in parallel", > + RelationGetRelationName(onerel)))); > + relation_close(onerel, lmode); > + PopActiveSnapshot(); > + CommitTransactionCommand(); > + /* It's OK to proceed with ANALYZE on this table */ > + return true; > + } > + > > If we can not support the parallel vacuum for the temporary table then > shouldn't we fall back to the normal vacuum instead of skipping the > table. I think it's not fair that if the user has given system-wide > parallel vacuum then all the temp table will be skipped and not at all > vacuumed then user need to again perform normal vacuum on those > tables. > Good point. However, I think the current coding also makes sense for cases like "Vacuum (analyze, parallel 2) tmp_tab;". In such a case, it will skip the vacuum part of it but will perform analyze. Having said that, I can see the merit of your point and I also vote to follow your suggestion and add a note to the document unless it makes code look ugly. -- With Regards, Amit Kapila. EnterpriseDB: http://www.enterprisedb.com
В списке pgsql-hackers по дате отправления: